アプリ起動時広告 (App Open Ads)
このガイドは、Google Mobile Ads SDK を使用してアプリ起動時広告を統合するデベロッパーを対象としています。
アプリ起動時広告は、アプリのロード画面を収益化したいデベロッパー向けに設計された特別な広告フォーマットです。ユーザーがアプリをフォアグラウンドに切り替えたときに表示され、ユーザーはいつでもこの広告を閉じることができます。
Note
地域によって利用可能な広告フォーマットが異なる場合があります。
アプリ起動時広告には、ユーザーがあなたのアプリ内にいることを認識できるように、小さなブランディング領域が自動的に表示されます。以下はアプリ起動時広告の表示例です。

前提条件
進める前に、以下を完了してください。
- はじめに ガイドの完了。
常にテスト広告でテストする
以下の表には、テスト広告をリクエストするために使用できる広告ユニット ID が含まれています。これは、すべてのリクエストに対して本番用の広告ではなくテスト広告を返すように特別に設定されているため、安全に使用できます。
ただし、AdMob のウェブ管理画面でアプリを登録し、アプリ内で使用する独自の広告ユニット ID を作成した後は、開発中に明示的にデバイスをテストデバイスとして設定してください。
実装
アプリ起動時広告を統合するための主なステップは次のとおりです。
- ユーティリティクラスの作成
- アプリ起動時広告のロード
- アプリ起動時広告イベントの監視
- 広告の有効期限の考慮
- アプリ状態イベントの監視
- アプリ起動時広告の表示
- アプリ起動時広告のクリーンアップ
- 次のアプリ起動時広告のプレロード
ユーティリティクラスの作成
広告をロードするための新しいクラス(例: AppOpenAdManager)を作成します。このクラスは、ロードされた広告と各プラットフォーム用の広告ユニット ID を追跡するためのインスタンス変数を制御します。
Tip
必須ではありませんが、このスクリプトを Autoload (シングルトン) として追加することを強くお勧めします。これにより、マネージャーはシーンの変更後も破棄されず、シーンツリー内に持続し、Google が他のプラットフォームで使用している自動化システムと同様のシームレスなグローバル状態モニターを提供できます。
アプリ起動時広告のロード
アプリ起動時広告のロードは、AppOpenAdLoader クラスの load() メソッドを使用して行われます。ロードメソッドには、広告ユニット ID、AdRequest オブジェクト、および広告のロードが成功または失敗したときに呼び出される完了ハンドラーが必要です。ロードされた AppOpenAd オブジェクトは、完了ハンドラーのパラメータとして提供されます。
Warning
広告のロードに失敗したときに、広告リクエストの完了ブロックから新しい広告のロードを試みることは強く推奨されません。ネットワーク接続が制限されている状況などで広告の失敗リクエストが継続するのを避けるため、完了ブロックからロードを行う場合はリトライ回数を制限してください。
アプリ起動時広告イベントの監視
広告の挙動をさらにカスタマイズするには、広告のライフサイクルにおける開く、閉じるなどのさまざまなイベントにフックできます。FullScreenContentCallback を登録し、AdValue を受け取る on_ad_paid / OnAdPaid コールバックプロパティを設定して、以下のようにこれらのイベントをリッスンします。
広告の有効期限の考慮
重要なポイント
アプリ起動時広告はリクエスト後 4 時間でタイムアウトします。リクエストされてから 4 時間以上経過した広告は無効となり、表示しても収益が発生しない場合があります。
期限切れの広告を表示しないようにするために、AppOpenAdManager に広告のロード完了から経過した時間を確認するロジックを追加します。そして、その情報を用いて広告がまだ有効であるかチェックします。
ロードした時間を _expire_time 変数に記録し、4 時間のタイムアウトを判定します。
アプリ状態イベントの監視
Godot のフォーカス通知を使用して、アプリケーションがフォアグラウンドまたはバックグラウンドに切り替わるイベントをリッスンします。
アプリ起動時広告の表示
ロードされたアプリ起動時広告を表示するには、AppOpenAd インスタンスの show() メソッドを呼び出します。
Note
アプリ起動時広告は、アプリの自然な一時停止のタイミングで表示する必要があります。ゲームのレベル間や、ユーザーがタスクを完了した直後などが良い例です。
アプリ起動時広告のクリーンアップ
AppOpenAd の処理が完了したら、その参照を破棄する前に必ず destroy() メソッドを呼び出してください。
これにより、オブジェクトが使用されなくなったことがプラグインに通知され、占有されていたメモリが解放されます。このメソッドを呼び出さないと、メモリリークが発生します。
次のアプリ起動时広告のプレロード
AppOpenAd は使い捨てのオブジェクトです。つまり、アプリ起動時広告が一度表示されると、そのオブジェクトを再利用することはできません。別の広告を表示するには、新しい AppOpenAd オブジェクトをロードする必要があります。
次の表示機会に備えて、on_ad_dismissed_full_screen_content または on_ad_failed_to_show_full_screen_content イベントが発生した後に、次の広告をプリロードしてください。
コールドスタートとロード画面
これまでのドキュメントでは、アプリがメモリにサスペンド(一時停止)されている状態でフォアグラウンドに戻ったときにのみ、アプリ起動時広告を表示することを想定していました。「コールドスタート」は、アプリが以前にサスペンドされておらず、新しく起動されたときに発生します。
コールドスタートの例は、ユーザーがアプリを初めて開くときです。コールドスタートの場合、すぐに表示できる以前にロードされた広告はありません。広告をリクエストしてから受け取るまでの遅延により、ユーザーがアプリを短時間使用し始めた後に、突然広告が表示されて驚かせる状況が発生する可能性があります。これはユーザー体験として好ましくないため、避けるべきです。
コールドスタート時にアプリ起動時広告を使用する好ましい方法は、ロード画面を使用してゲームやアプリのアセットを読み込み、ロード画面が表示されている間のみ広告を表示することです。アプリの読み込みが完了し、ユーザーがアプリのメインコンテンツに移動した後は、広告を表示しないようにしてください。
重要なポイント
アプリ起動時広告が表示されている間もアセットの読み込みを継続できるように、アセットのロードは常にバックグラウンドスレッドで行ってください。
ベストプラクティス
アプリ起動時広告は、アプリの初回起動時やアプリの切り替え時にロード画面を収益化するのに役立ちますが、ユーザーにアプリを快適に使用してもらうために、以下のベストプラクティスを念頭に置いてください。
- ユーザーがアプリを数回使用した後に、最初のアプリ起動時広告を表示するようにします。
- ユーザーがアプリの読み込みを待っている時間帯にアプリ起動时広告を表示します。
- アプリ起動時広告の下にロード画面があり、広告が閉じられる前にロード画面の読み込みが完了した場合は、
on_ad_dismissed_full_screen_contentイベントハンドラー内でロード画面を閉じてください。 - アプリ状態リスナーを実装しているノード(
AppOpenAdManager)がシーンツリーに存在することを確認してください。イベントをトリガーするには、NOTIFICATION_APPLICATION_FOCUS_INなどのライフサイクル通知が必要であるため、このノードをシーンツリーから削除しないでください。削除されるとイベントがトリガーされなくなります。
その他のリソース
- サンプルプロジェクト: すべての広告フォーマットの最小限の実装例。