バナー広告

バナー広告は、画面の一部分に表示される長方形のイメージ広告またはテキスト広告で、アプリの操作中は画面に表示され続け、一定の時間が経過すると自動的に更新されます。モバイル広告を初めてお使いの場合は、この広告から始めることをおすすめします。 事例紹介

このガイドでは、AdMob のバナー広告を Unity アプリに統合する方法を説明します。コード スニペットと設定方法のほか、バナーの適切なサイズに関する情報、他のリソースへのリンクも紹介します。

Prerequisites

Always test with test ads

The sample code below contains an ad unit ID which you can use to request test ads. It's been specially configured to return test ads rather than production ads for every request, making it safe to use.

However, once you register an app in the AdMob UI and create your own ad unit IDs for use in your app, you'll need to explicitly configure your device as a test device during development.

Android

ca-app-pub-3940256099942544/6300978111

iOS

ca-app-pub-3940256099942544/2934735716

Mobile Ads SDK を初期化する

広告を読み込む前に、MobileAds.Initialize() を呼び出して、アプリで Mobile Ads SDK を初期化します。この処理は 1 回だけ行います(アプリの起動時に行うのが理想的です)。

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

メディエーションを使用している場合は、すべてのメディエーション アダプタが確実に初期化されるため、広告が読み込まれるまでコールバックが発生するのを待ちます。

BannerView の例

次のサンプルコードは、バナービューの使用方法を示しています。この例では、バナービューのインスタンスを作成し、AdRequest を使用してバナービューに広告を読み込み、ライフサイクル イベントを処理して機能を拡張します。

バナービューを作成する

バナービューを使用するには、まず、GameObject にアタッチされた C# スクリプトでバナービューのインスタンスを作成します。

  // These ad units are configured to always serve test ads.
#if UNITY_ANDROID
  private string _adUnitId = "ca-app-pub-3940256099942544/6300978111";
#elif UNITY_IPHONE
  private string _adUnitId = "ca-app-pub-3940256099942544/2934735716";
#else
  private string _adUnitId = "unused";
#endif

  BannerView _bannerView;

  /// <summary>
  /// Creates a 320x50 banner at top of the screen.
  /// </summary>
  public void CreateBannerView()
  {
      Debug.Log("Creating banner view");

      // If we already have a banner, destroy the old one.
      if (_bannerView != null)
      {
          DestroyAd();
      }

      // Create a 320x50 banner at top of the screen
      _bannerView = new BannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
  }

BannerView のコンストラクタには、次のパラメータがあります。

  • adUnitId: BannerView が広告を読み込む AdMob 広告ユニット ID。
  • AdSize: 使用する AdMob の広告サイズ(詳しくはバナーのサイズをご覧ください)
  • AdPosition: バナー広告を配置する位置。AdPosition 列挙型は、有効な広告位置値のリストです。

プラットフォームに応じて、異なる広告ユニットがどのように使用されるかに注意します。iOS で広告リクエストを行うには iOS 広告ユニットを、Android でリクエストするには Android 広告ユニットを使用する必要があります。

(省略可)カスタムの位置でバナービューを作成します

x 座標と y 座標をパラメータとして持つ BannerViewconstructorAdPosition値よりも、画面上のBannerViewの配置を細かく制御するには、次のように設定します。

// Create a 320x50 banner ad at coordinate (0,50) on screen.
_bannerView = new BannerView(_adUnitId, AdSize.Banner, 0, 50);

BannerView の左上隅は、コンストラクタに渡される x 値と y 値で、原点は画面の左上です。

(省略可)カスタムサイズのバナービューを作成する

AdSize 定数を使用するだけでなく、広告にカスタムサイズを指定することもできます。

// Use the AdSize argument to set a custom size for the ad.
AdSize adSize = new AdSize(250, 250);
_bannerView = new BannerView(_adUnitId, adSize, AdPosition.Bottom);

バナー広告を読み込む

バナービューを使用するための 2 つ目のステップは、AdRequest を作成して LoadAd() メソッドに渡すことです。

/// <summary>
/// Creates the banner view and loads a banner ad.
/// </summary>
public void LoadAd()
{
    // create an instance of a banner view first.
    if(_bannerView == null)
    {
        CreateBannerView();
    }
    // create our request used to load the ad.
    var adRequest = new AdRequest();
    adRequest.Keywords.Add("unity-admob-sample");

    // send the request to load the ad.
    Debug.Log("Loading banner ad.");
    _bannerView.LoadAd(adRequest);
}

バナービュー イベントをリッスンする

広告の動作をカスタマイズするには、広告のライフサイクルで生じるさまざまなイベント(読み込み、開始、終了など)を利用します。これらのイベントをリッスンするには、デリゲートを登録します。

/// <summary>
/// listen to events the banner may raise.
/// </summary>
private void ListenToAdEvents()
{
    // Raised when an ad is loaded into the banner view.
    _bannerView.OnBannerAdLoaded += () =>
    {
        Debug.Log("Banner view loaded an ad with response : "
            + _bannerView.GetResponseInfo());
    };
    // Raised when an ad fails to load into the banner view.
    _bannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
    {
        Debug.LogError("Banner view failed to load an ad with error : "
            + error);
    };
    // Raised when the ad is estimated to have earned money.
    _bannerView.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Banner view paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    _bannerView.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Banner view recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    _bannerView.OnAdClicked += () =>
    {
        Debug.Log("Banner view was clicked.");
    };
    // Raised when an ad opened full screen content.
    _bannerView.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Banner view full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    _bannerView.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Banner view full screen content closed.");
    };
}

バナービューを破棄する

バナービューの使用が終了したら、必ず Destroy() を呼び出してリソースを解放してください。

/// <summary>
/// Destroys the ad.
/// </summary>
public void DestroyAd()
{
    if (_bannerView != null)
    {
        Debug.Log("Destroying banner ad.");
        _bannerView.Destroy();
        _bannerView = null;
    }
}

これで、アプリに AdMob のバナー広告を表示できるようになりました。

標準のバナーサイズについては、以下の表をご覧ください。

サイズ(単位は dp、幅×高さ) 説明 取り扱い AdSize の定数値
320×50 標準のバナー 携帯電話とタブレット BANNER
320×100 バナー(大) 携帯電話とタブレット LARGE_BANNER
300×250 IAB レクタングル(中) 携帯電話とタブレット MEDIUM_RECTANGLE
468×60 IAB フルサイズ バナー タブレット FULL_BANNER
728×90 IAB ビッグバナー タブレット LEADERBOARD
指定された幅 × 最適な高さ アダプティブ バナー 携帯電話とタブレット なし
画面の幅×32、50 または 90 スマートバナー 携帯電話とタブレット SMART_BANNER
今後はスマートバナーに代わってアダプティブ バナーが使用される予定です。詳しくは、アダプティブ バナーをご覧ください。

参考情報

サンプル

成功事例