インタースティシャル広告

インタースティシャル広告は、それまでアプリのインターフェース上に全画面表示される広告です。 終了です。通常は画面の切り替え時に アプリのフロー(アクティビティとアクティビティ間の一時停止時など) 獲得できます。アプリにインタースティシャル広告が表示されるとき、ユーザーはどちらかを選択できます 広告をタップしてリンク先に移動するか、広告を閉じて戻ります。 クリックします。 事例紹介

このガイドでは、インタースティシャル広告を iOS アプリに組み込む方法について説明します。

前提条件

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

アプリを作成、テストする際は、テスト広告ではなく、 配信します。実際の広告を使用すると、アカウントが停止される可能性があります。

テスト広告を読み込むには、専用のテスト広告ユニット ID を使う方法が最も簡単です iOS インタースティシャルの場合:
/21775744923/example/interstitial

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

Mobile Ads SDK のテスト広告の仕組みについて詳しくは、 テスト広告

実装

インタースティシャル広告を実装する主な手順は次のとおりです。

  1. 広告を読み込みます。
  2. コールバックを登録します。
  3. 広告を表示し、報酬イベントを処理します。

広告を読み込む

広告の読み込みは、静的な 次に対する loadWithAdManagerAdUnitID:request:completionHandler: メソッド: GAMInterstitialAd クラス。load メソッドには、 広告ユニット ID、GAMRequest オブジェクト、 広告の読み込みが成功または失敗したときに呼び出される完了ハンドラ。「 読み込まれた GAMInterstitialAd オブジェクトは、 パラメータを使用します。以下の例は、BigQuery ジョブを ViewController クラスの GAMInterstitialAd

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GAMInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GAMInterstitialAd.load(
        withAdUnitID: "/21775744923/example/interstitial", request: GAMRequest())
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GAMInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GAMRequest *request = [GAMRequest request];
  [GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
      request:request
      completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

コールバックに登録する

プレゼンテーション イベントの通知を受け取るには、 GADFullScreenContentDelegate プロトコルを使用し、 返された広告の fullScreenContentDelegate プロパティ。「 GADFullScreenContentDelegate プロトコルは、広告が 成功または失敗したか、閉じられたかを示します。次の コードは、プロトコルを実装して広告に割り当てる方法を示しています。

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GAMInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GAMInterstitialAd.load(
        withAdUnitID: "/21775744923/example/interstitial", request: GAMRequest())
      interstitial?.fullScreenContentDelegate = self
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController () <GADFullScreenContentDelegate>

@property(nonatomic, strong) GAMInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GAMRequest *request = [GAMRequest request];
  [GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
      request:request
      completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
    self.interstitial.fullScreenContentDelegate = self;
  }];
}

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
    NSLog(@"Ad did fail to present full screen content.");
}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
    NSLog(@"Ad will present full screen content.");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
  NSLog(@"Ad did dismiss full screen content.");
}

GAMInterstitialAd は使い捨てオブジェクトです。この つまり、一度インタースティシャル広告を表示すると、再度表示することはできません。ベスト 画面上部で別のインタースティシャル広告を GADFullScreenContentDelegateadDidDismissFullScreenContent: メソッドを使用して、 前のインタースティシャル広告が読み込まれるとすぐに次のインタースティシャル広告の読み込みが開始される。 破棄しました。

広告を表示する

インタースティシャルは、アプリの操作が一時停止する自然なタイミングで表示する必要があります。 ゲームのレベルが切り替わる合間やユーザーがタスクを完了した後などが良い例です。 次のアクション メソッドの 1 つでこれを行う方法の例は、 UIViewController:

Swift

guard let interstitial = interstitial else {
  return print("Ad wasn't ready.")
}

// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)

Objective-C

if (self.interstitial) {
  // The UIViewController parameter is nullable.
  [self.interstitial presentFromRootViewController:nil];
} else {
  NSLog(@"Ad wasn't ready");
}

ベスト プラクティス

インタースティシャル広告がアプリに適した広告タイプかどうかを検討します。
インタースティシャル広告は、画面の切り替わりがあるアプリで最適に機能します。 画像の共有やアプリの完了など、アプリ内でのタスクの終了を ゲームレベルでは、そのようなポイントが生まれます。ユーザーが休憩を期待しているため ユーザーの操作を妨げずにインタースティシャル広告を 体験できますアプリのワークフローのどの時点で ユーザーの反応を予測します。
インタースティシャル広告を表示する際はアクションを一時停止してください。
インタースティシャル広告にはさまざまなタイプ(テキスト、イメージ、 使用できます。アプリの画面にコードを表示する際は、 リソースの使用を中断して広告が 活用してください。たとえば、スペースを表示するための呼び出しを行うと、 アプリからの音声出力は、必ず一時停止してください。 次の場所で音声の再生を再開できます: adDidDismissFullScreenContent: イベント ハンドラ。ユーザーが操作を完了すると呼び出されます。 広告とともに配信されますさらに、負荷の高い計算処理を一時的に停止することも ユーザーの操作(ゲームループなど)を自動的に行うため。これにより、 グラフィックが遅い、反応しない、スムーズに再生されない 動画をご覧ください。
読み込み時間は十分に確保してください。
インタースティシャル広告は一定の間隔で表示することが ユーザーに都合のよい時間を提供できるよう、 読み込みが完了するのを待ちます。表示する前に広告を読み込む アプリの準備が整い次第 インタースティシャル広告を確実に表示できます ディスプレイ広告の時代が来ました。
大量の広告をユーザーに表示することは避けてください。
アプリでインタースティシャル広告の表示頻度を増やすと、 ユーザーエクスペリエンスの低下にも つながります クリック率の低下につながりますユーザーがそれほど頻繁にアクセスしないようにします。 中断されることがなくなります。
読み込み完了コールバックをインタースティシャルの表示に使用しないでください。
ユーザー エクスペリエンスが低下する可能性があります。広告の読み込み前に広告が 表示されます。次に、canPresentFromRootViewController:error: メソッドを確認します。 準備が整っているかどうかを確認(GAMInterstitialAd) 表示されます。

GitHub の例

次のステップ