iOS のインタースティシャル実装

ironSource インタースティシャルはフルスクリーンの広告ユニットであり、通常はアプリのライフサイクル中の自然な移行ポイントで配信されます。静止画インタースティシャルとビデオインタースティシャルの両方をサポートします。また、ironSource メディエーションプラットフォームを介してインタースティシャルを提供することもできます。

Before you start ironSource SDK と追加のアドネットワークアダプターがアプリケーションに正しく実装されていることを確認してください。実装の概要はこちら

ステップ 1. デリゲートを実装する

ironSource SDK は、インタースティシャルアクティビティを通知するためにいくつかのイベントを発火します。SDK は、以下にリストされている発生しうる全てのイベントをデリゲートに通知します:

+ (void)setLevelPlayInterstitialDelegate:(nullable id<LevelPlayInterstitialDelegate>)delegate;
#pragma mark - LevelPlayInterstitialDelegate
/**
 Called after an interstitial has been loaded
 @param adInfo The info of the ad.
 */
- (void)didLoadWithAdInfo:(ISAdInfo *)adInfo {}

/**
 Called after an interstitial has attempted to load but failed.
 @param error The reason for the error
 */
- (void)didFailToLoadWithError:(NSError *)error {}

/**
 Called after an interstitial has been opened. 
 This is the indication for impression. 
 @param adInfo The info of the ad.
 */
- (void)didOpenWithAdInfo:(ISAdInfo *)adInfo {}

/**
 Called after an interstitial has been dismissed.
 @param adInfo The info of the ad.
 */
- (void)didCloseWithAdInfo:(ISAdInfo *)adInfo {}

/**
 Called after an interstitial has attempted to show but failed.
 @param error The reason for the error
 @param adInfo The info of the ad.
 */
- (void)didFailToShowWithError:(NSError *)error andAdInfo:(ISAdInfo *)adInfo {}

/**
 Called after an interstitial has been clicked.
 @param adInfo The info of the ad.
 */
- (void)didClickWithAdInfo:(ISAdInfo *)adInfo {}

/**
 Called after an interstitial has been displayed on the screen.
 This callback is not supported by all networks, and we recommend using it 
 only if it's supported by all networks you included in your build. 
 @param adInfo The info of the ad.
 */
- (void)didShowWithAdInfo:(ISAdInfo *)adInfo {}
Note: コールバックが常にメインスレッドで実行されているとは限りません。ironSource コールバックから生じる UI インタラクションまたは更新は、実行する前にメインスレッドに渡す必要があります。

リスナーの完全な実装については、こちらで確認できます。

ステップ 2. インタースティシャル広告をロードする

インタースティシャル広告は、ロードプロセスに時間がかかる可能性があるため、ユーザーに表示したいタイミングの少し前にリクエストすることをお勧めします。インタースティシャル広告を短期間で連続してリクエストすることはお勧めしません。この時点で利用できる在庫がある可能性は低いため、短期間での多数のリクエストによって得られるメリットはありません。

インタースティシャル広告をリクエストするには、次のメソッドを呼びます:

[IronSource loadInterstitial];
IronSource.loadInterstitial()
Note: アプリケーションで複数のインタースティシャル広告を配信する場合は、前のインタースティシャル広告を表示して閉じた後で、この手順を繰り返す必要があります。interstitialDidClose が発火されると、新しいインタースティシャル広告をロードできるようになります。

ステップ 3. 広告のアベイラビリティを確認する

ステップ 2 loadInterstitial を呼び出した後、 didLoadWithAdInfo というメソッドでデリゲートを介して広告が読み込まれると通知されます。

/**
 Called after an interstitial has been loaded
 @param adInfo The info of the ad.
 */
- (void)didLoadWithAdInfo:(ISAdInfo *)adInfo{}
/**
 Called after an interstitial has been loaded
 @param adInfo The info of the ad.
 */
public func didLoad(with adInfo: ISAdInfo) {}

または、次の関数を呼び出して広告のアベイラビリティを直接リクエストすると、true または false のブール値が返されます:

[IronSource hasInterstitial];
IronSource.hasInterstitial()

インタースティシャル広告が利用可能になると、ユーザーへ広告を表示できるようになります。ironSource の広告プレースメントを使用すると、インタースティシャル体験をカスタマイズおよび最適化できます。このツールを使用すると、さまざまな場面(アプリの起動、レベル間など)でユーザーにインタースティシャル広告を表示することができます。次のステップの関数を使用して、広告を表示するプレースメントを指定できます。

ironSource の広告プレースメントに加えて、選択したプレースメントの広告表示回数上限であるキャップと、上限と広告表示間隔であるペースが設定できるようになりました。キャッピングとペーシングは、特定の時間内に配信される広告の再生回数を制限することにより、アプリのユーザー体験を向上させます。

ユーザーにインタースティシャルを配信する前に、プレースメントが上限に達したかを確認するため、以下の関数を呼ぶ事をお勧めします:

[IronSource isInterstitialCappedForPlacement:placementName];
IronSource.isInterstitialCapped(forPlacement: “placement”)

詳細については、広告プレースメントのドキュメントをご覧ください。

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

didLoadWithAdInfo コールバックを受信したら、ユーザーにインタースティシャル広告を表示する準備が整いました。ユーザーへベストな広告体験を提供できる様、広告を表示する間はゲームアクション・オーディオを止める事を忘れないでください。

次のメソッドを呼んで、インタースティシャル広告をユーザーに配信します:

(void)showInterstitialWithViewController:(UIViewController *)viewController;
IronSource.showInterstitial(with: <UIViewController>)

インタースティシャルのプレースメントを設定した場合は、次のメソッドを呼んで特定のプレースメントのインタースティシャル広告を配信します:

[IronSource showInterstitialWithViewController:YOUR_VIEWCONTROLLER placement:YOUR_PLACEMENT_NAME]
IronSource.showInterstitial(with: <UIViewController>, placement: <String?>)
Important! ステップ 4 を正常に完了すると、ユーザーにインタースティシャル広告が表示されます。別のインタースティシャル広告を配信する場合は、ステップ 2 を繰り返して、追加のインタースティシャルをリクエストする必要があります。

完了!
インタースティシャルメディエーションプラットフォームを介して ironSource インタースティシャル広告を配信できるようになりました。

初めての実装のヒント
これがアプリケーションの初めての実装である場合、ironSource ダッシュボードではアプリはデフォルトで「テストモード」になります。アプリがテストモードになっている間、ironSource SDK は、SDKプロセスの可視性を高めるために、より多くのログをコンソールに出力します。広告枠をテストするには、テストデバイスを設定します。また、本番環境をオンにするまでは、収益を生み出さないテスト用広告が配信されます。アプリの本番環境への移行準備ができたら、「 Ad Units 」ページで必ず「 Go Live! 」を選択してください。
ironsource-go-live-with-rewarded-video

次のステップは?
実装ガイドに従って、追加のインタースティシャルアドネットワークを設定するか、追加の広告ユニットを実装します。