そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity】2022年 AdMobのUnityAdsメディエーション設定 

はじめに

2022年 AdmobにおけるUnityAdsのメディエーション実装の備忘録です。

過去記事
marumaro7.hatenablog.com

バージョン

GoogleMobileAds-v6.1.2
GoogleMobileAdsUnityAdsMediation-2.7.2

2022年8月6日追記
GoogleMobileAds-v7.0.2
GoogleMobileAdsUnityAdsMediation-3.2.1
にて動作確認

説明書

前回と同様に説明書に沿って進めます。
・コード初期化 developers.google.com

・設定 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の欄の訳はこちら

アイアンソースやアドモブなどのサードパーティメディエーションパルトフォームを使用して、アドソースからプロジェクトに広告を配信しています。

すると、iOSAndroidの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

参考情報: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を実装していないので実施していません。

marumaro7.hatenablog.com