iOS 向けインタースティシャル広告単位 API への移行
広告単位 ID を使用してインタースティシャル広告をロードおよびディスプレイすることで、LevelPlay インタースティシャル API に遷移します。
読み終わるまでの所要時間 10 分最終更新 6日前
このガイドでは、現在の実装から LevelPlay Interstitial API に遷移(広告単位 ID を使用)して、インタースティシャル広告をロードおよびディスプレイする方法について説明します。
前提条件
- サポートされている最小 SDK は 8.6.0 です。最新の SDK はここからダウンロードできます。
- LevelPlay 初期化 API を使用して SDK を初期化してください。
- LevelPlay ダッシュボードで AdUnitID を見つけます。
インタースティシャル広告オブジェクトの作成
インタースティシャル広告オブジェクトの作成は、onInitSuccess コールバックの受信後に実行する必要があります。
オブジェクトは、セッションを通じて複数のロードと表示をハンドルできる再利用可能なインスタンスです。作成後、同じ広告単位の広告をロードおよび表示するために使用する必要があります。
より高度な実装では、必要に応じて複数のインタースティシャル広告オブジェクトを作成できます。
self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"];
デリゲートの実装
コードに LPMInterstitialAdDelegate を LevelPlayInterstitialDelegate の代わりに実装して、広告の配信を通知します。
- インタースティシャル広告をロードする前にデリゲートを設定することを推奨します。
- 各インタースティシャル広告には、独自のデリゲート実装が必要です。
- デリゲートメソッドはメインスレッドで実行されます。
self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"];self.interstitialAd.delegate = self;#pragma mark - LPMInterstitialAdDelegate メソッド- (void)didLoadAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(NSString *)adUnitId error:(NSError *)error {}- (void)didChangeAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo error:(NSError *)error {}- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCloseAdWithAdInfo:(LPMAdInfo *)adInfo {}
古い機能 | 広告単位 (新規) | |
|---|---|---|
| デリゲート | LevelPlayInterstitialDelegate | LPMInterstitialAdDelegate |
| イベント | didLoadWithAdInfo | didLoadAdWithAdInfo |
| didFailToLoadWithError | didFailToLoadAdWithAdUnitId | |
| didOpenWithAdInfo | didDisplayAdWithAdInfo | |
| didCloseWithAdInfo | didCloseAdWithAdInfo | |
| didFailToShowWithError | didFailToDisplayAdWithAdInfo | |
| didClickWithAdInfo | didClickAdWithAdInfo | |
| didShowWithAdInfo | - (非推奨) | |
| - | didChangeAdInfo |
LevelPlay 広告情報
インタースティシャルリスナーコールバックによって返される ISAdInfo クラスは、LPMAdInfo に置き換えられました。
ロード インタースティシャル広告
インタースティシャル広告をロードするには、loadInterstitial ではなく loadAd を使用します。
[self.interstitialAd loadAd];
インタースティシャル広告の表示
didLoadWithAdInfo コールバックの受信後に、LevelPlayInterstitialDelegate ではなく LPMInterstitialAdDelegate を使用してインタースティシャル広告を表示します。 showInterstitialWithViewController の代わりに showAdWithViewController を使用します。
- ViewController の共有に必要です。
- プレースメントを使用する場合は、後述のプレースメントのセクションで示すように、showAd API に配置名を渡します。
- ユーザーに広告が正常に表示されたら、ロードステップを繰り返して別の広告をロードできます。
- (void)showInterstitialAd { // 広告の準備ができていることを確認します if ([self.interstitialAd isAdReady]) { // 配置なしで表示 [self.interstitialAd showAdWithViewController:self placementName:nil]; }}
広告の準備ができているか確認
表示の失敗を避け、広告が正しく表示されるようにするために、showAd API を呼び出す前に以下の API を使用することをお勧めします。
isAdReady – 広告のロードが成功し、広告単位が上限に達していない場合は true、それ以外の場合は false を返します。
isPlacementCapped – 有効な配置に上限がある場合に true を返します。配置が有効でないか、上限がない場合、この API は false を返します。
// 広告の準備ができていることと、配置に上限がないことを確認します。if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { [self.interstitialAd showAdWithViewController:self placementName:placementName];}
Placements
LevelPlay ダッシュボードでは、インタースティシャルのプレースメント ペーシングとプレースメント キャップをサポートします。
インタースティシャル広告にプレースメントが設定されている場合は、 showAd メソッドを呼び出して特定の配置の広告を配信します。
// 広告の準備ができていることと、配置に上限がないことを確認します。if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { // 配置で広告を表示 [self.interstitialAd showAdWithViewController:self placementName:@"PlacementName"];}
複数の広告単位インタースティシャル API
古い機能 | 広告単位 (新規) | |
|---|---|---|
| API | loadInterstitial | loadAd |
| showInterstitialWithViewController | showAdWithViewController | |
| hasInterstitial | isAdReady | |
| isInterstitialCappedForPlacement | isPlacementCapped |
広告単位 API の完全な実装例
NS_ASSUME_NONNULL_BEGIN@interface InterstitialAdViewController () <LPMInterstitialAdDelegate>@プロパティ(非アトミック、強) LPMInterstitialAd *interstitialAd;@end@implementation InterstitialAdViewController- (void)createInterstitialAd { self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"]; self.interstitialAd.delegate = self;}- (void)loadInterstitialAd { // 広告のロードまたはリロードに使用 [self.interstitialAd loadAd];}- (void)showInterstitialAd { if ([self.interstitialAd isAdReady]) { [self.interstitialAd showAdWithViewController:self placementName:nil]; }}- (void)showInterstitialAdWithPlacementName:(NSString *)placementName { // 広告の準備ができていることと、配置に上限がないことを確認します。 if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { [self.interstitialAd showAdWithViewController:self placementName:placementName]; }}#pragma mark - LPMInterstitialAdDelegate メソッド- (void)didLoadAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(NSString *)adUnitId error:(NSError *)error {}- (void)didChangeAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo error:(NSError *)error {}- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCloseAdWithAdInfo:(LPMAdInfo *)adInfo {}@endNS_ASSUME_NONNULL_END
LevelPlay Mediation デモアプリケーション
インテグレーション Demo (インテグレーションデモ) アプリケーションは、アプリケーションにインタースティシャル広告単位 API を統合する方法を示します。