Header Ads Widget

Responsive Advertisement

Disqus Shortname

Mopub Native Ads In List View Android studio-facebook bidding with mopub

 Mopub Native Ads In List View Android studio

facebook bidding with mopub


hello guys in this blog i will show you how to implement mopub native ads in List view and add facebook native ads render for show facebook native ads show.


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
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="sample_text_size">16sp</dimen>
<dimen name="small_text_size">13sp</dimen>
<dimen name="button_text_size">13sp</dimen>
<dimen name="native_main_image_height">200dp</dimen>
<dimen name="banner_width">320dp</dimen>
<dimen name="banner_height">50dp</dimen>
<dimen name="medium_rectangle_width">300dp</dimen>
<dimen name="medium_rectangle_height">250dp</dimen>

<!-- Navigation dimensions -->
<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">172dp</dimen>
<dimen name="button_height">36dp</dimen>
<dimen name="mopub_logo_width">168dp</dimen>
<dimen name="mopub_logo_height">50dp</dimen>
<dimen name="margin_large">16dp</dimen>
<dimen name="padding_large">16dp</dimen>
</resources>

8. List Viewe Layout
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:divider="@android:drawable/button_onoff_indicator_on"
android:dividerHeight="2dp" />

9. row1


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:orientation="horizontal"
android:padding="5dp"




>
<RelativeLayout
android:background="@color/purple_200"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:padding="10dp"
android:layout_marginStart="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Main Title"
android:textColor="#000000"
android:textSize="20sp"
android:maxLines="1"
android:textStyle="bold"
android:id="@+id/textView1"
android:layout_marginEnd="35dp"
/>
<ImageView

android:id="@+id/arrow"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

/>


</RelativeLayout>

</LinearLayout>

10. Listview Activity


MainActivity.MyAdapter adapter = new MainActivity.MyAdapter(this, number);

ListView.setAdapter(adapter);

MoPubAdAdapter moPubAdAdapter = new MoPubAdAdapter(this,adapter);
MoPubStaticNativeAdRenderer moPubStaticNativeAdRenderer = new MoPubStaticNativeAdRenderer(
new ViewBinder.Builder(R.layout.native_ad_layout_mopub)

.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());

moPubAdAdapter.registerAdRenderer(moPubStaticNativeAdRenderer);


moPubAdAdapter.loadAds("11a17b188668469fb0412708c3d16813");///replace your mopub real ads unit
///and dont forget to add facebook native ads id on mopub advance bidding
///real ads show after publuish app
///facebook ads render
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());
moPubAdAdapter.registerAdRenderer(facebookAdRenderer);
ListView.setAdapter(moPubAdAdapter);

//////MoPubNativeAdPositioning.MoPubClientPositioning adPositioning = MoPubNativeAdPositioning.clientPositioning();
/// adPositioning.addFixedPosition(1);
///adPositioning.addFixedPosition(7);
/// adPositioning.addFixedPosition(11);

///you can set position from mopub and unit Ad positions setting


ListView.setOnItemClickListener( new AdapterView.OnItemClickListener() {
@Override
public void onItemClick (AdapterView<?> parent , View view , int position , long id) {

view.setBackgroundColor(getResources().getColor(R.color.design_default_color_surface));


///// your on click listner

}

}) ;
}

private SdkInitializationListener initSdkListner() {

return new SdkInitializationListener() {

@Override
public void onInitializationFinished() {
Toast.makeText(MainActivity.this, "SdkInitialization", Toast.LENGTH_SHORT).show();
}
};
}





class MyAdapter extends ArrayAdapter<String> {

Context context;
String rTitle[];


MyAdapter (Context c, String title[]) {
super(c, R.layout.row1, R.id.textView1, title);
this.context = c;
this.rTitle = title;


}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = layoutInflater.inflate(R.layout.row1, parent, false);

TextView myTitle = row.findViewById(R.id.textView1);


myTitle.setText(rTitle[position]);





return row;
}
}
}

Post a Comment

0 Comments