App變現(xiàn)之Admob原生廣告,admob廣告變現(xiàn)App變現(xiàn)之Admob原生廣告Admob介紹admob是Google的移動(dòng)廣告平臺(tái),集成admob的SDK到APP中,獲取廣告數(shù)據(jù)展示出來,可以給我們帶來廣告收益。對(duì)于大流量的應(yīng)用,如果可以在合適的位置,無縫的加入廣告,可以帶來可觀的廣告收入,這已經(jīng)是一個(gè)公開的成功商業(yè)......
Admob介紹
admob是Google的移動(dòng)廣告平臺(tái),集成admob的SDK到APP中,獲取廣告數(shù)據(jù)展示出來,可以給我們帶來廣告收益。對(duì)于大流量的應(yīng)用,如果可以在合適的位置,無縫的加入廣告,可以帶來可觀的廣告收入,這已經(jīng)是一個(gè)公開的成功商業(yè)模式。有心的小伙伴可以往這個(gè)方向嘗試,財(cái)務(wù)自由指日可待哦!
先上張admob原生廣告的效果圖,這是一張內(nèi)容類型的原生廣告。
Admob廣告類型
Admob有哪幾種展現(xiàn)形式的廣告呢?
Banner(橫幅廣告):最常見的,就是平時(shí)看到的屏幕的底部或者頂部有一個(gè)橫條的廣告條。
Interstitial(插頁廣告):類似啟動(dòng)頁廣告,整個(gè)屏幕顯示一副廣告。
Rewarded Video(應(yīng)用內(nèi)購買廣告):這個(gè)玩國外游戲經(jīng)常會(huì)看到,你看完一個(gè)廣告視頻,游戲會(huì)獎(jiǎng)勵(lì)你一些道具或者其他的什么(這個(gè)獎(jiǎng)勵(lì)是一個(gè)整數(shù),在AdMob中可以設(shè)置數(shù)量,用戶看完視頻會(huì)得到這個(gè)數(shù)量的獎(jiǎng)勵(lì),比如獎(jiǎng)勵(lì)3瓶藥水,3條生命等)。
Native(原生廣告):這個(gè)是體驗(yàn)最好的廣告形式,和原生app無縫對(duì)接,也許你已經(jīng)見過一個(gè)列表的某個(gè)item內(nèi)容展示的是廣告,就是這種形式。
Admob廣告接入入門
下面就以Admob的原生廣告為例,帶大家入門一下,怎么集成使用。
預(yù)備條件
Target Android API level 14 or higher
Admob官網(wǎng)注冊(cè)添加應(yīng)用和廣告單元
添加依賴
dependencies{
implementationcom.google.android.gms:playservicesads:17.0.0
}
配置AndroidManifest.xml
lt;manifestgt;
lt;applicationgt;
lt;!Sample AdMob App ID:caapppub3940256099942544~3347511713gt;
lt;metadata
android:name=com.google.android.gms.ads.APPLICATION_ID
android:value=[ADMOB_APP_ID]/gt;
lt;/applicationgt;
lt;/manifestgt;
注意:對(duì)于Google Mobile Ads SDK version 17.0.0,這一步是必須的
初始化SDK
在廣告加載之前,需要向MobileAds傳入app id初始化SDK,這里要注意,需要在admob上注冊(cè)應(yīng)用后才有app id哦。
下面代碼是在Activity中初始化的,最理想的時(shí)機(jī)是在應(yīng)用啟動(dòng)的時(shí)候。
package...
import...
import com.google.android.gms.ads.MobileAds;
public class MainActivity extends AppCompatActivity{
...
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Sample AdMob app ID:caapppub3940256099942544~3347511713
MobileAds.initialize(this,YOUR_ADMOB_APP_ID);
}
...
}
加載廣告
首先需要構(gòu)建AdLoader,在Builder中傳入廣告單元id,不同廣告位對(duì)應(yīng)不同的廣告單元。
AdLoader.Builder builder=new AdLoader.Builder(this,ADMOB_AD_UNIT_ID);
builder.forAppInstallAd(new NativeAppInstallAd.OnAppInstallAdLoadedListener(){
Override
public void onAppInstallAdLoaded(NativeAppInstallAd nativeAd){
FrameLayout frameLayout=
findViewById(R.id.fl_adplaceholder);
NativeAppInstallAdView adView=(NativeAppInstallAdView)getLayoutInflater()
.inflate(R.layout.ad_app_install,null);
populateUnifiedNativeAdView(nativeAd,adView);
frameLayout.removeAllViews();
rameLayout.addView(adView);
}
});
AdLoader adLoader=builder.withAdListener(new AdListener(){
Override
public void onAdFailedToLoad(int errorCode){
Toast.makeText(SingleAdActivity.this,Failed to load native ad:
+errorCode,Toast.LENGTH_SHORT).show();
}
}).build();
加載單條廣告:
adLoader.loadAd(new AdRequest.Builder().build());
如果需要加載多條廣告,admob也提供了加載多條廣告的方法,如下:
adLoader.loadAds(new AdRequest.Builder().build(),3);
不過有一定限制,獲取多條廣告的上限為5,你可以傳入?yún)?shù)5,但最多返回5條廣告,也有可能小于5條。每收到一條廣告,onAppInstallAdLoaded會(huì)回調(diào)一次。
如果獲取多條廣告,怎么知道數(shù)據(jù)加載完畢呢?可以通過isLoading()判斷廣告是否全部加載完畢:
final AdLoader adLoader=new AdLoader.Builder(this,caapppub3940256099942544/2247696110)
.forAppInstallAd(new NativeAppInstallAd.OnAppInstallAdLoadedListener(){
Override
public void onAppInstallAdLoaded(NativeAppInstallAd ad){
...
//some code that displays the app install ad.
...
if(adLoader.isLoading()){
//The AdLoader is still loading ads.
//Expect more adLoaded or onAdFailedToLoad callbacks.
}else{
//The AdLoader has finished loading ads.
}
}
}).build();
ad view class
從上面一路看下來,留心的小伙伴可能已經(jīng)注意到了NativeAppInstallAdView這個(gè)類,從命名看,這個(gè)類應(yīng)該是屬于SDK里面的,是用來做什么的呢?
這個(gè)類確實(shí)來自SDK,先要從原生廣告類型說起,Admob原生廣告有兩種類型,NativeAppInstallAd和NativeContentAd:
·NativeAppInstallAd是應(yīng)用安裝類型的廣告,對(duì)應(yīng)到View是NativeAppInstallAdView
·NativeContentAd是內(nèi)容類型的廣告,對(duì)應(yīng)到View是NativeContentAdView
上面的兩個(gè)View class,我們?cè)谑褂脮r(shí),必須把它們作為廣告布局的父View,這是必須要遵守的使用規(guī)范。
如下是以NativeContentAdView作為父View的廣告布局:
lt;com.google.android.gms.ads.formats.NativeContentAdView
xmlns:android=https://schemas.android.com/apk/res/android
android:layout_width=match_parent
android:layout_height=wrap_contentgt;
lt;LinearLayout
android:orientation=vertical
...gt;
lt;LinearLayout
android:orientation=horizontal
...gt;
lt;TextView
android:id= +id/contentad_headline
.../gt;
lt;/LinearLayoutgt;
//Other assets such as image or media view,call to action,etc follow.
...
lt;/LinearLayoutgt;
lt;/com.google.android.gms.ads.formats.NativeContentAdViewgt;
Admob原生廣告官方demo
這里給兩個(gè)官方放在github上的demo,大家可以參考看看:
googleads demo:https://github.com/googleads/googleadsmobileandroidexamples
googlecodelabs demo:https://github.com/googlecodelabs/admobnativeadvancedfeed
注意事項(xiàng)
·廣告位添加后,可能需要等上2個(gè)小時(shí)才能使用
·不依賴gms,Admob廣告在國內(nèi)也可以使用,但是試了一下,不翻墻好像也加載不出來
他山之石
分享幾個(gè)從別人文章看來的幾條廣告運(yùn)營的經(jīng)驗(yàn):
1.首屏一定要展示廣告。這主要是因?yàn)楫a(chǎn)品首屏的曝光量大,但廣告要展示得當(dāng)。
2.多賬戶分擔(dān)風(fēng)險(xiǎn)。因?yàn)橛靡粋€(gè)賬戶創(chuàng)建所有的ad unit/placement時(shí),雖然接入的工作量小,但風(fēng)險(xiǎn)過于集中了,哪天賬戶被封了就欲哭無淚了;因此建議同時(shí)創(chuàng)建3.多個(gè)廣告賬戶,在產(chǎn)品里面輪流使用,很多時(shí)候違規(guī)也只是其中的一個(gè),哪怕被封損失也小。
4.多平臺(tái)互為備份。例如Facebook/Admob兩個(gè)平臺(tái)互為備份,當(dāng)Facebook廣告請(qǐng)求不到或加載不了時(shí),則展示Admob廣告,這樣能最大化保證廣告展現(xiàn)。
5.最大化廣告刷新機(jī)制。例如用戶刷新內(nèi)容列表,哪怕內(nèi)容沒更新,把列表里面的廣告重新請(qǐng)求并換一批。
6.廣告預(yù)加載機(jī)制。不用等到用戶請(qǐng)求時(shí)再去向廣告平臺(tái)發(fā)起請(qǐng)求,可以提前請(qǐng)求到數(shù)據(jù),需要的時(shí)候隨時(shí)可用,這樣可以保證流暢體驗(yàn)。
選擇合適的廣告形式。畢竟有banner廣告,插屏廣告,原生廣告等那么多樣式,選擇廣告形式的時(shí)候最好能跟當(dāng)前廣告位結(jié)合起來。
參考資料
https://developers.google.com/admob/android/quickstart
https://developers.google.com/admob/android/native
https://firebase.google.com/docs/admob/
https://github.com/googleads/googleadsmobileandroidexamples
https://github.com/googlecodelabs/admobnativeadvancedfeed
https://www.jianshu.com/p/4dbe269500b8
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部