次世代のレスポンシブ広告であるアダプティブ バナーは、デバイスごとに広告サイズを最適化して広告の効果を高めます。スマートバナーを改善すると アダプティブ バナーでは、固定された高さのみがサポートされており、 それに基づいて最適な広告サイズを判断します
最適な広告サイズを選択できるよう、アダプティブ バナーでは できます。これにより、デバイスが異なってもバナー広告は一貫して画面のほぼ同じ分量のスペースを占めることになり、広告の掲載結果の向上につながります。
アダプティブ バナーでは、指定されたデバイスと幅が同じであれば、常に同じサイズの広告が返されます。デバイスでレイアウトをテストしたら、 広告サイズが変わらないことを確認できますただし、デバイスが異なれば、バナー クリエイティブのサイズは変化する可能性があります。その結果 さまざまな広告の高さに対応するレイアウトをおすすめします。まれに、 アダプティブ サイズの全体は埋められません。標準サイズのクリエイティブが配信されます。 このスロットで中央に配置されます。
前提条件
- スタートガイドの手順に沿って操作します。 Mobile Ads Unity プラグインをインポートする方法を確認する Mobile Ads SDK を含めるをご覧ください。
アダプティブ バナーの用途
アダプティブ バナーは、業界を問わず簡単に置き換えられるように設計されています。 スマートバナーの代替フォーマットである 320×50 の標準バナーサイズと
これらのバナーサイズはアンカーバナーとして一般的に使用され、 画面の上部または下部に固定されます。
このようなアンカーバナーでは、アダプティブ バナー使用時のアスペクト比は次のようになります。 320×50 の標準広告とほぼ同じです 下にあります。
320×50 バナー |
アダプティブ バナー |
スマートバナー |
アダプティブ バナーを使用すると、画面スペースをより有効に活用できます。また アダプティブ バナーが適しているのは次のような理由です。
幅が強制的に全画面表示にならず、ユーザーが指定した幅が使用されます。 iOS のセーフエリアを考慮して、カットアウトを表示させることができます。 。
デバイスごとに最適な高さが選択される。 デバイスのサイズに関係なく、一定の高さに設置することで、 解消できます
実装上の注意
アプリにアダプティブ バナーを実装する際には、次の点に注意してください。
- 広告が配置されるビューの幅、 その際はデバイスの幅やセーフエリアや 適用されるカットアウトをご覧ください。
- 広告スロットよりも小さなサイズの広告を配信する際は、広告ビューの背景を不透明にして AdMob ポリシーに準拠するようにしてください。
- Google Mobile Ads Unity の最新バージョンを使用していることを確認してください できます。メディエーションについては、各メディエーション アダプタの最新バージョンを使用してください。
- アダプティブ バナーのサイズは、フルサイズの広告を使用すると最適に 選択します。ほとんどの場合、これはデバイスの画面全体の幅になります。 確認できます。その際は、安全領域を考慮に入れてください。
- Google Mobile Ads SDK によってバナーのサイズが最適化され、広告の高さが自動的に調整されます 指定した幅に対して自動的にサイズ調整が行われます。
- アダプティブ バナーの広告サイズを取得するには、次の 3 つの方法があります。
横向きの場合は
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
、 縦向きの場合はAdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
、AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
: 現在の向きを実行時に設定できます。 - 特定のデバイスで特定の幅に対して返されるサイズは常に そのため、特定のデバイスでレイアウトをテストしたら、 広告サイズが変わらないようにします
- アンカーバナーの高さは、アスペクト比の 15% 以下 デバイスの高さまたは密度非依存ピクセルは 90 以上で、50 以上 密度非依存ピクセルを使用します
- 全幅バナーには、代わりに
AdSize.FullWidth
フラグを使用できます。 特定の幅を指定することが推奨されます。
クイックスタート
シンプルなアダプティブ アンカー バナーを実装する手順は次のとおりです。
- アダプティブ バナー広告のサイズを取得します。取得したサイズは、アダプティブ バナーのリクエストに使用します。アダプティブ広告のサイズを取得する手順は次のとおりです。
- 使用するデバイスの幅を密度非依存ピクセル数で取得するか、
画面の幅全体を使用しない場合は、独自の幅を使用します。
Screen.width
などの Unity API は絶対ピクセルを返すため、次の操作を行う必要があります。 デバイスのスケールで除算します(MobileAds.Utils.GetDeviceScale()
から取得可能)。 - 全幅バナーには
AdSize.FullWidth
フラグを使用します。 - 広告サイズクラスの適切な静的メソッド(
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
など)を使用して、指定した向きのアダプティブ バナーのAdSize
オブジェクトを取得します。
- 使用するデバイスの幅を密度非依存ピクセル数で取得するか、
画面の幅全体を使用しない場合は、独自の幅を使用します。
- 広告ユニット ID、アダプティブ バナーのサイズ、広告の関連位置を設定して、
BannerView
オブジェクトを作成します。 - 通常のバナー リクエストと同様に、広告リクエスト オブジェクトを作成し、用意した広告ビューの
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/admob/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
。