広告のプリロードは、Google Mobile Ads Unity Plugin の Google 管理の広告読み込み機能で、 広告の読み込みとキャッシュを代行して管理します。広告のプリロードを使用するには、広告の読み込み方法を変更する必要があります。広告のプリロードを使用してパフォーマンスを最適化するには、 カスタム キャッシュを無効にして、その処理を Google Mobile Ads Unity Plugin に委任します。
広告のプリロードには、手動での広告読み込みに比べて次のようなメリットがあります。
- 参照の管理: 読み込まれた広告を保持するため、広告を表示する準備ができるまで参照を維持する必要がありません。
- 自動再読み込み: キャッシュから広告を取り出すと、新しい広告が自動的に読み込まれます。
- 管理された再試行: 失敗したリクエストは、指数バックオフを使用して自動的に再試行されます。
- 有効期限の処理: 広告の有効期限が切れる前に(通常は 1 時間後)、広告が自動的に更新されます。
- キャッシュの最適化: キャッシュサイズが 1 より大きい場合、Google Mobile Ads Unity Plugin キャッシュの順序を最適化して、最適な広告を配信します。
このガイドでは、プリロード広告の設定、プリロード広告の利用可否の確認、プリロードされた広告の表示について説明します。
前提条件
チュートリアルに進む前に、次の項目を完了する必要があります。
- Google Mobile Ads Unity Plugin バージョン 10.3.0 以降をインストールする。
- Google Mobile Ads Unity Plugin を設定する。
Android SDK バージョン
24.4.0と iOS SDK バージョン12.6.0を使用する。(省略可)広告のプリロードのサンプルアプリをダウンロードして実行する。
広告のプリロードを開始する
広告のプリロードを開始するには、Preload() を呼び出します。このメソッドは、プリロード ID ごとに 1 回だけ呼び出します。アプリ セッションの開始時にこのメソッドを呼び出すことをおすすめします。Preload() を呼び出すと、Google Mobile Ads Unity Plugin
は広告を自動的にプリロードし、プリロード ID の失敗したリクエストを再試行します。
次の例では、広告のプリロードを開始します。
var preloadConfiguration = new PreloadConfiguration
{
AdUnitId = AD_UNIT_ID,
Request = new AdRequest(),
};
// Start the preloading initialization process after MobileAds.Initialize().
InterstitialAdPreloader.Preload(
// The Preload ID can be any unique string to identify this configuration.
AD_UNIT_ID,
preloadConfiguration);
プリロードされた広告を取得して表示する
広告のプリロードを使用すると、Google Mobile Ads Unity Plugin はキャッシュされた広告を保持します。
広告を表示する場合は、DequeueAd() を呼び出します。
Google Mobile Ads Unity Plugin は利用可能な広告を取得し、次の広告をバックグラウンドで自動的にプリロードします。
次の例では、プリロードされた広告を取得して表示します。
// DequeueAd returns the next available ad and loads another ad in the background.
var ad = InterstitialAdPreloader.DequeueAd(AD_UNIT_ID);
if (ad != null)
{
// [Optional] Interact with the ad object as needed.
ad.OnAdPaid += (AdValue value) =>
{
Debug.Log($"Ad paid: {value.CurrencyCode} {value.Value}");
// [Optional] Send the impression-level ad revenue information to your preferred
// analytics server directly within this callback.
};
// Do not hold onto preloaded ads, always show a preloaded ad immediately.
ad.Show();
}
プリロード広告の利用可否を確認する
広告の利用可否を確認するには、次のいずれかを選択します。
プリロードされた広告の利用可否を取得する
次の例では、広告の利用可否を確認します。
var isAdAvailable = InterstitialAdPreloader.IsAdAvailable(AD_UNIT_ID);
プリロードされた広告の利用可否をリッスンする
プリロード イベントに登録すると、広告が正常にプリロードされた場合、プリロードに失敗した場合、広告キャッシュがなくなった場合に通知を受け取ることができます。
プリロード イベントは分析を目的としています。プリロード イベント コールバック内では、次の点に注意してください。
Preload()は呼び出さないでください。- 広告がすぐに表示される場合を除き、
DequeueAd()は呼び出さないでください。
次の例では、広告イベントを登録します。
void StartPreloadWithCallbacks()
{
var preloadConfiguration = new PreloadConfiguration
{
AdUnitId = AD_UNIT_ID,
Request = new AdRequest(),
};
// Start the preloading initialization process after MobileAds.Initialize().
InterstitialAdPreloader.Preload(
// The Preload ID can be any unique string to identify this configuration.
AD_UNIT_ID,
preloadConfiguration,
onAdPreloaded,
onAdFailedToPreload,
onAdsExhausted);
}
void onAdPreloaded(string preloadId, ResponseInfo responseInfo)
{
Debug.Log($"Preload ad configuration {preloadId} was preloaded.");
}
void onAdFailedToPreload(string preloadId, AdError adError)
{
string errorMessage = $"Preload ad configuration {preloadId} failed to " +
$"preload with error : {adError.GetMessage()}.";
Debug.Log(errorMessage);
}
void onAdsExhausted(string preloadId)
{
Debug.Log($"Preload ad configuration {preloadId} was exhausted");
// [Important] Don't call Preload() or DequeueAd() from onAdsExhausted.
}
広告のプリロードを停止する
セッションでプリロード ID の広告を再度表示する必要がない場合は、広告のプリロードを停止できます。特定のプリロード ID の広告のプリロードを停止するには、プリロード ID を指定して Destroy() を呼び出します。すべてのプリローダーのプリロードを停止するには、DestroyAll() を呼び出します。
InterstitialAdPreloader.Destroy(AD_UNIT_ID);
InterstitialAdPreloader.DestroyAll();
バッファサイズを設定する
バッファサイズは、メモリに保持されるプリロードされた広告の数を制御します。デフォルトでは、Google はバッファサイズを最適化して、メモリ使用量と広告配信のレイテンシのバランスを取ります。次の広告が読み込まれる前にアプリに広告が表示される場合は、カスタム バッファサイズを設定して、メモリに保持する広告の数を増やすことができます。 バッファサイズは 2 ~ 3 にすることをおすすめします。
プリロード キャッシュの上限
Google Mobile Ads Unity Plugin は、すべての広告ユニットとプリロード ID の プリロードされた広告の合計数にアプリ全体の上限を適用します。
- デフォルトの上限: Google Mobile Ads Unity Plugin は、メモリに最大 6 つのプリロードされた広告を保持します。 この上限は、すべてのフォーマットとプリロード ID で共有されます。
- プリロード ID ごとに 2 ~ 3 のバッファサイズを維持することをおすすめします。
new PreloadConfiguration
{
AdUnitId = AD_UNIT_ID,
Request = new AdRequest(),
BufferSize = 5
};