広告の事前読み込み(アルファ版)

プラットフォームを選択: Android(ベータ版) 新規 Android iOS Unity

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

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

  • 参照管理: 読み込まれた広告を保持し、表示する準備ができるまで参照を維持する必要がなくなります。
  • 自動再読み込み: キャッシュから広告を取り出すと、新しい広告が自動的に読み込まれます。
  • マネージド再試行: 指数バックオフを使用して、失敗したリクエストを自動的に再試行します。
  • 有効期限の処理: 広告が期限切れになる前に(通常は 1 時間後)、自動的に更新されます。
  • キャッシュの最適化: キャッシュサイズを 1 より大きく設定すると、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 は利用可能な広告を取得し、バックグラウンドで次の広告を自動的にプリロードします。

広告を表示する準備が整うまでは、このメソッドの呼び出しを避けてください。広告をキャッシュに保存しておくと、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() を呼び出します。

InterstitialAdPreloader.Destroy(AD_UNIT_ID);
InterstitialAdPreloader.DestroyAll();

バッファサイズを設定する

バッファサイズは、メモリに保持されるプリロードされた広告の数を制御します。デフォルトでは、Google はメモリ消費量と広告配信レイテンシのバランスを取るようにバッファサイズを最適化します。アプリで次の広告が読み込まれる前に広告を表示する場合は、カスタム バッファサイズを設定して、メモリに保持する広告の数を増やすことができます。バッファサイズは最大 4 にすることをおすすめします。

new PreloadConfiguration
{
    AdUnitId = AD_UNIT_ID,
    Request = new AdRequest(),
    BufferSize = 5
};