Unity Android接入MoPub聚合廣告SDK-ESG跨境

Unity Android接入MoPub聚合廣告SDK

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-07-05
點(diǎn)贊icon 0
查看icon 762

Unity Android接入MoPub聚合廣告SDKUnity Android接入MoPub聚合廣告SDK這里只總結(jié)前端接入流程和注意事項(xiàng),后臺(tái)配置請(qǐng)參考官方詳細(xì)文檔mopub廣告有以下類型Bananer(橫幅)Interstitial(插屏)Rewarded Video(激勵(lì)視頻)Rewarded Playable......

Unity Android接入MoPub聚合廣告SDK




Unity Android接入MoPub聚合廣告SDK

這里只總結(jié)前端接入流程和注意事項(xiàng),后臺(tái)配置請(qǐng)參考官方詳細(xì)文檔

mopub廣告有以下類型

Bananer(橫幅)

Interstitial(插屏)

Rewarded Video(激勵(lì)視頻)

Rewarded Playable(互動(dòng)式激勵(lì)MRAID)

Native(原生)

1:下載mopubunitysdk

這里下載最新的unity package

2:設(shè)置支持的廣告平臺(tái)

推薦使用插件提供的MoPub SDK Manager來管理

在這里插入圖片描述

需要注意的是,每次升級(jí)或者安裝或者刪除(刪除一般只需要在Assets/MoPub/Mediation目錄下刪除對(duì)應(yīng)目錄即可)某個(gè)廣告平臺(tái)后,建議用External Dependency Manager工具重新設(shè)置一下jar和aar依賴。

另外在網(wǎng)絡(luò)不好的情況下,使用External Dependency Manager會(huì)存在所需依賴?yán)幌聛淼那闆r,那么就需要手動(dòng)把需要的依賴放到Plugins/Android目錄下

這部分集成可以參考官方文檔:Integrate the MoPub SDK for Unity

3:SDK接入

3.1初始化

首先根據(jù)集成的廣告類型,從后臺(tái)獲得對(duì)應(yīng)的廣告id

插件中提供了Prefab來進(jìn)行初始化,同時(shí)我們也可以選擇使用底層代碼進(jìn)行初始化。筆者使用了后者。

3.1.1預(yù)定義一些參數(shù)

//ios端旗幟式廣告

  public string iOSBannerID;

  //ios插頁式廣告

  public string iOSInterstitialID;

  //ios激勵(lì)視頻廣告

  public string iOSVideoID;

  //安卓旗幟式廣告

  public string AndroidBannerID;

  //安卓插頁式廣告

  public string AndroidInterstitialID;

  //安卓激勵(lì)視頻廣告

  public string AndroidVideoID;

  //請(qǐng)求廣告的函數(shù)的參數(shù)是string數(shù)組,用來裝上面的廣告ID

  private string[] bannerAdUnits;

  private string[] interstitialAdUnits;

  private string[] rewardedVideoAdUnits;

  MPRewardedVideoListener mpRewardedVideoListener = null;

  DateTime lastAdTime = new DateTime(2020, 1, 1);

3.1.2初始化

#if UNITYIOS

    bannerAdUnits = new string[] { iOSBannerID };

    interstitialAdUnits = new string[] { iOSInterstitialID };

    rewardedVideoAdUnits = new string[] { iOSVideoID };

#elif UNITYANDROID

    bannerAdUnits = new string[] { AndroidBannerID };

    interstitialAdUnits = new string[] { AndroidInterstitialID };

    rewardedVideoAdUnits = new string[] { AndroidVideoID };

#endif

    var anyAdUnitId = rewardedVideoAdUnits[0];

    MoPub.InitializeSdk(new MoPub.SdkConfiguration

    {

      //設(shè)置一個(gè)任意有效的廣告Id

      AdUnitId = anyAdUnitId,

      LogLevel = MoPub.LogLevel.Debug,

      MediatedNetworks = new MoPub.MediatedNetwork[] {

        },

    });

3.1.3設(shè)置廣告插件

根據(jù)項(xiàng)目中需要集成的廣告類型,設(shè)置對(duì)應(yīng)的廣告插件

//加載激勵(lì)視頻的插件

MoPub.LoadRewardedVideoPluginsForAdUnits(rewardedVideoAdUnits);

//初始化各種廣告,現(xiàn)在還沒有使用好幾個(gè)id的需求,所以每個(gè)廣告類型先都用一個(gè)id,所以都取[0]。

//按著官方用例,如果有多種id的話可以寫一個(gè)for循環(huán)直接遍歷創(chuàng)造就好

其它類型api

MoPub.LoadBannerPluginsForAdUnits(bannerAdUnits);

MoPub.LoadInterstitialPluginsForAdUnits(interstitialAdUnits);

MoPub.LoadRewardedVideoPluginsForAdUnits(rewardedVideoAdUnits);

MoPub.LoadRewardedVideoPluginsForAdUnits(rewardedRichMediaAdUnits);

3.1.4根據(jù)廣告類型具體集成

官網(wǎng)提供了Banner,Interstitial,Rewarded Video三種類型廣告的集成教程,筆者這邊只集成了激勵(lì)視頻,故后文以激勵(lì)視頻為例繼續(xù)展開(需要注意的是激勵(lì)視頻教程中提到的后臺(tái)要設(shè)置Callback Server)。

step1:在SDK初始化成功的回調(diào)中,先預(yù)加載激勵(lì)視頻。

step2:播放激勵(lì)視頻前先調(diào)用MoPub.HasRewardedVideo(adUnitId);檢測(cè)視頻是否準(zhǔn)備好

step3:調(diào)用MoPub.ShowRewardedVideo(adUnitId);播放視頻

step4:處理各種回調(diào)

mpRewardedVideoListener = new MPRewardedVideoListener();

    // 綁定初始化回調(diào)

    MoPubManager.OnSdkInitializedEvent += OnSdkInitializedEvent;

    //激勵(lì)視頻廣告回調(diào)

    //激勵(lì)視頻預(yù)加載成功

    MoPubManager.OnRewardedVideoLoadedEvent += mpRewardedVideoListener.OnRewardedVideoLoadedEvent;

    //激勵(lì)視頻預(yù)加載失敗

    MoPubManager.OnRewardedVideoFailedEvent += mpRewardedVideoListener.OnRewardedVideoFailedEvent;

    //激勵(lì)視頻加載Expired

    MoPubManager.OnRewardedVideoExpiredEvent += mpRewardedVideoListener.OnRewardedVideoExpiredEvent;

    //激勵(lì)視頻廣告播放完(在播放完,用戶點(diǎn)了關(guān)閉按鈕后觸發(fā))

    MoPubManager.OnRewardedVideoShownEvent += mpRewardedVideoListener.OnRewardedVideoAdShowed;

    //激勵(lì)視頻播放失敗

    MoPubManager.OnRewardedVideoFailedToPlayEvent += mpRewardedVideoListener.OnRewardedVideoAdShowFailed; ;

    //激勵(lì)視頻播放關(guān)閉

    MoPubManager.OnRewardedVideoClosedEvent += mpRewardedVideoListener.OnRewardedVideoAdClosed;

  private void OnSdkInitializedEvent(string adUnitId)

  {

    Debug.LogError(mopub SDK初始化成功, adUnitId: + adUnitId);

#if UNITYIOS

    MoPub.RequestInterstitialAd (iOSInterstitialID);

    MoPub.RequestRewardedVideo (iOSVideoID);

#elif UNITYANDROID

    //MoPub.RequestInterstitialAd(AndroidInterstitialID);

    Debug.LogError(Prefetch the rewarded video ad);

    MoPub.RequestRewardedVideo(AndroidVideoID);//請(qǐng)求預(yù)加載

#endif

  }

class MPRewardedVideoListener

{

  public Action onReward = null;

  public Action onRewardClose = null;

  public Action onRewardError = null;

  bool rewardSuccess = false;

  public void OnRewardedVideoLoadedEvent(string adUnitId)

  {

    Debug.LogError(激勵(lì)視頻預(yù)加載成功 : + adUnitId);

  }

  public void OnRewardedVideoFailedEvent(string adUnitId, string errorMsg)

  {

    Debug.LogError(激勵(lì)視頻預(yù)加載失敗: + adUnitId + , msg: + errorMsg);

  }

  public void OnRewardedVideoExpiredEvent(string adUnitId)

  {

    Debug.LogError(激勵(lì)視頻加載Expired: + adUnitId);

    AnalyticsManager.LogEvent(AnalyticsEventID.RewardVideoShowFail);

    rewardSuccess = false;

    var act = onRewardError;

    onRewardError = null;

    if (act != null)

    {

      act();

    }

  }

  public void OnRewardedVideoAdShowed(string adUnitId)

  {

    Debug.LogError(激勵(lì)視頻廣告播放完);

    AnalyticsManager.LogEvent(AnalyticsEventID.RewardVideoShowSuccess);

    rewardSuccess = true;

  }

  public void OnRewardedVideoAdShowFailed(string adUnitId, string errorMsg)

  {

    Debug.LogError(激勵(lì)視頻播放失敗 : + adUnitId + , msg: + errorMsg);

    AnalyticsManager.LogEvent(AnalyticsEventID.RewardVideoShowFail);

    rewardSuccess = false;

    var act = onRewardError;

    onRewardError = null;

    if (act != null)

    {

      act();

    }

  }

  public void OnRewardedVideoAdClicked(string scene)

  {

    AnalyticsManager.LogEvent(AnalyticsEventID.RewardVideoClick);

  }

  public void OnRewardedVideoAdClosed(string adUnitId)

  {

    Debug.LogError(激勵(lì)視頻播放關(guān)閉 : + adUnitId);

    if (rewardSuccess)

    {

      var act = onReward;

      var act1 = onRewardClose;

      onRewardClose = null;

      onRewardError = null;

      onReward = null;

      if (act != null)

      {

        act();

      }

      if (act1 != null)

      {

        act1();

      }

    }

    else

    {

      var act = onRewardError;

      var act1 = onRewardClose;

      onRewardClose = null;

      onRewardError = null;

      onReward = null;

      if (act != null)

      {

        act();

      }

      if (act1 != null)

      {

        act1();

      }

    }

    rewardSuccess = false;

  }

}

4:測(cè)試

官方Test文檔中有提供100%填充的廣告id,可以先用這些id來測(cè)試流程。沒問題后再切換到正式id。同時(shí)也可以根據(jù)這個(gè)來很快定位是后臺(tái)配置還是前端的問題。

另外最好掛V.P.N來測(cè)試廣告~

5:注意事項(xiàng)

5.1廣告填充率低下的問題

筆者使用聚合平臺(tái)集成了MoPub、Applovin、IronSource、UnityAds。通過后臺(tái)控制只開啟某個(gè)廣告平臺(tái),發(fā)現(xiàn)MoPub和Applovin的填充率很低,Applovin是展示幾個(gè)后就再也拉不到了,MoPub是自始至終一次都沒有填充。另兩個(gè)沒有問題。目前還沒有找到原因

5.2各廣告平臺(tái)額外的配置項(xiàng)

上文中寫到了這段代碼:

      MediatedNetworks = new MoPub.MediatedNetwork[] {

        },

這里即按照廣告平臺(tái)來具體設(shè)置一些信息,但是各個(gè)廣告平臺(tái)需要設(shè)置哪些信息呢??梢詤⒖糀ppLovin,IronSource(在這些頁面左側(cè)可以很方便導(dǎo)航到其它廣告平臺(tái))。根據(jù)文檔可以看到還需要配置一些信息,最終代碼如下:

      MediatedNetworks = new MoPub.MediatedNetwork[] {      

        //AppLovin

        new MoPub.SupportedNetwork.AppLovin{

          NetworkConfiguration=new Dictionarystring, string(){

            { sdkkey,xxxxxxxxx},

          },

        },

        //IronSource

        new MoPub.SupportedNetwork.IronSource

        {

          NetworkConfiguration=new Dictionarystring, string()

          {

            { appKey,xxxxxxxxx},

          }

        }

        },

至于在unity中上述sdkkey和appKey這些字符串是哪里來的,可以通過各個(gè)廣告平臺(tái)在Unity這邊的XXXXNetworkConfig.cs腳本中獲得。比如AppLovinNetworkConfig.cs的內(nèi)容為:

在這里插入圖片描述

可以很快定位關(guān)鍵字為:sdkkey

事實(shí)上Applovin的這個(gè)配置就是AndroidManifest中的(有些聚合SDK是把參數(shù)配置到AndroidManifest.xml中):

metadata android:name=applovin.sdk.key android:value=xxxxxx /

5.3激勵(lì)視頻預(yù)加載

不知道從哪里看過一眼,說MoPub的激勵(lì)視頻是自己處理了預(yù)加載的。但是筆者項(xiàng)目中發(fā)現(xiàn)第一次預(yù)加載成功,順利播放視頻后。后續(xù)調(diào)用MoPub.HasRewardedVideo(adUnitId)總是返回false

無奈只有自己處理,主要做了以下工作:

定義bool flag來指定當(dāng)前是否正在預(yù)加載視頻,來規(guī)避重復(fù)的預(yù)加載。即只能在flag==false的情況下調(diào)用MoPub.RequestRewardedVideo(adUnitId);進(jìn)行視頻預(yù)加載,且在調(diào)用的同時(shí),設(shè)置flag=true

用戶在成功播放視頻的onclose回調(diào)中,再次預(yù)加載視頻

預(yù)加載成功或者失敗的回調(diào)中,設(shè)置flag為false


文章推薦
TikTok+獨(dú)立站 新玩法搶占紅利,tiktok怎么掛獨(dú)立站
Whatsapp無法更新怎么辦,whatsapp messenger 無法更新
深圳國際快遞代理公司敏感貨電池貨莊家
Wego使用Google Play Instant將購買轉(zhuǎn)化率提高了27%,google play services官網(wǎng)


特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺(tái)交流群
加入
韓國平臺(tái)交流群
掃碼進(jìn)群
歐洲多平臺(tái)交流群
加入
歐洲多平臺(tái)交流群
掃碼進(jìn)群
美國賣家交流群
加入
美國賣家交流群
掃碼進(jìn)群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
亞馬遜跨境增長(zhǎng)交流群
加入
亞馬遜跨境增長(zhǎng)交流群
掃碼進(jìn)群
亞馬遜跨境增長(zhǎng)交流群
加入
亞馬遜跨境增長(zhǎng)交流群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
ESG獨(dú)家招商-PHH GROUP賣家交流群
加入
ESG獨(dú)家招商-PHH GROUP賣家交流群
掃碼進(jìn)群
《TikTok官方運(yùn)營干貨合集》
《TikTok綜合運(yùn)營手冊(cè)》
《TikTok短視頻運(yùn)營手冊(cè)》
《TikTok直播運(yùn)營手冊(cè)》
《TikTok全球趨勢(shì)報(bào)告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺(tái)篇》
《開店大全-東南亞篇》
《CD平臺(tái)自注冊(cè)指南》
通過ESG入駐平臺(tái),您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運(yùn)營實(shí)操指導(dǎo)
運(yùn)營提效資源福利
平臺(tái)官方專屬優(yōu)惠

立即登記,定期獲得更多資訊

訂閱
聯(lián)系顧問

平臺(tái)顧問

平臺(tái)顧問 平臺(tái)顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機(jī)入駐更便捷

icon icon

返回頂部

【免費(fèi)領(lǐng)取】全球跨境電商運(yùn)營干貨 關(guān)閉
進(jìn)行中
進(jìn)行中
TikTok運(yùn)營必備干貨包
包含8個(gè)TikTok最新運(yùn)營指南(市場(chǎng)趨勢(shì)、運(yùn)營手冊(cè)、節(jié)日攻略等),官方出品,專業(yè)全面!
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
韓國電商節(jié)日營銷指南
10+韓國電商重要營銷節(jié)點(diǎn)詳細(xì)解讀;2024各節(jié)日熱度選品助力引爆訂單增長(zhǎng);8大節(jié)日營銷技巧輕松撬動(dòng)大促流量密碼。
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——全球合集
涵括全球100+個(gè)電商平臺(tái)的核心信息,包括平臺(tái)精煉簡(jiǎn)介、競(jìng)爭(zhēng)優(yōu)勢(shì)、熱銷品類、入駐要求以及入駐須知等關(guān)鍵內(nèi)容。
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——主流平臺(tái)篇
火爆全球的跨境電商平臺(tái)合集,平臺(tái)優(yōu)勢(shì)、開店選品、入駐條件盡在掌握
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——拉美篇
涵蓋9大熱門拉美電商平臺(tái),成熟的市場(chǎng)是跨境賣家的熱門選擇!
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——日韓篇
涵蓋10+日韓電商平臺(tái),入駐條件一看就懂,優(yōu)勢(shì)熱銷品應(yīng)有盡有
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——?dú)W洲篇
涵蓋20+歐洲電商平臺(tái),詳細(xì)解讀優(yōu)勢(shì)、入駐條件、熱銷品等
立即領(lǐng)取