広告のプレースメント

このガイドでは、Google Mobile Ads Unity プラグインの Ad アプリの広告を作成して表示するプレースメント機能。

前提条件

Google Mobile Ads SDK を初期化する

広告を読み込む前に、次を呼び出して Mobile Ads SDK を初期化します。 MobileAds.Initialize()Action<InitializationStatus> コールバックを使用)。この この処理は 1 回だけ行います(アプリの起動時に行うのが理想的です)。

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

広告プレースメントを作成する

Google モバイル広告でバナーを表示するための最初のステップは、 広告プレースメントを設定します広告プレースメントとして [バナー]を選択できます インタースティシャル、またはリワード フォーマット([アセット] >Google モバイル広告 >広告 プレースメント] を選択します。3 つのデモ広告プレースメントがあります 使用できます。

新しい広告プレースメントを追加するには、ページの最後にある [新しいプレースメントを追加] ボタンをクリックします。 選択します。広告のプレースメントは [Inspector] ビューで設定できます。

広告プレースメントの設定

各プレースメントには次のプロパティがあります。

プレースメントの名前
プレースメントの名前。スペースで広告を設定する際にプレースメントを識別するために使用されます。
広告フォーマット
バナー、リワード、インタースティシャル。広告のタイプ。
広告ユニット ID
Android と iOS 向けのバナー広告ユニット ID を指定します。次の値を指定する必要があります。 広告ユニット ID を少なくとも 1 つ指定してください。
シーン間で永続的
オンにすると、シーンに関係なくバナーが画面に表示されます 動作( DontDestroyOnLoad)。
自動読み込み有効
オンにすると、シーンに関連付けられたシーンで広告が自動的に読み込まれます 広告プレースメントが読み込まれた場合。

次のスクリーンショットは、 My Awesome バナー

AdGameObject をシーンに追加する

バナー、インタースティシャル、またはリワードの各フォーマット用の AdGameObject を GameObject > を使用したシーンGoogle Mobile Ads を作成します。[ フォーマットを使用して、アクティブなシーンにプレースメントを追加します。

AdGameObject をシーンに追加すると、GameObject が表示され、 Unity Editor の [Hierarchy] ビューで広告を表す

プレースメントの名前は、GameObject の名前を変更することで変更できます。 できます。次のスクリーンショットは、AdGameObject の例を示しています。 バナー広告を選択します。

AdGameObject の設定

シーンの AdGameObject は Inspector から設定できます。 Ad Game Object (Script) コンポーネントの設定で、このビューを表示します。

広告であること

設定済みプレースメントのプルダウン リストから広告のプレースメントを選択します。「 適切なフォーマットの広告ユニットのみが含まれるようになります。たとえばバナー広告の場合 ゲーム オブジェクトのプルダウンには、設定済みのバナー広告のプレースメントのみが表示されます。

BannerAdGameObject 設定(バナーのみ)

  • サイズ - 使用するバナーのサイズを選択します。
    • アンカー アダプティブ バナーには、他にも次のようなオプションがあります。 <ph type="x-smartling-placeholder">
        </ph>
      • 向き - 広告の計算に使用するデバイスの向きを選択します。 あります。
      • 全幅を使用 - オンにするとバナーが画面に表示されます 選択します。画面の幅の割合(%)は、50 ~ 99% の範囲で調整できます。 [全画面幅を使用] オプションのチェックボックスがオフになっている。
    • カスタム: バナーの幅と高さを指定できます。
  • 広告の掲載順位 - バナーを配置する位置を選択します。

コールバック

広告コールバックに対応する関数を実装できます。たとえば 次の要素を追加します。

  1. 広告コールバックに対応する関数を作成します。

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. 上記の関数を含むスクリプトを、 できます。

  3. [+] ボタンをクリックし、添付した GameObject をドロップします。 指定します。

  4. 広告コールバックにリンクする関数を選択します。対象: パラメータ化された広告コールバックがある場合は、 変数を使用して、SDK からパラメータ値を取得できるようにします。

スクリプトから AdGameObject を使用する

スクリプトから AdGameObject インスタンスを取得する

すべての AdGameObject オブジェクトには、コンビニエンス メソッド LoadAd() があります。ロードされます ターゲット未設定のプレーンな AdRequest を含む広告。ターゲティングを適用するには 独自に設定した広告リクエストを使用してLoadAd(AdRequest adRequest)します。

AdGameObject のインスタンスを取得するには、フォーマットごとに次のメソッドを使用します。

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

返される BannerAdGameObject オブジェクトには、コンビニエンス メソッドもあります。 Hide()Show()

インタースティシャル

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

返される InterstitialAdGameObject オブジェクトには、コンビニエンス メソッドがあります。 ShowIfLoaded()

特典

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

返される RewardedAdGameObject オブジェクトには、コンビニエンス メソッドがあります。 ShowIfLoaded()

たとえば、BannerAdGameObject のインスタンスを取得し、次のように読み込むことができます。 次のようになります。

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

BannerAd という名前の BannerAdGameObject がある場合は、 次のようになります。

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

AdGameObject 内の基になる広告オブジェクトにアクセスする

これらのスニペットは、関連付けられた基本広告オブジェクトにアクセスする方法を示しています。 追加することをおすすめします

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

インタースティシャル

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

特典

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

インタースティシャル広告を表示する

インタースティシャルを読み込んで表示するようにゲームを設定する方法の例 使用して広告を作成します。

シーンに InterstitialAdGameObject を追加し、[自動読み込み] をオンにします。 シーンの読み込み時に広告が自動的に読み込まれるように、機能を有効にしました。

次に、次のように SDK が初期化されていることを確認します。なお、Auto 初期化を忘れた場合、AdGameObject の Load 機能は動作しません。 できます。

次に、 InterstitialAdGameObject.ShowIfLoaded() 関数を使用します。次のコードは、 シーン遷移の間にインタースティシャル広告を表示する例。

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

広告プレースメントの自動読み込み機能を有効にしているため、 広告を明示的にリクエストする必要はありません。シーンが変わるとインタースティシャル広告が 表示されます。

広告を手動でリクエストする場合は、プルダウンから自動読み込み機能を無効にします。 広告プレースメント インスペクタを開き、InterstitialAdGameObject.LoadAd() を呼び出します。 関数を使用してください。次のコード スニペットは、手動で 表示されます。

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

「リワード広告を視聴する」を処理するボタンの状態

「リワード広告の視聴」を有効にする方法の例広告を使用して できます。

Button GameObject(この例では Button)をシーンに追加します。 リワード広告の表示に使用されます。このボタンは リワード広告を表示したとき。

Start() メソッドで、ボタンのアクティブ状態を false に変更します。この ボタンがシーンから消えます。

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

シーンに RewardedAdGameObject を追加し、[AdMob デモリワード 広告] を選択します。

RewardedAdGameObject インスペクタの [Callbacks] セクションで、 [On Ad Loaded()] の [+] ボタンをクリックして、関数の呼び出しを有効にします リワード広告の読み込み時。

前の手順で追加したボタン GameObject をドラッグ&ドロップし、 [None (Object)] フィールド呼び出す関数をプルダウンから選択します。 [関数なし >GameObject >SetActive(bool) を選択し、チェックボックスをオンにして true をパラメータとして送信します(SetActive(true) を呼び出す)。

この [コールバック] セクションでは、 RewardedAd.OnUserEarnedReward イベントが発生したとき。詳しくは こちらのセクションをご覧ください。

次に、クリックされたときにリワード広告を表示するボタンを作成します。[On Click() の [Callbacks] セクションにある [+] ボタンをクリックし、 リワード広告プレースメントの GameObject(この例では リワード広告)をドラッグ&ドロップします。 例)を None (Object) フィールドに入力します。

次に、RewardedAdGameObject.ShowIfLoaded() 関数をボタンの Click() 時のコールバック。

最後に、SDK の初期化を忘れないでください。次のコード スニペットは、 この例で使用されているシーンの完全なコードは次のようになります。

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

プロジェクトを実行すると、 リワード広告が読み込まれ、表示される準備が整いました。

RewardAdGameObject のリワード コールバックを設定する

リワード広告に対するリワード コールバックの設定方法の例 コールバック関数が呼び出されたときにユーザーに報酬を 呼び出すことができます。

新しいスクリプトを作成し、Reward をパラメータとして受け取る関数を定義する 使用します。

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

RewardedTestScript スクリプトを GameObject(広告を除く)に追加します。 (GameObject など)に配置する必要があります。この例では、VM インスタンスが Main カメラの GameObject。

RewardedAdGameObject をシーンに追加します。次に [コールバック]セクションで RewardedAdGameObject インスペクタで、[On User(ユーザー)] の [+] ボタンをクリックします。 獲得した特典(特典): 特典が獲得された際に、この関数を呼び出せるようにします。 ユーザーに付与します

先ほど追加したメインのカメラの GameObject をドラッグ&ドロップします。 [None (Object)] フィールドにステップを追加します。呼び出し対象の関数を 選択します。[関数なし >リワード広告テスト スクリプト >OnUserEarnedReward

プロジェクトを実行してリワード広告を視聴したら、 RewardedTestScript.OnUserEarnedReward() は、ユーザーが操作する場合に呼び出されます。 広告を操作して報酬を獲得