尤物精品_gay小说高h_成人免费va视频_涩涩18网站

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

Unity Android接入MoPub聚合廣告SDK

來源網絡
來源網絡
2022-07-05
點贊icon 0
查看icon 781

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

Unity Android接入MoPub聚合廣告SDK




Unity Android接入MoPub聚合廣告SDK

這里只總結前端接入流程和注意事項,后臺配置請參考官方詳細文檔

mopub廣告有以下類型

Bananer(橫幅)

Interstitial(插屏)

Rewarded Video(激勵視頻)

Rewarded Playable(互動式激勵MRAID)

Native(原生)

1:下載mopubunitysdk

這里下載最新的unity package

2:設置支持的廣告平臺

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

在這里插入圖片描述

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

另外在網絡不好的情況下,使用External Dependency Manager會存在所需依賴拉不下來的情況,那么就需要手動把需要的依賴放到Plugins/Android目錄下

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

3:SDK接入

3.1初始化

首先根據集成的廣告類型,從后臺獲得對應的廣告id

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

3.1.1預定義一些參數

//ios端旗幟式廣告

  public string iOSBannerID;

  //ios插頁式廣告

  public string iOSInterstitialID;

  //ios激勵視頻廣告

  public string iOSVideoID;

  //安卓旗幟式廣告

  public string AndroidBannerID;

  //安卓插頁式廣告

  public string AndroidInterstitialID;

  //安卓激勵視頻廣告

  public string AndroidVideoID;

  //請求廣告的函數的參數是string數組,用來裝上面的廣告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

    {

      //設置一個任意有效的廣告Id

      AdUnitId = anyAdUnitId,

      LogLevel = MoPub.LogLevel.Debug,

      MediatedNetworks = new MoPub.MediatedNetwork[] {

        },

    });

3.1.3設置廣告插件

根據項目中需要集成的廣告類型,設置對應的廣告插件

//加載激勵視頻的插件

MoPub.LoadRewardedVideoPluginsForAdUnits(rewardedVideoAdUnits);

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

//按著官方用例,如果有多種id的話可以寫一個for循環直接遍歷創造就好

其它類型api

MoPub.LoadBannerPluginsForAdUnits(bannerAdUnits);

MoPub.LoadInterstitialPluginsForAdUnits(interstitialAdUnits);

MoPub.LoadRewardedVideoPluginsForAdUnits(rewardedVideoAdUnits);

MoPub.LoadRewardedVideoPluginsForAdUnits(rewardedRichMediaAdUnits);

3.1.4根據廣告類型具體集成

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

step1:在SDK初始化成功的回調中,先預加載激勵視頻。

step2:播放激勵視頻前先調用MoPub.HasRewardedVideo(adUnitId);檢測視頻是否準備好

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

step4:處理各種回調

mpRewardedVideoListener = new MPRewardedVideoListener();

    // 綁定初始化回調

    MoPubManager.OnSdkInitializedEvent += OnSdkInitializedEvent;

    //激勵視頻廣告回調

    //激勵視頻預加載成功

    MoPubManager.OnRewardedVideoLoadedEvent += mpRewardedVideoListener.OnRewardedVideoLoadedEvent;

    //激勵視頻預加載失敗

    MoPubManager.OnRewardedVideoFailedEvent += mpRewardedVideoListener.OnRewardedVideoFailedEvent;

    //激勵視頻加載Expired

    MoPubManager.OnRewardedVideoExpiredEvent += mpRewardedVideoListener.OnRewardedVideoExpiredEvent;

    //激勵視頻廣告播放完(在播放完,用戶點了關閉按鈕后觸發)

    MoPubManager.OnRewardedVideoShownEvent += mpRewardedVideoListener.OnRewardedVideoAdShowed;

    //激勵視頻播放失敗

    MoPubManager.OnRewardedVideoFailedToPlayEvent += mpRewardedVideoListener.OnRewardedVideoAdShowFailed; ;

    //激勵視頻播放關閉

    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);//請求預加載

#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(激勵視頻預加載成功 : + adUnitId);

  }

  public void OnRewardedVideoFailedEvent(string adUnitId, string errorMsg)

  {

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

  }

  public void OnRewardedVideoExpiredEvent(string adUnitId)

  {

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

    AnalyticsManager.LogEvent(AnalyticsEventID.RewardVideoShowFail);

    rewardSuccess = false;

    var act = onRewardError;

    onRewardError = null;

    if (act != null)

    {

      act();

    }

  }

  public void OnRewardedVideoAdShowed(string adUnitId)

  {

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

    AnalyticsManager.LogEvent(AnalyticsEventID.RewardVideoShowSuccess);

    rewardSuccess = true;

  }

  public void OnRewardedVideoAdShowFailed(string adUnitId, string errorMsg)

  {

    Debug.LogError(激勵視頻播放失敗 : + 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(激勵視頻播放關閉 : + 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:測試

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

另外最好掛V.P.N來測試廣告~

5:注意事項

5.1廣告填充率低下的問題

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

5.2各廣告平臺額外的配置項

上文中寫到了這段代碼:

      MediatedNetworks = new MoPub.MediatedNetwork[] {

        },

這里即按照廣告平臺來具體設置一些信息,但是各個廣告平臺需要設置哪些信息呢。可以參考AppLovin,IronSource(在這些頁面左側可以很方便導航到其它廣告平臺)。根據文檔可以看到還需要配置一些信息,最終代碼如下:

      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這些字符串是哪里來的,可以通過各個廣告平臺在Unity這邊的XXXXNetworkConfig.cs腳本中獲得。比如AppLovinNetworkConfig.cs的內容為:

在這里插入圖片描述

可以很快定位關鍵字為:sdkkey

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

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

5.3激勵視頻預加載

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

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

定義bool flag來指定當前是否正在預加載視頻,來規避重復的預加載。即只能在flag==false的情況下調用MoPub.RequestRewardedVideo(adUnitId);進行視頻預加載,且在調用的同時,設置flag=true

用戶在成功播放視頻的onclose回調中,再次預加載視頻

預加載成功或者失敗的回調中,設置flag為false


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


特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進群
美國賣家交流群
加入
美國賣家交流群
掃碼進群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
ESG獨家招商-PHH GROUP賣家交流群
加入
ESG獨家招商-PHH GROUP賣家交流群
掃碼進群
2025跨境電商營銷日歷
《2024年全球消費趨勢白皮書——美國篇》
《2024TikTok出海達人營銷白皮書》
《Coupang自注冊指南》
《eMAG知識百科》
《TikTok官方運營干貨合集》
《韓國節日營銷指南》
《開店大全-全球合集》
《TikTok綜合運營手冊》
《TikTok短視頻運營手冊》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業1v1客戶經理服務
運營實操指導
運營提效資源福利
平臺官方專屬優惠

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

訂閱
聯系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機入駐更便捷

icon icon

返回頂部