AdMob Banner Ad in Android (Kotlin) by Rekibur Uddin

1. Add AdMob App ID in AndroidManifest.xml:

<application  
    <meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="@string/admob_AppId"/>

</application>

2. Add dependencies in build.gradle (Module):

implementation("com.google.android.gms:play-services-ads:24.4.0")



3. Initialize Mobile Ads in MainActivity

MobileAds.initialize(this)


Simple Banner Ads:

3.1: Add in XML Layout

<!-- res/layout/activity_main.xml -->
<!-- Admob Banner Ads -->
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/admob_BannerAdId"/>


3.2: Add Kt Code Inside onCreate


// Inside onCreate
val adRequest = AdRequest.Builder().build()
binding.adView.loadAd(adRequest)



Adaptive Banner Ads:

4.1: Layout XML with Container


<!-- res/layout/activity_main.xml -->
<LinearLayout
android:id="@+id/adContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal" />


4.2 : Kotlin Code 


// Top of onCreate
private lateinit var adContainer: LinearLayout
private var adView: AdView? = null



// Load Adaptive Banner (Inside onCreate)
loadAdaptiveBanner()




private fun loadAdaptiveBanner() {
adView = AdView(this)
    val adUnitId = getString(R.string.banner_ad_unit_id)

    adView?.adUnitId = adUnitId // Replace with real Ad Unit ID "-"
    adContainer.removeAllViews()
adContainer.addView(adView)

val adSize = getAdSize()
adView?.setAdSize(adSize)

val adRequest = AdRequest.Builder().build()
adView?.loadAd(adRequest)
}

private fun getAdSize(): AdSize {
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)

val density = outMetrics.density
val adWidthPixels = adContainer.width.takeIf { it > 0 } ?: outMetrics.widthPixels
val adWidth = (adWidthPixels / density).toInt()

return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
}

override fun onPause() {
adView?.pause()
super.onPause()
}

override fun onResume() {
super.onResume()
adView?.resume()
}

override fun onDestroy() {
adView?.destroy()
super.onDestroy()
}


Test Id:

<resources>

<string name="admob_app_id">ca-app-pub-3940256099942544~3347511713</string>
<string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>

</resources>

No comments:

Post a Comment