Unity 用 Admob と Vungle SDK v.5 の統合

この記事では、Unity 用 Admob を、iOS または Android 向けの Vungle SDK v. 5 に統合する方法について説明します。

  1. https://developers.google.com/admob/unity/start に記載されている手順に従い、Unity ベース用の Admob を統合します。

  2. 使用するプラットフォームごとに、最新の Vungle SDK ベースを https://dashboard.vungle.com/sdk からダウンロードします。

    • iOS の場合: フレームワーク ファイルを /Plugins/IOS/ に保管します。
      例:
      /Plugins/IOS/VungleSDK.framework

    • Android の場合: jar ファイルを /Plugins/Android/ に保管します。
      例:
      /Plugins/publisher-sdk-android-5.3.0.jar/

  3. Vungle SDK v.5 以降で Vungle を使用して初期化を実行するには、すべての広告配置を渡す必要があります。そのためには、特殊な Admob Unity パッケージを https://vungle.box.com/s/4c69oacqrrcer63wg4v35vrmgsew26ub からダウンロードする必要があります。

    上記のパッケージを自分で作成する場合は、https://github.com/googleads/googleads-mobile-unity/blob/master/mediation/Vungle/build.gradle で公開されている gradle スクリプトを使用してください。

  4. 使用するプラットフォームに応じた要件を設定します。
    • iOS の場合: playersettings の値として「ios 8」以上の値を設定します。これ以上の値を設定しないと、Unity で Cocoapods を正しく取得することができません。Unity-IPhone.xcworkspace から起動してください。

    • Android の場合: Admob のツールを使用して、現在の依存関係を解決する必要があります。これを行うには、[Assets] [Play Services Resolver] [Android Resolver] [Resolve] をクリックします。

    Windows 上で操作を行う場合は、以下のようなメニュー オプションが表示されます。
    image2.png

    Mac 上で操作を行う場合は、以下のようなメニュー オプションが表示されます。
    image1.png
  5. 報酬型広告とインタースティシャル広告のどちらを表示するのかを決定します。
    • インターステイシャル広告の場合: VungleInterstitialMediationExtras SetAllPlacements 関数を使用して、すべての広告配置パラメーターを設定します。
    • 報酬型広告の場合: VungleRewardedVideoMediationExtras SetAllPlacements 関数を使用して、すべての広告配置パラメーターを設定します。

    以下にサンプル コードを示します。

    using GoogleMobileAds.Api.Mediation.Vungle; private void RequestInterstitial() { #iif UNITY_ANDROID string adUnitId = "ca-app-pub-8179651753653275/5515034537"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-8179651753653275/3316025494"; #else string adUnitId = "unexpected_platform"; #endif //Create a new empty VIME Object, required to add additional parameters, Interstitial only VungleInterstitialMediationExtras extras = new VungleInterstitialMediationExtras(); //All placements must be passed at all times, this is because the SDK doesn't start until //admob calls it the first time. extras.SetAllPlacements(new string[] { "NONREWA26038", "DEFAULT71817" }); // Create an empty ad request with extra parameters required to load Vungle AdRequest request = new AdRequest.Builder().AddMediationExtras(extras).Build(); // Initialize an InterstitialAd with the adunit interstitial = new InterstitialAd(adUnitId); // Load the interstitial with the request. interstitial.LoadAd(request); } private void RequestRewarded() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-8179651753653275/3571397475"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-8179651753653275/2306018548"; #else string adUnitId = "unexpected_platform"; #endif //Create a new empty VRVME Object, required to add additional parameters, rewarded only VungleRewardedVideoMediationExtras extras = new VungleRewardedVideoMediationExtras(); //Same as above, all placements must be passed at all times, as Admob doesn't initlize Vungle until admob calls it extras.SetAllPlacements(new string[] { "NONREWA26038", "DEFAULT71817" }); //Same as above AdRequest request = new AdRequest.Builder().AddMediationExtras(extras).Build(); // Initialize a Rewarded Video Ad rewardBasedVideo = RewardBasedVideoAd.Instance; //Loads an ad with the above parameters rewardBasedVideo.LoadAd(request, adUnitId); } private void ShowInterstitial() { if (interstitial.IsLoaded()) { interstitial.Show(); } } private void ShowRewarded() { if (rewardBasedVideo.IsLoaded()) { rewardBasedVideo.Show(); } } 
他にご質問がございましたら、リクエストを送信してください

コメント