前提條件
需要應用先上架Google Play.
獲取APP ID及廣告單元ID
登陸AdMob后臺,https://apps.admob.com/v2/home
·選擇要添加AdMob廣告的應用,打開“廣告單元”菜單
·添加廣告單元,或者打開已有的廣告單元
·在實現(xiàn)說明中,獲取應用ID及廣告單元ID
引入AdMob SDK
即,Google Mobile Ads SDK
參考文檔:https://developers.google.com/admob/android/quick-start?hl=zh-CN#import_the_mobile_ads_sdk
在app-level build.gradle的dependencies添加依賴:
implementation'com.google.android.gms:play-services-ads:18.3.0'
在AndroidManifest.xml中設置AdMob App ID
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
初始化Mobile Ads SDK
kotlin代碼。
setContentView中進行初始化:
MobileAds.initialize(this){}
需要引入
import com.google.android.gms.ads.MobileAds;
引入橫幅廣告
layout XML中添加:
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
這個adUnitId是測試ID,在調(diào)試時,需要使用這個。只有發(fā)布時才能使用真實廣告單元ID。
加載廣告:
//依賴
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
//添加屬性
lateinit var mAdView:AdView
//加載廣告
mAdView=findViewById(R.id.adView)
val adRequest=AdRequest.Builder().build()
mAdView.loadAd(adRequest)
adSize的值
SMART_BANNER。
自適應橫幅廣告與智能橫幅廣告的區(qū)別?因為文檔中說自適應橫幅廣告將替代智能橫幅廣告。
智能橫幅可實現(xiàn)三種廣告高度:
·廣告高度32 dp,屏幕高度≤400 dp
·廣告高度50 dp,屏幕高度>400 dp且≤720 dp
·廣告高度90 dp,屏幕高度>720 dp
自適應橫幅廣告參考https://developers.google.com/admob/android/banner/adaptive
優(yōu)化了智能橫幅只能三種固定高度的問題。但是看起來實現(xiàn)太復雜,所以還是使用智能橫幅SMART_BANNER吧。
如何自動切換adUnitId
在debug和release時,使用不同的adUnitId。
實際廣告效果
添加測試廣告代碼之后,顯示效果如下:
真機不顯示正式廣告
但是,我換成正式廣告ID之后,發(fā)現(xiàn)AdMob廣告在真機上無法顯示。