広告のプリロード(ベータ版)

広告のプリロードは、Google Mobile Ads Unity Plugin の Google 管理の広告読み込み機能で、広告の読み込みとキャッシュ保存を代行します。広告のプリロードでは、広告の読み込みを管理する方法を変更する必要があります。広告のプリロードを使用してパフォーマンスを最適化するには、カスタム キャッシュを無効にして、その責任を Google Mobile Ads Unity Plugin に委任します。

広告のプリロードには、手動による広告の読み込みに比べて次のようなメリットがあります。

  • 参照管理: 読み込まれた広告を保持し、表示する準備ができるまで参照を維持する必要がなくなります。
  • 自動再読み込み: キャッシュから広告を取り出すと、新しい広告が自動的に読み込まれます。
  • マネージド再試行: 指数バックオフを使用して、失敗したリクエストを自動的に再試行します。
  • 有効期限の処理: 広告が期限切れになる前に(通常は 1 時間後)、自動的に更新します。
  • キャッシュの最適化: キャッシュサイズが 1 より大きい場合、Google Mobile Ads Unity Plugin はキャッシュの順序を最適化して最適な広告を配信します。

このガイドでは、プリロード広告の設定、プリロード広告の利用可能性の確認、プリロード広告の表示について説明します。

前提条件

このチュートリアルに進む前に、Google Mobile Ads Unity Plugin を設定する必要があります。

広告の事前読み込みを開始する

アプリの起動時に Preload メソッドを 1 回呼び出します。Preload メソッドを呼び出すと、Google Mobile Ads Unity Plugin は自動的に広告をプリロードし、プリロードされた構成のリクエストが失敗した場合は再試行します。

次の例では、広告のプリロードを開始しています。

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 メソッドを呼び出さないでください。広告をキャッシュに保存しておくと、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 イベントのコールバック内:

  • 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 はメモリ消費量と広告配信レイテンシのバランスを取るようにバッファサイズを最適化します。アプリで次の広告が読み込まれる前に広告を表示する場合は、カスタム バッファサイズを設定して、メモリに保持される広告の数を増やすことができます。

// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
new PreloadConfiguration
{
    AdUnitId = "AD_UNIT_ID",
    Request = new AdRequest(),
    BufferSize = 2
};

プリロード キャッシュの上限

Google Mobile Ads Unity Plugin は、すべての広告ユニットとプリロード ID にわたるプリロードされた広告の総数にアプリ全体の制限を適用します。

  • デフォルトの上限: Google Mobile Ads Unity Plugin は、メモリに最大 6 個のプリロードされた広告を保持します。この上限は、すべての形式とプリロード ID で共有されます。
  • 各プリロード ID のバッファサイズを 2 にすることをおすすめします。