- はじめに
- バージョン
- 説明書
- 説明書「ステップ1:Unity広告を設定する」のつまづきポイント
- API Key
- API Key と Organization core ID (組織コアID)の設定場所
- 説明書「ステップ5:実装をテストする」のつまづきポイント
- ビルドエラー対応<追記>
- おわりに
はじめに
2022年 AdmobにおけるUnityAdsのメディエーション実装の備忘録です。
バージョン
GoogleMobileAds-v6.1.2
GoogleMobileAdsUnityAdsMediation-2.7.2
2022年8月6日追記
GoogleMobileAds-v7.0.2
GoogleMobileAdsUnityAdsMediation-3.2.1
にて動作確認
説明書
前回と同様に説明書に沿って進めます。
・コード初期化
developers.google.com
説明書「ステップ1:Unity広告を設定する」のつまづきポイント
このステップでは、
・GameIDs (ゲームID)
・PlacementID (配置ID)
・API Key
・Organization core ID (組織コアID)
の取得方法が説明されています。(これらは後の設定で必要)
下記の方法で取得できます。
GameIDs (ゲームID)
Monetization→Enable Adsを押す。
設定ウインドウが出てくるので、私は下記の設定で進めました。
・MediationPartnerはThird Party Mediationを選択
・Mediation Partnerの選択欄はAdMob Mediationを選択
→OK
Third party mediationの欄の訳はこちら
アイアンソースやアドモブなどのサードパーティのメディエーションパルトフォームを使用して、アドソースからプロジェクトに広告を配信しています。
すると、iOSとAndroidのGameIDsが表示されます。
PlacementID (配置ID)
広告設定 名前変更 (読まずに飛ばしてOK)
同様の画面でこのような画面となり、既に広告が作られている。
PlacementID取得の前に広告の名前を変えておきます。
このままでも問題なさそうですが、広告の名前を変えておきたいので
変えたい広告の種類をクリックして変更していきます。
今回はAndroidのリワード広告をクリック。
変えたい項目があれば、右のペンマークで変更可能です。
今回は名前だけ変更しました。
PlacementIDの場所
PlacementIDはPlacementsの各広告のIDのところに表示されています。
PlacementIDを変更したい場合は、
Add Placementを押して、
→Placement Nameを入力(自動的にPlacementIDも同じ文字列になります。)
→backfill/auto-eCPM Placement(単価の自動設定) にチェック
→Add Placement
そして、もともとある広告をArchiveすることで変更(置き換え)することができます。
API Key
API Keyの場所はここです。
→Monetization
→Setup
→API Management
Organization core ID (組織コアID)
Organization core IDはここです。
→Monetization
→Setup
→Organization Settings
API Key と Organization core ID (組織コアID)の設定場所
次の2つの情報はメディエーション→広告のソース→編集で設定します。
・API Key
・Organization core ID (組織コアID)の設定場所
説明書「ステップ5:実装をテストする」のつまづきポイント
Test Modeのメニューはこちらです。
→Monetization
→Settings
→一番下にスクロールするとあります。
ビルドエラー対応<追記>
↓のようなエラーが大量に出たので対応しました。
(UnityAds入れてないのですが重複エラーになっているのはなぜ)
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':launcher:checkReleaseDuplicateClasses'. 1 exception was raised by workers: java.lang.RuntimeException: Duplicate class com.unity3d.ads.BuildConfig found in modules jetified-UnityAds-runtime.jar (:UnityAds:) and jetified-unity-ads-3.7.5-runtime.jar (com.unity3d.ads:unity-ads:3.7.5) Duplicate class com.unity3d.ads.IUnityAdsInitializationListener found in modules jetified-UnityAds-runtime.jar (:UnityAds:) and jetified-unity-ads-3.7.5-runtime.jar (com.unity3d.ads:unity-ads:3.7.5) Duplicate class com.unity3d.ads.IUnityAdsListener found in modules jetified-UnityAds-runtime.jar (:UnityAds:) and jetified-unity-ads-3.7.5-runtime.jar (com.unity3d.ads:unity-ads:3.7.5) Duplicate class com.unity3d.ads.IUnityAdsLoadListener found in modules jetified-UnityAds-runtime.jar (:UnityAds:) and jetified-unity-ads-3.7.5-runtime.jar (com.unity3d.ads:unity-ads:3.7.5) Duplicate class com.unity3d.ads.IUnityAdsShowListener found in modules jetified-UnityAds-runtime.jar (:UnityAds:) and jetified-unity-ads-3.7.5-runtime.jar (com.unity3d.ads:unity-ads:3.7.5) Duplicate class com.unity3d.ads.UnityAds found in modules jetified-UnityAds-runtime.jar (:UnityAds:) and jetified-unity-ads-3.7.5-runtime.jar (com.unity3d.ads:unity-ads:3.7.5) Duplicate class com.unity3d.ads.UnityAds$1 found in modules jetified-UnityAds-runtime.jar (:UnityAds:) and jetified-unity-ads-3.7.5-runtime.jar (com.unity3d.ads:unity-ads:3.7.5)
対処方法1<追記>
説明書の通り対応します。
説明書に書いてある通り、こちらのファイルを開きます。 Assets/GoogleMobileAds/Editor/UnityMediationDependencies.xml
<!--コメントアウトする内容-->
↓実際のコード 中段のコードをコメントアウトしただけです。
<dependencies> <androidPackages> <androidPackage spec="com.google.ads.mediation:unity:3.7.5.0"> <repositories> <repository>https://repo.maven.apache.org/maven2/</repository> <repository>https://dl.google.com/dl/android/maven2/</repository> </repositories> </androidPackage> <!-- If using the Unity Ads Service from Unity3D, comment out this dependency to avoid including the Unity Android SDK twice. --> <!--Unityadsが重複したのでコメントアウトする--> <!-- <androidPackage spec="com.unity3d.ads:unity-ads:3.7.5"> <repositories> <repository>https://repo.maven.apache.org/maven2/</repository> </repositories> </androidPackage> --> </androidPackages> <iosPods> <iosPod name="GoogleMobileAdsMediationUnity" version="3.7.5.0"> <sources> <source>https://github.com/CocoaPods/Specs</source> </sources> </iosPod> </iosPods> </dependencies>
対処方法2<追記>
対処方法1の方でビルドは通るようになりましたが、
広告が表示されなくなってしまいました。
対処方法1で行ったコードは元に戻してください。
少し調べてみると、PakagesのAdvertisementの中にUnityAdsが入っていました。
(訳もわからずいれたやつです。)
UnityAdsはメディエーションのコネクター?を入れるだけで動作するので
パッケージマネージャーから検索してこれを削除します。
これでビルドしたところ、ビルドが通り、広告も問題なく表示されました。
おわりに
残りは手順通り進めて
無事に新アプリリリース前に広告を表示することができました。
ちなみに
「UnityAdsサービスでのUnityアダプターの使用」は、
プロジェクト内にUnityAdsを実装していないので実施していません。