このガイドは、Unity アプリの収益化をお望みのパブリッシャー様を対象にしています。
AdMob 広告を表示して収益を得るための第一歩は、アプリへの Google Mobile Ads Unity プラグインの統合です。このガイドでは、この追加方法について解説します。統合が完了したら、広告フォーマット(ネイティブ、動画リワードなど)を選択して、詳細な実装手順を確認できます。
Prerequisites
- Unity 2019 以降を使用します
- iOS にデプロイする場合:
- Xcode 14.1 以降
- iOS 11.0 以降をターゲットとしていること
- CocoaPods
- Android にデプロイする場合:
- Google Play 開発者サービス 18.1.0 以降
- ターゲット: Android API レベル 16 以降
- AdMob アカウントを作成し、Android や iOS のアプリを登録します
Mobile Ads Unity プラグインをダウンロードする
Google Mobile Ads Unity プラグインを使うと、Unity デベロッパーは Java や Objective-C コードを記述することなく Android と iOS アプリで Google モバイル広告を簡単に配信できます。このプラグインにより、Unity プロジェクトの C# スクリプトで使用される、広告をリクエストするための C# インターフェースが利用可能になります。
下記のリンクからプラグインの Unity パッケージをダウンロードするか、GitHub のコードをご確認ください。
Mobile Ads Unity プラグインをインポートする
Unity Editor でプロジェクトを開きます。[Assets](アセット)> [Import Package](インポート パッケージ)> [Custom Package](カスタム パッケージ)を選択し、ダウンロードした GoogleMobileAdsPlugin.unitypackage
ファイルを探します。
すべてのファイルのチェックボックスがオンになっていることを確認して、[Import] をクリックします。
Mobile Ads SDK を追加する
Google Mobile Ads Unity プラグインは、Unity Play Services Resolver ライブラリとともに配布されます。 このライブラリは、Android 固有のライブラリ(AAR など)または iOS CocoaPods にアクセスする必要がある Unity プラグインで使用するためのものです。これにより Unity プラグインは依存関係を宣言する機能を持つようになります。依存関係は自動的に解決され、Unity プロジェクトにコピーされます。
プロジェクトに Mobile Ads SDK が含まれていることを確認する手順は以下のとおりです。
Android
Unity Editor で、[Assets](アセット)> [External Dependency Manager](外部依存関係マネージャー)> [Android Resolver](Android リゾルバ) > [Resolve](解決) を選択します。Unity External Dependency Manager ライブラリにより、宣言された依存関係が Unity アプリの Assets/Plugins/Android
ディレクトリにコピーされます。
iOS
Mobile Ads SDK を Unity プロジェクトに含める際に追加の手順は不要です。
- Unity 5.6 以降をご利用の場合は、必要な依存関係ライブラリを含む xcworkspace が生成されるため、標準の Xcode プロジェクトの代わりに、生成された xcworkspace を使用します。
- 古いバージョンの Unity を使用する場合、依存関係は標準の Xcode プロジェクトに含まれます。
AdMob アプリ ID を設定する
Unity Editor で、メニューから [Assets](アセット)> [Google Mobile Ads](Google モバイル広告)> [Settings](設定)を選択します。
各フィールドに Android と iOS の AdMob アプリ ID を入力します。
Unity のメインスレッドで広告イベントを発生させる
Google Mobile Ads SDK では、Unity メインスレッドとは異なるスレッドでイベントが発生することがあります。これにより、Google Mobile Ads SDK からディスパッチされたイベントから Unity オブジェクトを操作する際に問題が発生する可能性があります。対応策として、Mobile Ads SDK イベントを Unity メインスレッドと同期させるコードを追加しなければならない場合があります。
このスレッド処理を Mobile Ads SDK で処理するには、MobileAds.RaiseAdEventsOnUnityMainThread
を true
に設定します。これにより、Mobile Ads SDK は Unity メインスレッド上のすべてのイベントとコールバックを強制的に発生します。
...
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// When true all events raised by GoogleMobileAds will be raised
// on the Unity main thread. The default value is false.
MobileAds.RaiseAdEventsOnUnityMainThread = true;
}
}
Mobile Ads SDK を初期化する
広告を読み込む前に、MobileAds.Initialize()
を呼び出してアプリで Mobile Ads SDK を初期化します。この処理は 1 回だけ行います(アプリの起動時に行うのが理想的です)。
GameObject
に接続されているスクリプトの Start()
メソッド内で Initialize()
を呼び出す方法の例を次に示します。
...
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(initStatus => { });
}
}
メディエーションを使用している場合は、広告を読み込む前に、コールバックが発生するまで待ちます。こうすることで、すべてのメディエーション アダプタが確実に初期化されます。
広告フォーマットを選択する
Android または iOS プラットフォームにデプロイする際、Unity アプリに Mobile Ads SDK が含まれるようになりました。広告を実装する準備が整いました。AdMob にはさまざまな広告フォーマットが用意されているため、ユーザー エクスペリエンスのニーズに最適なものを選択できます。
バナー
バナー広告は、アプリのレイアウト内の一部分を使用する長方形の画像またはテキストの広告です。アプリの操作中は画面に表示され続け、一定の時間が経過すると自動的に更新されます。モバイル広告を初めて利用する場合、この広告から開始するのが最適です。
インタースティシャル
インタースティシャルは、ユーザーが閉じるまで、アプリのインターフェースを覆うようにフルスクリーンで表示される広告です。ゲームのレベルが切り替わる合間やタスクが完了した直後など、アプリの実行の流れが自然に一時停止するタイミングでの使用に適しています。
ネイティブ
ネイティブはコンポーネント ベースの広告フォーマットで、広告見出しや行動を促すフレーズなどのアセットをアプリに表示する方法を自由にカスタマイズできます。フォント、色、その他の詳細を選択して、コンテンツの邪魔にならないように広告を表示し、ユーザー エクスペリエンスを向上させることができます。
特典
動画リワード広告はフルスクリーンの動画広告で、アプリ内特典と引き換えに最後まで視聴するかユーザーが選べます。
App Tracking Transparency で許可をリクエストする
IDFA にアクセスするための App Tracking Transparency(ATT)許可リクエストを表示するには、Unity の iOS 14 Advertising Support パッケージを使用します。
同一アプリキー
前提条件: Google Mobile Ads Unity プラグイン 6.1.0 以降
Google Mobile Ads SDK では、同じアプリキーが導入されます。これにより、ユーザーが使用しているアプリから収集されたデータを使って、配信する広告の関連性とパーソナライズのレベルを高めることができます。
同一アプリキーはデフォルトで有効になっていますが、次の API で無効にできます。
public void Start() { RequestConfiguration requestConfiguration = new RequestConfiguration.Builder() .SetSameAppKeyEnabled(true).build(); MobileAds.SetRequestConfiguration(requestConfiguration); // Initialize the Google Mobile Ads SDK. MobileAds.Initialize(HandleInitCompleteAction); }