このガイドは、Unity アプリの収益化をお望みのパブリッシャー様を対象にしています。
アプリに Google Mobile Ads Unity プラグインを統合することは、AdMob 広告を表示して収益を得るための第一歩です。このガイドでは、そのプラグインの方法について解説します。統合が完了したら、広告フォーマット(ネイティブまたは動画リワードなど)を選択して、具体的な実装手順を確認します。
前提条件
- Unity 4.6.8 以降を使用すること
- iOS にデプロイするには
- Xcode 7.0 以降
- CocoaPods
- Android にデプロイするには
- Google Play 開発者サービス 7.5 以降
- Target Android API レベル 14 以上
- 推奨: AdMob アカウントを作成して、Android や iOS アプリを登録していること
Mobile Ads Unity プラグインをダウンロードする
Google Mobile Ads Unity プラグインを使用すると、Unity デベロッパーは Java や Objective-C コードを記述することなく、Android や iOS アプリで Google モバイル広告を簡単に配信できます。このプラグインは、Unity プロジェクトの C# スクリプトで使用される広告をリクエストするための C# インターフェースを提供します。下記のリンクを使って、プラグインの Unity パッケージをダウンロードするか、GitHub のコードをご確認ください。
モバイル広告の Unity プラグインをインポートする
プロジェクトを Unity エディタで開きます。[Assets]、[Import Package]、[Custom Package] の順に選択し、ダウンロードした GoogleMobileAdsPlugin.unitypackage ファイルを探します。

すべてのファイルのチェックボックスがオンになっていることを確認して、[Import] をクリックします。

Mobile Ads SDK を追加する
Google Mobile Ads Unity プラグインは、Unity Play Services Resolver ライブラリとともに配布されます。このライブラリは、Android 固有のライブラリ(AAR など)や iOS CocoaPod にアクセスする必要がある Unity プラグインで使用するためのものです。Unity プラグインには、依存関係を宣言する機能があります。依存関係は自動的に解決され、Unity プロジェクトにコピーされます。
プロジェクトに Mobile Ads SDK が含まれていることを確認する手順は以下のとおりです。
Android
Unity エディタで、[Assets] > [Play Services Resolver] > [Android Resolver] > [Resolve] を選択します。Unity Play Services Resolver ライブラリにより、宣言された依存関係が Unity アプリの Assets/Plugins/Android ディレクトリにコピーされます。

iOS
Mobile Ads SDK を Unity プロジェクトに含める追加の手順はありません。
- Unity 5.6 以上を使用する場合、必要な依存関係ライブラリを含む xcworkspace が生成されます。標準の Xcode プロジェクトの代わりに、この生成された xcworkspace を使用します。
- 以前のバージョンの Unity を使用する場合、依存関係は標準の Xcode プロジェクトに含まれています。
AdMob アプリ ID を設定する
AdMob アプリ ID を設定する手順は以下のとおりです。
Android
下記の <meta-data> タグを使って、AdMob アプリ ID を Unity アプリの Assets/Plugins/Android/GoogleMobileAdsPlugin ディレクトリにある AndroidManifest.xml ファイルに追加します。アプリ ID は AdMob の管理画面で確認できます。android:value で、ご自身の AdMob アプリ ID を引用符で囲んで挿入します。
<manifest>
<application>
<!-- Your AdMob app ID will look similar to this
sample ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="YOUR_ADMOB_APP_ID"/>
</application>
</manifest>
アプリで AdMob ではなくアド マネージャーを使用している場合は、Unity アプリの Assets/Plugins/Android/GoogleMobileAdsPlugin ディレクトリにある AndroidManifest.xml ファイルに、上記のタグの代わりに次の <meta-data> タグを追加します。
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.AD_MANAGER_APP"
android:value="true"/>
</application>
</manifest>
iOS
AdMob 管理画面で AdMob アプリ ID を確認します。Unity アプリの Assets/GoogleMobileAds/Editor ディレクトリで PListProcessor.cs を開き、プレースホルダ アプリ ID を実際のアプリ ID と置き換えます。
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
{
// Replace with your iOS AdMob app ID. Your AdMob app ID will look
// similar to this sample ID: ca-app-pub-3940256099942544~1458002511
string appId = "ADMOB_APPLICATION_ID";
string plistPath = Path.Combine(path, "Info.plist");
PlistDocument plist = new PlistDocument();
plist.ReadFromFile(plistPath);
plist.root.SetString("GADApplicationIdentifier", appId);
File.WriteAllText(plistPath, plist.WriteToString());
}
アプリで AdMob ではなくアド マネージャーを使用している場合は、PListProcessor.cs を変更して以下のコードを追加し、アプリの Info.plist に GADIsAdManagerApp キーを書き込みます。
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
{
// Replace with your iOS AdMob app ID. Your AdMob app ID will look
// similar to this sample ID: ca-app-pub-3940256099942544~1458002511
string appId = "ADMOB_APPLICATION_ID";
string plistPath = Path.Combine(path, "Info.plist");
PlistDocument plist = new PlistDocument();
plist.ReadFromFile(plistPath);
plist.root.SetBoolean("GADIsAdManagerApp", true);
File.WriteAllText(plistPath, plist.WriteToString());
}
Unity 4 との互換性
Unity 4 を使用している場合は、以下の追加手順が必要です。
Android
下のハイライト表示されたアクティビティのセクションを、Unity プロジェクトの Assets/Plugins/Android/GoogleMobileAdsPlugin ディレクトリにある AndroidManifest.xml ファイルに追加します。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.unity"
android:versionName="1.0"
android:versionCode="1">
<uses-sdk android:minSdkVersion="14"
android:targetSdkVersion="19" />
<application>
<activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik"
android:value="true" />
</activity>
</application>
</manifest>
iOS
Unity によって生成された Xcode プロジェクト内の以下のビルド設定を変更します。
- [Build Settings] の [Enable Modules](C と Objective-C)を Yes に設定します。
$(inherited)を [Build Settings] の [Other Linker Flags] に追加します。
モバイル広告を初期化する
広告を読み込む前に、MobileAds.Initialize() を AdMob アプリ ID で呼び出して、アプリで Mobile Ads SDK を初期化します。この処理は 1 回だけ行います(アプリの起動時に行うのが理想的です)。アプリ ID は AdMob 管理画面で確認できます。
GameObject に追加されたスクリプトの Start() メソッド内で Initialize() を呼び出す方法の例を次に示します。
...
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
#if UNITY_ANDROID
string appId = "ca-app-pub-3940256099942544~3347511713";
#elif UNITY_IPHONE
string appId = "ca-app-pub-3940256099942544~1458002511";
#else
string appId = "unexpected_platform";
#endif
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(appId);
}
}
プラットフォームに応じて異なるアプリ ID が使用されることにご注意ください。iOS の Mobile Ads SDK を初期化するには iOS のアプリ ID を使用し、Android の Mobile Ads SDK を初期化するには、Android のアプリ ID を使用する必要があります。
広告フォーマットを選択する
これで、Mobile Ads SDK が、Android や iOS のプラットフォームにデプロイする際に、Unity アプリに含まれるようになり、広告を実装する準備が整いました。AdMob はさまざまな広告フォーマットを提供しているため、アプリのユーザー エクスペリエンスに最適なものを選択できます。
バナー
バナー広告は、アプリのレイアウト内の一部分を使用する長方形の画像かテキストの広告です。ユーザーがアプリを操作している間は画面に残り、一定の時間が経過すると自動的に更新されます。モバイル広告を初めて利用する場合、この広告から開始するとよいでしょう。
インタースティシャル
インタースティシャル広告は、ユーザーが閉じるまで、アプリのインターフェースを覆うようにフルスクリーンで表示される広告です。ゲームのレベルが切り替わる合間やタスクが完了した直後など、アプリの実行の流れが自然に一時停止するタイミングに使用することに適しています。
リワード
動画リワード広告は、ユーザーが動画を最後まで視聴することと引き換えに、アプリ内で報酬を獲得できるフルスクリーン動画広告です。
| リワード広告を実装する | リワード広告を実装する(新しい API) |

