ネイティブ広告

ネイティブ広告は、プラットフォームのネイティブ UI コンポーネントを通じてユーザーに表示される広告アセットです。ストーリーボードですでに使用しているクラスと同じクラスで表示され、アプリのビジュアル デザインに合わせてフォーマットできます。

ネイティブ広告が読み込まれると、アプリは広告のアセットを含む広告オブジェクトを受け取ります。その後、Google Mobile Ads SDK ではなく、アプリが広告を表示します。

大まかに言うと、ネイティブ広告の実装は、SDK を使用して広告を読み込み、アプリに広告コンテンツを表示するという 2 つの段階に分かれています。

このページでは、SDK を使用して ネイティブ広告をご覧ください。

前提条件

必ずテスト広告でテストする

アプリの作成とテストでは、実際の配信中の広告ではなくテスト広告を使用するようにしてください。

テスト広告を読み込む最も簡単な方法は、iOS のネイティブ広告向けのテスト専用広告ユニット ID を使用することです。

/6499/example/native

すべてのリクエストに対してテスト広告を返すように特別に構成されており、コーディング、テスト、デバッグを行うときにアプリで使用できます。アプリを公開する前に、必ず独自の広告ユニット ID に置き換えてください。

Google Mobile Ads SDK のテスト広告の仕組みについて詳しくは、テスト広告をご覧ください。

広告を読み込む

ネイティブ広告は GADAdLoader クラスで読み込まれます。このクラスは、GADAdLoaderDelegate プロトコルに従ってメッセージをデリゲートに送信します。

システム定義のネイティブ フォーマットに加えて、直接販売のネイティブ広告で使用できる独自のカスタムのネイティブ広告フォーマットを作成することもできます。カスタムのネイティブ広告フォーマットを使用すると、アプリに任意の構造化データを渡すことができます。このような広告は、GADCustomNativeAd クラスで表されます。

広告ローダを初期化する

広告を読み込むには、広告ローダを初期化する必要があります。 次のコードは、GADAdLoader を初期化する方法を示しています。

Swift

adLoader = GADAdLoader(adUnitID: "/6499/example/native",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/native"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

広告ユニット ID(テスト ID を使用できます)、リクエストするネイティブ フォーマットを指定するために adTypes 配列に渡す定数、options パラメータで設定するオプションが必要です。options パラメータで設定可能な値の一覧については、ネイティブ広告オプションの設定に関するページをご覧ください。

adTypes 配列には、 次の定数を 1 つ以上含める必要があります。

広告ローダのデリゲートを実装する

広告ローダのデリゲートは、広告タイプに固有のプロトコルを実装する必要があります。 ネイティブ広告の場合、GADNativeAdLoaderDelegate プロトコルには、ネイティブ広告の読み込み時にデリゲートに送信されるメッセージが含まれます。

Swift

public func adLoader(_ adLoader: GADAdLoader,
            didReceive nativeAd: GADNativeAd)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd;

GADCustomNativeAdLoaderDelegate プロトコルには、カスタム テンプレート広告の読み込み時にデリゲートに送信されるメッセージが含まれています。

Swift

func adLoader(_ adLoader: GADAdLoader,
  Receive customNativeAd: GADCustomNativeAd)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *) customNativeAd;

広告をリクエスト

GADAdLoader が初期化されたら、loadRequest: メソッドを呼び出して広告をリクエストします。

Swift

adLoader.load(GAMRequest())

Objective-C

[self.adLoader loadRequest:[GAMRequest request]];

GADAdLoaderloadRequest: メソッドは、バナーやインタースティシャルと同じ GAMRequest オブジェクトを受け取ります。他の広告タイプの場合と同様に、リクエスト オブジェクトを使用してターゲット設定情報を追加できます。

読み込みが完了したタイミングを確認する

アプリが loadRequest: を呼び出した後に、次の呼び出しを使用してリクエストの結果を取得できます。

1 つの広告に対するリクエストによって、これらのメソッドのいずれかが 1 回呼び出されます。

失敗したリクエストの処理

上記のプロトコルは、広告の読み込みに失敗したときに送信されるメッセージを定義する GADAdLoaderDelegate プロトコルを拡張します。

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

ネイティブ広告イベントの通知を受け取る

ネイティブ広告の操作に関連するイベントの通知を受け取るには、ネイティブ広告の delegate プロパティを設定します。

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

次に、GADNativeAdDelegate を実装して、次のデリゲート呼び出しを受け取ります。

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

ベスト プラクティス

広告を読み込む際は以下のルールを守ってください。

  • リスト内のネイティブ広告を使用するアプリでは、広告のリストを事前キャッシュに保存する必要があります。

  • 広告を事前キャッシュする場合は、キャッシュをクリアして、1 時間後に再読み込みしてください。

  • adLoaderDidFinishLoading: で示されるように、前のリクエストの読み込みが完了するまで、GADAdLoaderloadRequest: を再度呼び出さないでください。

広告を表示する

広告を読み込んだら、あとはユーザーに表示するだけです。その方法については、ネイティブ アドバンス ガイドをご覧ください。