スタートガイド
ネイティブ オーバーレイ広告は、プラットフォームに備わっている UI コンポーネントを通じてユーザーに表示されます。これらの広告は、アプリの上にオーバーレイとして表示されます。バナー広告の機能と似ていますが、広告のスタイルをカスタマイズできます。
ネイティブ オーバーレイ広告は、メディエーションと動画広告をサポートしています。これは、ネイティブ広告と比べた場合の大きな利点です。
このガイドでは、Unity アプリにネイティブ オーバーレイ広告を実装する方法と、その過程で注意すべき点を説明します。
前提条件
- スタートガイドの手順を完了していること。
- Unity プラグイン 9.0.0 以降をインポートしていること。
常にテスト広告でテストする
次のサンプルコードには、テスト広告のリクエストに使用できる広告ユニット ID が含まれています。この ID は、どのリクエストに対しても実際の広告ではなくテスト広告を返すように設定されており、安全に使用できます。
ただし、AdMob ウェブ インターフェースでアプリを登録し、アプリで使用する独自の広告ユニット ID を作成した後は、開発中に使用するデバイスを明示的にテストデバイスとして設定する必要があります。
Android
ca-app-pub-3940256099942544/2247696110
iOS
ca-app-pub-3940256099942544/3986624511
ネイティブ オーバーレイ広告を読み込む
ネイティブ オーバーレイ広告の読み込みは、NativeOverlayAd クラスで静的 Load() メソッドを使用して行います。読み込まれた NativeOverlayAd オブジェクトは、完了ハンドラのパラメータとして提供されます。
次のコードでは、NativeOverlayAd を使用して広告を読み込みます。
  // These ad units are configured to always serve test ads.
#if UNITY_ANDROID
  private string _adUnitId = "ca-app-pub-3940256099942544/2247696110";
#elif UNITY_IPHONE
  private string _adUnitId = "ca-app-pub-3940256099942544/3986624511";
#else
  private string _adUnitId = "unused";
#endif
private NativeOverlayAd _nativeOverlayAd;
/// <summary>
/// Loads the ad.
/// </summary>
public void LoadAd()
{
    // Clean up the old ad before loading a new one.
    if (_nativeOverlayAd != null)
    {
        DestroyAd();
    }
    Debug.Log("Loading native overlay ad.");
    // Create a request used to load the ad.
    var adRequest = new AdRequest();
    // Optional: Define native ad options.
    var options = new NativeAdOptions
    {
        AdChoicesPosition = AdChoicesPlacement.TopRightCorner,
        MediaAspectRatio = NativeMediaAspectRatio.Any,
    };
    // Send the request to load the ad.
    NativeOverlayAd.Load(_adUnitId, adRequest, options,
        (NativeOverlayAd ad, LoadAdError error) =>
    {
        if (error != null)
        {
            Debug.LogError("Native Overlay ad failed to load an ad " +
                           " with error: " + error);
            return;
        }
        // The ad should always be non-null if the error is null, but
        // double-check to avoid a crash.
        if (ad == null)
        {
            Debug.LogError("Unexpected error: Native Overlay ad load event " +
                           " fired with null ad and null error.");
            return;
        }
        // The operation completed successfully.
        Debug.Log("Native Overlay ad loaded with response : " +
                   ad.GetResponseInfo());
        _nativeOverlayAd = ad;
        // Register to ad events to extend functionality.
        RegisterEventHandlers(ad);
    });
}
ネイティブ オーバーレイ広告をレンダリングしてスタイルを設定する
ネイティブ オーバーレイ広告は NativeTemplateStyle を使用してレンダリングされます。このクラスは、広告のスタイルをカスタマイズできるフィールドを定義します。
TemplateID は必須の文字列で、ネイティブ オーバーレイ広告のレンダリングに使用されるネイティブ テンプレートを定義します。NativeTemplateID 定数を使用して、広告に適したネイティブ テンプレートを選択します。
次のコードは、中サイズのテンプレートとカスタム スタイルを使用して、ネイティブ オーバーレイ広告をレンダリングするものです。
/// <summary>
/// Renders the ad.
/// </summary>
public void RenderAd()
{
    if (_nativeOverlayAd != null)
    {
        Debug.Log("Rendering Native Overlay ad.");
        // Define a native template style with a custom style.
        var style = new NativeTemplateStyle
        {
            TemplateID = NativeTemplateID.Medium,
            MainBackgroundColor = Color.red,
            CallToActionText = new NativeTemplateTextStyles
            {
                BackgroundColor = Color.green,
                FontColor = Color.white,
                FontSize = 9,
                Style = NativeTemplateFontStyle.Bold
            }
        };
        // Renders a native overlay ad at the default size
        // and anchored to the bottom of the screne.
        _nativeOverlayAd.RenderTemplate(style, AdPosition.Bottom);
    }
}
ネイティブ オーバーレイ広告を表示する / 非表示にする
次のコードは、読み込まれたネイティブ オーバーレイ広告を表示する方法を示しています。
/// <summary>
/// Shows the ad.
/// </summary>
public void ShowAd()
{
    if (_nativeOverlayAd != null)
    {
        Debug.Log("Showing Native Overlay ad.");
        _nativeOverlayAd.Show();
    }
}
ネイティブ オーバーレイ広告を非表示にする
次のコードは、ネイティブ オーバーレイ広告を非表示にする方法を示しています。
/// <summary>
/// Hides the ad.
/// </summary>
public void HideAd()
{
    if (_nativeOverlayAd != null)
    {
        Debug.Log("Hiding Native Overlay ad.");
        _nativeOverlayAd.Hide();
    }
}
ネイティブ オーバーレイ広告を破棄する
ネイティブ オーバーレイ広告を使い終わったら、必ず Destroy() を呼び出してリソースを解放してください。
/// <summary>
/// Destroys the native overlay ad.
/// </summary>
public void DestroyAd()
{
    if (_nativeOverlayAd != null)
    {
        Debug.Log("Destroying native overlay ad.");
        _nativeOverlayAd.Destroy();
        _nativeOverlayAd = null;
    }
}
次のステップ
- ネイティブ広告の詳細については、ネイティブ広告ハンドブックをご覧ください。
- ネイティブ広告のポリシーとガイドラインをご確認ください。