アンカー アダプティブ バナー

アダプティブ バナーは次世代のレスポンシブ広告であり、 デバイスごとに広告サイズを最適化することでパフォーマンスが向上します。スマートバナーを改善すると アダプティブ バナーでは、固定された高さのみがサポートされており、 それに基づいて最適な広告サイズを判断します

最適な広告サイズを選択できるよう、アダプティブ バナーでは できます。その結果、バナー広告がより一定の部分を占めるようになります。 あらゆるデバイスで画面上に表示できるようになり、 向上します

アダプティブ バナーを使用する場合は、常に 一定のサイズと幅を持たせることができます。デバイスでレイアウトをテストしたら、 広告サイズが変わらないことを確認できますただし、 バナー クリエイティブのサイズはデバイスによって異なる場合があります。その結果 さまざまな広告の高さに対応するレイアウトをおすすめします。まれに、 アダプティブ サイズの全体は埋められません。標準サイズのクリエイティブが配信されます。 このスロットで中央に配置されます。

前提条件

アダプティブ バナーの用途

アダプティブ バナーは、業界を問わず簡単に置き換えられるように設計されています。 スマートバナーの代替フォーマットである 320×50 の標準バナーサイズと

これらのバナーサイズはアンカーバナーとして一般的に使用され、 画面の上部または下部に固定されます。

このようなアンカーバナーでは、アダプティブ バナー使用時のアスペクト比は次のようになります。 320×50 の標準広告とほぼ同じです 下にあります。


320×50 バナー

アダプティブ バナー

スマートバナー

アダプティブ バナーでは、使用可能な画面サイズを有効活用できます。また アダプティブ バナーが適しているのは次のような理由です。

  • 幅が強制的に全画面表示にならず、ユーザーが指定した幅が使用されます。 iOS のセーフエリアを考慮して、カットアウトを表示させることができます。 。

  • デバイスに合わせて最適な高さが選択される。 デバイスのサイズに関係なく常に一定の高さにすることで、 解消できます

実装上の注意

アプリにアダプティブ バナーを実装する際は、以下の点にご注意ください。

  • 広告が配置されるビューの幅、 その際はデバイスの幅やセーフエリアや 適用されるカットアウトをご覧ください。
  • 規制遵守のため、広告ビューの背景が不透明であるようにしてください これよりも小さいサイズの広告が配信される場合の AdMob ポリシー あらゆるサイズの広告スロットに配信されます
  • Google Mobile Ads Unity の最新バージョンを使用していることを確認してください できます。メディエーションについては、各メディエーション アダプタの最新バージョンを使用してください。
  • アダプティブ バナーのサイズは、フルサイズの広告を使用すると最適に あります。ほとんどの場合、これはデバイスの画面全体の幅になります。 確認できます。その際は、安全領域を考慮に入れてください。
  • Google Mobile Ads SDK によってバナーのサイズが最適化され、広告の高さが自動的に調整されます 指定した幅に対して自動的にサイズ調整が行われます。
  • アダプティブ バナーの広告サイズを取得するには、次の 3 つの方法があります。 横向きの場合は AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth、 縦向きの場合は AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidthAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth: 現在の向きを実行時に設定できます。
  • 特定のデバイスで特定の幅に対して返されるサイズは常に そのため、特定のデバイスでレイアウトをテストしたら、 広告サイズが変わらないようにします
  • アンカーバナーの高さは、アスペクト比の 15% 以下 デバイスの高さまたは密度非依存ピクセルは 90 以上で、50 以上 密度非依存ピクセルを使用します
  • 全幅バナーには、代わりに AdSize.FullWidth フラグを使用できます。 特定の幅を指定することが推奨されます。

クイックスタート

シンプルなアダプティブ アンカー バナーを実装する手順は次のとおりです。

  1. アダプティブ バナー広告のサイズを取得します。取得したサイズを使用して 追加できますアダプティブ広告のサイズを取得する手順は次のとおりです。 <ph type="x-smartling-placeholder">
      </ph>
    1. 使用するデバイスの幅を密度非依存ピクセル数で取得するか、 画面の幅全体を使用しない場合は、独自の幅を使用します。 Screen.width などの Unity API は絶対ピクセルを返すため、次の操作を行う必要があります。 デバイスのスケールで除算します(MobileAds.Utils.GetDeviceScale() から取得可能)。
    2. 全幅バナーには AdSize.FullWidth フラグを使用します。
    3. 広告サイズクラスの適切な静的メソッドを使用します。 AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width) 現在の向きに対応するアダプティブな AdSize オブジェクトを取得します。
  2. 広告ユニット ID、アダプティブ サイズ、クリエイティブ サイズを指定した BannerView オブジェクトを作成します。 広告が表示される位置を特定します
  3. 広告リクエスト オブジェクトを作成し、LoadAd() メソッドを使用してバナーを読み込む 通常のバナー リクエストと同様に、広告ビューに表示されます。

サンプルコード

次のサンプル スクリプトでは、アセットのサイズに合わせてアダプティブ バナーを読み込んで再読み込みします。 セーフエリアを考慮に入れて画面の幅を調整します。

using UnityEngine;
using System;
using GoogleMobileAds.Api;

public class AdaptiveBannerSample : MonoBehaviour
{
    private BannerView _bannerView;

    // Use this for initialization
    void Start()
    {
        // Set your test devices.
        // https://developers.google.com/ad-manager/mobile-ads-sdk/unity/test-ads
        RequestConfiguration requestConfiguration = new RequestConfiguration
        {
            TestDeviceIds = new List<string>
            {
                AdRequest.TestDeviceSimulator,
                // Add your test device IDs (replace with your own device IDs).
                #if UNITY_IPHONE
                "96e23e80653bb28980d3f40beb58915c"
                #elif UNITY_ANDROID
                "75EF8D155528C04DACBBA6F36F433035"
                #endif
            }
        };
        MobileAds.SetRequestConfiguration(requestConfiguration);

        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus status) =>
        {
            RequestBanner();
        });
    }

    public void OnGUI()
    {
        GUI.skin.label.fontSize = 60;
        Rect textOutputRect = new Rect(
          0.15f * Screen.width,
          0.25f * Screen.height,
          0.7f * Screen.width,
          0.3f * Screen.height);
        GUI.Label(textOutputRect, "Adaptive Banner Example");
    }

    private void RequestBanner()
    {
        // These ad units are configured to always serve test ads.
        #if UNITY_EDITOR
            string adUnitId = "unused";
        #elif UNITY_ANDROID
            string adUnitId = "ca-app-pub-3212738706492790/6113697308";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3212738706492790/5381898163";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Clean up banner ad before creating a new one.
        if (_bannerView != null)
        {
            _bannerView.Destroy();
        }

        AdSize adaptiveSize =
                AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);

        _bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);

        // Register for ad events.
        _bannerView.OnBannerAdLoaded += OnBannerAdLoaded;
        _bannerView.OnBannerAdLoadFailed += OnBannerAdLoadFailed;

        AdRequest adRequest = new AdRequest();

        // Load a banner ad.
        _bannerView.LoadAd(adRequest);
    }

    #region Banner callback handlers

    private void OnBannerAdLoaded(object sender, EventArgs args)
    {
        Debug.Log("Banner view loaded an ad with response : "
                 + _bannerView.GetResponseInfo());
        Debug.Log("Ad Height: {0}, width: {1}",
                _bannerView.GetHeightInPixels(),
                _bannerView.GetWidthInPixels());
    }

    private void OnBannerAdLoadFailed(LoadAdError error)
    {
        Debug.LogError("Banner view failed to load an ad with error : "
                + error);
    }

    #endregion
}

ここで、 AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth が使用されています 現在のインターフェースで固定位置に表示されるバナーのサイズを取得する 方向です。特定の向きのアンカーバナーをプリロードするには、 AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth の関連関数 および AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth