How to implement AdMob collapsible Banner ads in android
📌 Implementation in build.gradle
implementation 'com.google.android.gms:play-services-ads:23.3.0'
🌐 Android Internet Permissions in AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
⚙️ Meta-data Tag in AndroidManifest.xml
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713" />
🖥️ XML Code in activity_main.xml
<FrameLayout
android:id="@+id/adContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
💻 Java Code Inside AppCompatActivity MainActivity.java
private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/2014213617";
private AdView adView;
📌 Inside OnCreate Method in MainActivity.java
MobileAds.initialize(this, initializationStatus -> {});
loadBannerAd();
📌 Outside OnCreate Method in MainActivity.java
private void loadBannerAd() {
FrameLayout adContainer = findViewById(R.id.adContainer);
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
adView.setAdSize(getAdSize());
adContainer.addView(adView);
Bundle extras = new Bundle();
extras.putString("collapsible", "bottom");
AdRequest adRequest = new AdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
adView.loadAd(adRequest);
}
private AdSize getAdSize() {
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int adWidthPixels = Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
? getWindowManager().getCurrentWindowMetrics().getBounds().width()
: displayMetrics.widthPixels;
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, (int) (adWidthPixels / displayMetrics.density));
}