橫幅廣告
橫幅廣告會(huì)占據(jù)應(yīng)用布局中的一處位置,要么是設(shè)備屏幕的頂部,要么是底部。這類廣告會(huì)在用戶與應(yīng)用互動(dòng)時(shí)停留在屏幕上,并且可在一段時(shí)間后自動(dòng)刷新。如果您剛開始接觸移動(dòng)廣告,不妨先從橫幅廣告著手。
本指南介紹了如何將AdMob橫幅廣告植入到Android應(yīng)用中。除了提供代碼段和操作說明之外,本指南還介紹了如何正確地設(shè)置橫幅廣告的尺寸,并給出了其他資源的鏈接。
前提條件
·導(dǎo)入Google移動(dòng)廣告SDK(可以只導(dǎo)入其自身,也可以將其作為Firebase的一部分加以導(dǎo)入)。
向布局中添加AdView
要展示橫幅廣告,首先要將AdView放置到您希望用于展示廣告的Activity或Fragment的布局中。最簡(jiǎn)單的放置方法是將其添加到相應(yīng)的XML布局文件中。下例展示了某一Activity的AdView:
# main_activity.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>
...
請(qǐng)注意設(shè)置以下必需屬性:
·ads:adSize-將此屬性設(shè)置為要使用的廣告尺寸。如果您不想使用該常量定義的標(biāo)準(zhǔn)尺寸,可改為設(shè)置自定義尺寸。有關(guān)詳情,請(qǐng)參閱下面的“橫幅廣告尺寸”部分。
·ads:adUnitId-將此屬性設(shè)置為您應(yīng)用中用于展示廣告的廣告單元所用的唯一標(biāo)識(shí)符。如果您要在不同的Activity中展示橫幅廣告,則其中每個(gè)都需要一個(gè)廣告單元。
另外,您也可以通過編程方式創(chuàng)建AdView:
警告:請(qǐng)確保以相同的方式設(shè)置廣告尺寸和廣告單元ID,即確保兩者均使用XML格式或均以編程方式進(jìn)行設(shè)置。
務(wù)必用測(cè)試廣告進(jìn)行測(cè)試
在構(gòu)建和測(cè)試應(yīng)用時(shí),請(qǐng)確保使用的是測(cè)試廣告,而不是實(shí)際投放的廣告。否則,可能會(huì)導(dǎo)致您的帳號(hào)被暫停。
對(duì)于Android橫幅廣告,加載測(cè)試廣告最簡(jiǎn)便的方法就是使用下面的測(cè)試專用廣告單元ID:
ca-app-pub-3940256099942544/6300978111
該測(cè)試廣告單元ID已經(jīng)過專門配置,可確保每個(gè)請(qǐng)求返回的都是測(cè)試廣告。您可以在自己應(yīng)用的編碼、測(cè)試和調(diào)試過程中隨意使用該測(cè)試廣告單元ID。只是一定要在發(fā)布應(yīng)用前用您自己的廣告單元ID替換該測(cè)試廣告單元ID。
如需詳細(xì)了解移動(dòng)廣告SDK的測(cè)試廣告如何運(yùn)作,請(qǐng)參閱測(cè)試廣告。
加載廣告
注意:請(qǐng)?jiān)谥骶€程中進(jìn)行對(duì)移動(dòng)廣告SDK的所有調(diào)用。
AdView放置好后,下一步是加載廣告。廣告加載是使用AdView類中的loadAd()方法完成的。此方法需要一個(gè)AdRequest參數(shù),該參數(shù)中包含關(guān)于單個(gè)廣告請(qǐng)求的運(yùn)行時(shí)信息(如定位信息)。
下例顯示了如何通過Activity的onCreate()方法加載廣告:
MainActivity(節(jié)選)
注意:如果您的廣告加載失敗,只要已將廣告單元配置為定期刷新,就無需再明確請(qǐng)求一個(gè)廣告;Google移動(dòng)廣告SDK會(huì)按照您在AdMob界面中指定的頻率進(jìn)行刷新。如果您尚未啟用刷新,則需要發(fā)出新的請(qǐng)求。
大功告成!您的應(yīng)用現(xiàn)在就可以展示橫幅廣告了。
廣告事件
要進(jìn)一步自定義您的廣告行為,您可以在廣告生命周期內(nèi)加入許多事件,如加載、打開、關(guān)閉等等。您可以通過AdListener類監(jiān)聽這些事件。
要將AdListener用于AdView,請(qǐng)調(diào)用setAdListener()方法:
AdListener中每種可替換的方法均對(duì)應(yīng)廣告生命周期內(nèi)的一個(gè)事件。
橫幅廣告尺寸
注意:橫幅廣告容器的尺寸必須至少與橫幅廣告一樣大。如果容器留有內(nèi)邊距,容器的實(shí)際尺寸會(huì)有所減小。如果容器無法容納橫幅廣告,則橫幅廣告不會(huì)展示,并且您的日志中會(huì)顯示以下警告:
W/Ads:Not enough space to show ad.Needs 320x50 dp,but only has 288x495 dp.
下表列出了標(biāo)準(zhǔn)的橫幅廣告尺寸。
要自定義橫幅廣告尺寸,請(qǐng)?jiān)O(shè)置所需的AdSize,如下所示:
針對(duì)視頻廣告啟用硬件加速
為了確保視頻廣告在橫幅廣告視圖中成功展示,必須啟用硬件加速。
硬件加速默認(rèn)處于啟用狀態(tài),但有些應(yīng)用可能會(huì)選擇將其停用。如果您的應(yīng)用停用了硬件加速,我們建議您為使用廣告的Activity類啟用硬件加速。
啟用硬件加速
如果您的應(yīng)用在全局級(jí)別啟用硬件加速時(shí)無法正常運(yùn)行,您也可以針對(duì)單個(gè)Activity啟用或停用硬件加速。如需啟用或停用硬件加速,您可以針對(duì)AndroidManifest.xml中的<application>和<activity>元素使用android:hardwareAccelerated屬性。以下示例展示了如何為整個(gè)應(yīng)用啟用硬件加速,但為一個(gè)Activity停用硬件加速:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
如需詳細(xì)了解用于控制硬件加速的選項(xiàng),請(qǐng)參閱硬件加速指南。請(qǐng)注意,如果停用某個(gè)Activity,將無法針對(duì)單個(gè)廣告視圖啟用硬件加速,因此必須針對(duì)該Activity本身啟用硬件加速。