インタースティシャル広告は、それまでアプリのインターフェース上に全画面表示される広告です。 終了です。通常は画面の切り替え時に アプリのフロー(アクティビティとアクティビティ間の一時停止時など) 獲得できます。アプリにインタースティシャル広告が表示されるとき、ユーザーはどちらかを選択できます 広告をタップしてリンク先に移動するか、広告を閉じて戻ります。 クリックします。 事例紹介。
このガイドでは、インタースティシャル広告を iOS アプリに組み込む方法について説明します。
前提条件
- Google Mobile Ads SDK 8.0.0 以降
- スタートガイドを完了している。
必ずテスト広告でテストする
アプリを作成、テストする際は、テスト広告ではなく、 配信します。実際の広告を使用すると、アカウントが停止される可能性があります。
テスト広告を読み込むには、専用のテスト広告ユニット ID を使う方法が最も簡単です
iOS インタースティシャルの場合:
ca-app-pub-3940256099942544/4411468910
すべてのリクエストに対してテスト広告を返すように特別に構成されており、 独自のアプリでコーディング、テスト、デバッグの際に自由に使用できます。作成したばかりの アプリを公開する前に、必ずご自身の広告ユニット ID に置き換えてください。
Mobile Ads SDK のテスト広告の仕組みについて詳しくは、 テスト広告。
実装
インタースティシャル広告を実装する主な手順は次のとおりです。
- 広告を読み込みます。
- コールバックを登録します。
- 広告を表示し、報酬イベントを処理します。
広告を読み込む
広告の読み込みは、静的な
次に対する loadWithAdUnitID:request:completionHandler:
メソッド:
GADInterstitialAd
クラス。load メソッドには、
広告ユニット ID、GADRequest
オブジェクト、
広告の読み込みが成功または失敗したときに呼び出される完了ハンドラ。「
読み込まれた GADInterstitialAd
オブジェクトは、
パラメータを使用します。以下の例は、BigQuery ジョブを
ViewController
クラスの GADInterstitialAd
。
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var interstitial: GADInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
interstitial = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) GADInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADRequest *request = [GADRequest request];
[GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request:request
completionHandler:^(GADInterstitialAd *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: GADInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
interstitial = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
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) GADInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADRequest *request = [GADRequest request];
[GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request:request
completionHandler:^(GADInterstitialAd *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.");
}
GADInterstitialAd
は使い捨てオブジェクトです。この
つまり、一度インタースティシャル広告を表示すると、再度表示することはできません。ベスト
画面上部で別のインタースティシャル広告を
GADFullScreenContentDelegate
の adDidDismissFullScreenContent:
メソッドを使用して、
前のインタースティシャル広告が読み込まれるとすぐに次のインタースティシャル広告の読み込みが開始される。
破棄しました。
広告を表示する
インタースティシャルは、アプリの操作が一時停止する自然なタイミングで表示する必要があります。
ゲームのレベルが切り替わる合間やユーザーがタスクを完了した後などが良い例です。
次のアクション メソッドの 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:
メソッドを確認します。 準備ができているかどうかを確認するには、GADInterstitialAd
表示されます。
参考情報
GitHub の例
- インタースティシャル広告の例: Swift | Objective-C
Mobile Ads Garage の動画チュートリアル
成功事例
次のステップ
- 独自のインタースティシャル広告ユニットを AdMob 管理画面:
- 詳しくは、広告のターゲット設定と インタースティシャル広告に関するガイドラインをご覧ください。
- 詳しくは、ユーザーのプライバシーについての説明をご覧ください。