Mopub Native Ads in recyclerview for copy past

 Mopub Native Ads in recyclerview for copy past


1. build.gradle

multiDexEnabled true

implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.mopub.mediation:facebookaudiencenetwork:6.5.1.0'
implementation 'com.facebook.android:audience-network-sdk:6.5.1'
implementation('com.mopub:mopub-sdk:+@aar') {
transitive = true
}
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}}
2. Main Activity for sdkInitialization

AudienceNetworkAds.initialize(this);
final SdkConfiguration.Builder Sdkonfiguration = new SdkConfiguration.Builder("");
MoPub.initializeSdk(this,Sdkonfiguration.build(),initSdkListner());

}

private SdkInitializationListener initSdkListner() {
return new SdkInitializationListener(){


@Override
public void onInitializationFinished() {

}
};
}




3.androidmanifest.xml
android:networkSecurityConfig="@xml/network_security_config"
<activity
android:name="com.mopub.common.MoPubBrowser"
android:configChanges="keyboardHidden|orientation|screenSize" />

4. network_security_config
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>

5.mopubnativ.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:background="@color/white"
android:layout_margin="9dp"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mopub_native_ad_layout">

<ImageView
android:id="@+id/mopub_native_ad_privacy"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="-5dp"
android:layout_marginEnd="-5dp"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:contentDescription="Privacy Information Icon image"
android:padding="10dp"
android:layout_marginRight="-5dp"
android:layout_alignParentRight="true"
app:tint="@android:color/black" />


<ImageView
android:id="@+id/mopub_native_ad_icon"
android:background="@null"
android:scaleType="centerInside"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:layout_alignParentStart="true"
android:layout_marginLeft="10dp"
android:layout_alignParentLeft="true" />

<TextView
android:id="@+id/mopub_ad_sponsored_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:layout_marginStart="10dp"
android:layout_below="@id/mopub_native_ad_icon"
android:textColor="@android:color/darker_gray"
android:textSize="12sp" />



<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/mopub_native_ad_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/mopub_native_ad_icon"
android:layout_marginStart="10dp"
android:layout_toStartOf="@id/mopub_native_ad_privacy"
android:textColor="@android:color/black"
android:textStyle="bold"
android:textSize="16sp"
android:text="Lorem ipsum dolor sit amet, consectetur"
android:layout_marginEnd="10dp"
android:layout_alignTop="@id/mopub_native_ad_icon"/>


<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/mopub_native_ad_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/mopub_native_ad_title"
android:layout_marginStart="12dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="3dp"
android:layout_marginBottom="2dp"
android:layout_toStartOf="@+id/mopub_native_ad_privacy"
android:layout_toEndOf="@id/mopub_native_ad_icon"
android:lines="2"
android:text=""
android:textColor="@android:color/black"
android:textSize="14sp"
android:layout_marginLeft="12dp"
android:layout_marginRight="3dp"/>

<ImageView
android:id="@+id/mopub_native_ad_main_imageview"
android:layout_below="@id/mopub_native_ad_text"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="@dimen/native_main_image_height" />


<Button
android:id="@+id/mopub_native_ad_cta"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_height="@dimen/button_height"
android:layout_marginLeft="10dp"
android:layout_below="@id/mopub_native_ad_main_imageview"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:textAllCaps="false"
android:focusable="true"
android:text="Free to play"
android:textSize="@dimen/button_text_size"
android:minWidth="0dp"
android:minHeight="0dp"
android:backgroundTint="#4286F4"
android:textColor="@android:color/white"
android:textStyle="bold" />

</RelativeLayout>

6. facebooknative.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ad_unit"
android:layout_margin="9dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp">

<com.facebook.ads.MediaView
android:id="@+id/native_ad_icon"
android:layout_width="35dp"
android:layout_height="35dp" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="5dp"
android:paddingRight="5dp">

<TextView
android:id="@+id/native_ad_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:textColor="@android:color/black"
android:textSize="15sp" />

<TextView
android:id="@+id/native_ad_sponsored_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:textColor="@android:color/darker_gray"
android:textSize="12sp" />

</LinearLayout>

<RelativeLayout
android:id="@+id/ad_choices_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="horizontal" />

</LinearLayout>

<com.facebook.ads.MediaView
android:id="@+id/native_ad_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:orientation="vertical">

<TextView
android:id="@+id/native_ad_social_context"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:textColor="@android:color/darker_gray"
android:textSize="12sp" />

<TextView
android:id="@+id/native_ad_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center_vertical"
android:lines="2"
android:textColor="@android:color/black"
android:textSize="12sp" />

</LinearLayout>

<Button
android:id="@+id/native_ad_call_to_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:backgroundTint="#4286F4"
android:paddingLeft="3dp"
android:layout_marginBottom="1dp"
android:paddingRight="3dp"
android:textColor="@android:color/white"
android:textSize="12sp" />

</LinearLayout>

</LinearLayout>

7.dimens.xml
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="nav_header_vertical_spacing">8dp</dimen>
<dimen name="nav_header_height">176dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="button_text_size">13sp</dimen>
<dimen name="native_main_image_height">200dp</dimen>
<dimen name="button_height">36dp</dimen>
</resources>

8.dimens.xml(w400dp)

<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="native_main_image_height">300dp</dimen>
<dimen name="button_text_size">17sp</dimen>
</resources>
9.dimens.xml(w600dp)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="native_main_image_height">200dp</dimen>
<dimen name="button_text_size">15sp</dimen>
</resources>

10.dimens.xml(w800dp)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="native_main_image_height">300dp</dimen>
<dimen name="button_text_size">17sp</dimen>
</resources>

11.recycleView.java
MoPubRecyclerAdapter myMopubAdapter = new MoPubRecyclerAdapter(this,adapter);
MoPubStaticNativeAdRenderer moPubStaticNativeAdRenderer = new MoPubStaticNativeAdRenderer(
new ViewBinder.Builder(R.layout.mopubnative)
.titleId(R.id.mopub_native_ad_title)
.textId(R.id.mopub_native_ad_text)
.mainImageId(R.id.mopub_native_ad_main_imageview)
.iconImageId(R.id.mopub_native_ad_icon)
.callToActionId(R.id.mopub_native_ad_cta)
.privacyInformationIconImageId(R.id.mopub_native_ad_privacy)
.sponsoredTextId(R.id.mopub_ad_sponsored_label)
.build());
myMopubAdapter.registerAdRenderer(moPubStaticNativeAdRenderer);
recyclerView.setAdapter(myMopubAdapter);
myMopubAdapter.loadAds("11a17b188668469fb0412708c3d16813");


FacebookAdRenderer facebookAdRenderer = new FacebookAdRenderer(
new FacebookAdRenderer.FacebookViewBinder.Builder(R.layout.facebooknative)
.titleId(R.id.native_ad_title)
.textId(R.id.native_ad_body)
.mediaViewId(R.id.native_ad_media)
.adIconViewId(R.id.native_ad_icon)
.adChoicesRelativeLayoutId(R.id.ad_choices_container)
.advertiserNameId(R.id.native_ad_sponsored_label)
.callToActionId(R.id.native_ad_call_to_action)
.build());
myMopubAdapter.registerAdRenderer(facebookAdRenderer);

Comments

Popular posts from this blog

Privacy Policy