ゲーム化!tomo_manaのブログ

ゲーム化!tomo-manaのブログ

Unityでゲームを作る方法について紹介しています

Google Admob の2つのIDの使い方 (Unity 2020.3.26f1)

f:id:tomo_mana:20220330165522p:plain

Google Admob で発行される2つのIDの使い方について
(使い分けが分からずしばらくハマりました)

Google Admob で発行される2つのID

Google Admob で発行されるIDには、「アプリID」と「広告ユニットID」2つがあります。

ID フォーマット
アプリID ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx
広告ユニットID ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx


2つは似ていますが、~(チルダ)で区切られているのがアプリIDで、/(スラッシュ)で区切られているのが広告ユニットIDです。


アプリIDは、発行後すぐに使えるようになります。

広告ユニットIDは、設定してしまうと本当に広告が配信されるようになるので、リリースするまではGoogleが用意したテストIDを使います。

アプリIDの確認

アプリIDは、Google Admob のマイページから、メニューアイコン → アプリ → すべてのアプリを表示 で確認できます。

メニューアイコン → アプリ → すべてのアプリを表示します。

f:id:tomo_mana:20220324174533p:plain
メニュー → アプリ → すべてのアプリ


表示された一覧の、アプリID欄を確認します。

f:id:tomo_mana:20220324194209p:plain
アプリID

広告ユニットIDの確認

広告ユニットIDは、先ほどのアプリ一覧のメニューで、「広告ユニット」欄をクリックします。

f:id:tomo_mana:20220324194226p:plain
広告ユニットIDの確認


表示された一覧の、広告ユニット欄を確認します。

f:id:tomo_mana:20220324195603p:plain
広告ユニットID

(参考)
アプリ ID と広告ユニット ID を確認する - Google AdMob ヘルプ

アプリIDの設定

アプリIDは、アプリ毎に割り当てられるIDです。

Google Admob プラグイン用の AndroidManifest.xml と、Admob を追加することで表示されるようになる GoogleMobileAds Settings の2ヵ所に設定します。

AndroidManifest.xmlGoogle Admob用)

Google Admob のAndroidManiefest.xml は、Assets\Plugins\Android\GoogleMobileAdsPlugin.androidlib にあります。ここのタグの範囲内に、タグを追加します。

<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx" />

実際に、AndroidManifest.xmlを追加した例は以下になります。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1">
  <application>
    <uses-library android:required="false" android:name="org.apache.http.legacy" />
    <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx" />
  </application>
</manifest>

GoogleMobileAds Settings

GoogleMobileAds Settings は、Admob を追加することでAssetsメニューに追加されます。

Assets → Google Mobile Ads → Settings を選択します。

f:id:tomo_mana:20220324173109p:plain
Assets → Google Mobile Ads → Settings

Inspectorウィンドウに、アプリID入力フォームが表示されるので、Android欄にアプリIDを入力します。(保存用のボタンは無いので、入力するだけで良い)

f:id:tomo_mana:20220324173134p:plain
Inspector - アプリIDの入力

※よく理解できていないのですが、本来このモジュールは AndroidManifest.xml にアプリIDを追加するためのツールだと思っていました。しかし、実際はうまく同期していないことがあり、UnityEditorを起動するたびに再設定しています。


"BuildMethodException: Google Mobile Ads app ID is empty" が表示されるときは、Google Mobile Ads Settings の設定が消えたことを疑います。

f:id:tomo_mana:20220324210237p:plain
BuildMethodException: Google Mobile Ads app ID is empty

広告ユニットIDの設定

広告ユニットIDは、広告ユニットごとのIDで、広告媒体ごとにIDが割り振られます。


本番用の広告ユニットIDを入れると、本当に広告が配信されるようになるので、リリースするまではGoogleが用意したテストIDを使用します。

広告ユニットIDは、以下のようなコンポーネントを作成して、ゲームオブジェクトに割り付けます。(ゲームオブジェクトは何でもよい)

実装例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
public class AdMobScript : MonoBehaviour
{
  private BannerView bannerView;
  public void Start()
  {
    // Google AdMob Initial
    MobileAds.Initialize(initStatus => { });
    
    this.RequestBanner();
  }
  private void RequestBanner()
  {
#if UNITY_ANDROID
    string adUnitId = "ca-app-pub-3940256099942544/6300978111"; // テスト用広告ユニットID
//    string adUnitId = "ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx"; // 本番用広告ユニットID
#elif UNITY_IPHONE
    string adUnitId = "ca-app-pub-7689051089863147/2788662322"; // テスト用広告ユニットID
#else
    string adUnitId = "unexpected_platform";
#endif
    // Create a 320x50 banner at the bottom of the screen.
    this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
    
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    
    // Load the banner with the request.
    bannerView.LoadAd(request);
  }
}


コードは以下サイトのものを使わせていただいています。以下サイトにはバナー広告以外のコードも掲載されています。
sole-game-creater.com


(参考:各媒体のテストユニットID)

f:id:tomo_mana:20220324173602p:plain
広告フォーマット毎のテストユニットID(Google Admob)

テスト広告を有効にしています  |  Android  |  Google Developers


ユニットIDはリリース時まではGoogleから提供されたテストユニットIDを使用し、Google Play上の正式なアプリURLが発行された時点で、Google AdmobへのGoogle PlayアプリURLの登録と同時に本番用に入れ替えます。


(以上)