ドキュメント

iOS向けのインプレッションレベルの収益インテグレーション

インプレッションレベル収益(ILR)SDK APIを使用して、インプレッションレベルの収益データをAnalyticsプラットフォームに統合します。
読み終わるまでの所要時間 7 分最終更新 1ヶ月前

前提条件

LevelPlay SDK 9.5.0 以降がアプリケーションに正しく統合されていることを確認します。iOS SDK インテグレーション を参照してください。
インプレッションレベル収益(ILR)SDKの特徴と前提条件の詳細については、インプレッションレベル収益のサーバー側APIを参照してください。

LPMImpressionDataDelegate の実装

LevelPlay SDK はポストバックを起動して、表示された広告について通知します。LPMImpressionDataDelegate は、インプレッションデータを受け取るために実装できる任意のデリゲートです。このリスナーは、すべての広告ユニットに関する情報を提供し、インプレッションレベルの収益を使用してさまざまな広告を識別できます。
ImpressionData リスナーをアプリケーションに追加するには、LevelPlay SDK を初期化する前にリスナーを宣言して、情報の損失を避けます。
+ (void)addImpressionDataDelegate:(id<LPMImpressionDataDelegate>)delegate;
LevelPlay SDKは、インプレッションデータに関連する成功ポストバックをデリゲートに通知します。
- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData;

インプレッションデリゲートの設定

LPMImpressionDataDelegate
を実装し、
setImpressionDataDelegate:
を呼び出して各広告オブジェクトに設定します。インプレッションを逃さないように、広告オブジェクトの構築直後、ロードまたは表示する前に割り当ててください。各デリゲートは、割り当てられたインスタンスのインプレッションのみを受け取ります。
注
広告オブジェクトのインプレッションデリゲートの保持が弱い。デリゲートへの強力なリファレンスを保持します。そうしないと、デリゲートが割り当て解除され、コールバックの受信が停止される可能性があります。

Interstitial (インタースティシャル)

self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"];[self.interstitialAd setImpressionDataDelegate:self];#pragma mark - LPMImpressionDataDelegate Methods- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { NSLog(@"Interstitial impressionDataDidSucceed: %@", impressionData);}

Rewarded (リワード型)

self.rewardedAd = [[LPMRewardedAd alloc] initWithAdUnitId:@"adUnitId"];[self.rewardedAd setImpressionDataDelegate:self];#pragma mark - LPMImpressionDataDelegate Methods- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { NSLog(@"Rewarded impressionDataDidSucceed: %@", impressionData);}
self.bannerAdView = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId"];[self.bannerAdView setImpressionDataDelegate:self];#pragma mark - LPMImpressionDataDelegate Methods- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { NSLog(@"Banner impressionDataDidSucceed: %@", impressionData);}

インプレッションデータの削除

広告オブジェクトのインプレッションデータの受信を停止するには、
nil
を
setImpressionDataDelegate:
に渡します。
[self.interstitialAd setImpressionDataDelegate:nil];[self.rewardedAd setImpressionDataDelegate:nil];[self.bannerAdView setImpressionDataDelegate:nil];
注
LevelPlay SDK 7.1.0 リリースでは、setImpressionDataDelegate は非推奨となり、addImpressionDataDelegate に置き換えられます。

ILR データの統合

LPMImpressionDataDelegate を実装したら、インプレッションデータを独自のプロプライエタリ BI ツールと DWH に送信するか、サードパーティ製のツールと統合できます。
重要
返されるデータに null 値が含まれている可能性があります。データを割り当てる前に保護を追加して、潜在的なクラッシュを回避してください。
各フィールドを個別に参照するか、 allData メソッドを使用してすべての情報を取得できます。
- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { NSNumber *revenue = impressionData.revenue; NSString *ad_network = impressionData.adNetwork; NSDictionary *all_data = impressionData.allData;}
以下の例は、インプレッションレベル収益SDK APIデータをGoogle Analytics for Firebaseと統合する方法を示しています。そのまま使用することも、サードパーティ製のレポート作成ツールや独自のプロプライエタリ最適化ツールおよびデータベースと統合するために必要な変更を加えることもできます。
重要
内部パラメーターが null でないことを確認します。
/** 広告が正常に表示され、インプレッションデータが記録されたときに呼び出されます。**/- (void)impressionDataDidSucceed:(LPMImpressionData *)impressionData { NSLog(@"%s", __PRETTY_FUNCTION__); [FIRAnalytics logEventWithName:kFIREventAdImpression parameters:@{ kFIRParameterAdPlatform:@"LevelPlay", kFIRParameterAdSource:(impressionData.ad_network ?: @"No ad_network"), kFIRParameterAdFormat:(impressionData.ad_format ?: @"No ad_format"), kFIRParameterAdUnitName:(impressionData.instance_name ?: @"No instance_name"), kFIRParameterCurrency:@"USD", kFIRParameterValue:(impressionData.revenue ?: @0) }];}