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