应用出海之--AdMob
介紹
Google AdMob是目前全球最大的移動(dòng)APP廣告平臺(tái),向應(yīng)用程序開發(fā)者以及需要在應(yīng)用程序中進(jìn)行廣告投放的廣告主開放,為在移動(dòng)端上發(fā)掘商機(jī)、塑造品牌和實(shí)現(xiàn)收益提供解決方案。
其實(shí)就是在應(yīng)用內(nèi)、游戲頁面、網(wǎng)頁中展示廣告的平臺(tái)
廣告類型區(qū)別
橫幅廣告
占據(jù)一小塊區(qū)域,使用AdView加載,內(nèi)部為webView實(shí)現(xiàn)。加載完成后自動(dòng)廣告,點(diǎn)擊后跳轉(zhuǎn)到相應(yīng)市場(chǎng)或者網(wǎng)頁。
插頁廣告
全屏顯示的廣告,可能為圖片,也可能為視頻。內(nèi)部是個(gè)webview
激勵(lì)視頻廣告
占據(jù)全屏,播放一段視頻,后臺(tái)可配置獎(jiǎng)勵(lì)時(shí)間點(diǎn)和獎(jiǎng)勵(lì)值,在監(jiān)聽中能接收到回調(diào)從而進(jìn)行相應(yīng)的業(yè)務(wù)處理。一般多用于虛擬幣獎(jiǎng)勵(lì)、看視頻解鎖等場(chǎng)景。同樣是個(gè)webview實(shí)現(xiàn)
原生廣告
較前幾個(gè)不同的是,該類型廣告請(qǐng)求成功后不會(huì)自動(dòng)加載,而是把廣告信息返回給開發(fā)人員,由開發(fā)人員定義布局該如何展示廣告內(nèi)容。
廣告內(nèi)容后臺(tái)可選影片、圖片一種或兩種并存。
接入
接入沒有太多問題,照著官網(wǎng)文檔一步一步接入。
官網(wǎng)接入文檔–>文檔地址
注意點(diǎn)
原生廣告的加載不自動(dòng)加載,但是沒有詳細(xì)的文檔說明每個(gè)字段的含義,或者如何獲取點(diǎn)擊事件、如何跳轉(zhuǎn)等,可以參考官方給出的demo:
參考demo地址
踩坑指南
因?yàn)槭窃趪?guó)外比較流行,國(guó)內(nèi)接這個(gè)庫的不多,還是有挺多坑慢慢踩的。
一、Failed to load , errorCode = 3
這個(gè)問題遇到也挺多的,大致是有兩種原因:
我還遇到因?yàn)槭謾C(jī)沒有翻墻返回code為3,翻墻之后馬上顯示正常了,但明明說的是不翻墻也能獲取。。。。。。
另外,對(duì)應(yīng)于onLoadFailed方法里的errCode,官網(wǎng)有文檔進(jìn)行描述,可以根據(jù)文檔進(jìn)行查找對(duì)應(yīng)因何引起。
鏈接—>對(duì)應(yīng)code編碼
例舉如下:
| int | ERROR_CODE_NO_FILL | The ad request was successful, but no ad was returned due to lack of ad inventory. |
| int | ERROR_CODE_INTERNAL_ERROR | Something happened internally; for instance, an invalid response was received from the ad server. |
| … | … | … |
解決
感覺真是無解了,當(dāng)初這個(gè)問題搞了半個(gè)月,測(cè)試unitId一切正常,切成正式id就這個(gè)錯(cuò)誤,看了各種文檔,無果,后來做了個(gè)plan B然后硬著頭皮上線,上線就好了,廣告正常加載。。。
二、AdView加載成功仍不顯示
遇到橫幅廣告不顯示的問題,以為是加載失敗了,通過監(jiān)聽發(fā)現(xiàn)已經(jīng)加載成功了,只是沒有顯示。
原因1
當(dāng)googlePlay Service遇上ADMob,激烈碰撞之后,會(huì)締結(jié)這么一個(gè)bug,AdView加載完成之后不能自動(dòng)刷新顯示,需要等待它下一次重新繪制的時(shí)候,而這個(gè)時(shí)長(zhǎng)有60s之久,所以資源獲取成功了而并沒有顯示。
出現(xiàn)該問題的情況,admob導(dǎo)入入方式為api 'com.google.android.gms.play-services-ads:8.1.0',如果換成admob庫單獨(dú)導(dǎo)入而不是通過play-services導(dǎo)入,則不會(huì)有該問題。
解決:回調(diào)方法onLoadAd()中,手動(dòng)觸發(fā)重繪。 例如setBackground()、layout()等方法
原因2
實(shí)際開發(fā)中遇到一種情況是AdSize設(shè)置相關(guān),導(dǎo)致雖然加載成功但不顯示。
官網(wǎng)文檔中,有對(duì)AdSize設(shè)置不正確導(dǎo)致顯示異常的說明:
注意:橫幅廣告容器的尺寸必須至少與橫幅廣告一樣大。如果您的容器留有內(nèi)邊距,將會(huì)有效減小容器大小。如果容器無法容納橫幅廣告,則橫幅廣告不會(huì)展示,并且您的日志中會(huì)顯示以下警告:
W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.
官網(wǎng)有一種AdSize是 SMART_BANNER,官網(wǎng)對(duì)其描述是智能適應(yīng)豎屏、橫屏、大屏自適應(yīng)改變寬高,如此智能于是乎我便設(shè)置為該size,結(jié)果經(jīng)常加載不出來,無法顯示,換成BANNER后馬上顯示正常。
解決:盡量使用官方提供的Size,自己設(shè)置寬高的話注意要能容納下該廣告
三、原生廣告視頻相關(guān)
后臺(tái)選擇原生廣告的話,有兩種廣告可勾選:
- 圖片
- 影片
播放監(jiān)聽
很多場(chǎng)景產(chǎn)品會(huì)提出使用視頻廣告,觀看完給用戶贈(zèng)送某個(gè)東西或者解鎖某個(gè)內(nèi)容,就需要使用到監(jiān)聽,而原生廣告中視頻播放監(jiān)聽不太一樣,我們需要如下設(shè)置:
在獲取到NativeAD對(duì)象后,獲取VideoController對(duì)象,通過此進(jìn)行監(jiān)聽:
VideoController vc = nativeAd.getVideoController(); vc.setVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks() {@Overridepublic void onVideoPlay() {super.onVideoPlay();isStartPlay = true;}@Overridepublic void onVideoEnd() {super.onVideoEnd();isPlayEnd = true;}//其他回調(diào)方法... });播放設(shè)置
關(guān)于是否靜音播放,可以如下配置
最后在AdLoader的構(gòu)建過程中,添加Options:
.withNativeAdOptions(new NativeAdOptions.Builder()//設(shè)置的配置.setVideoOptions(videoOptions).build()) .build()廣告源問題
如果在后臺(tái)只勾選影片,從而想實(shí)現(xiàn)都是視頻廣告的話,那就坑大發(fā)了。因?yàn)樗€是會(huì)冒很多圖片廣告出來。。
可能原因1:google這個(gè)過濾有問題,勾了也沒用
可能原因2:廣告主投放的時(shí)候可能明明是張圖片,非要投到影片類型下,然后我們加載出來的死活就只是圖片了
四、日后慢慢填
…
總結(jié)
以上是生活随笔為你收集整理的应用出海之--AdMob的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态SQL之、条件判断(转)
- 下一篇: 网站死链接检测查询工具