インプレッションレベルレベニューの実装

Before you start ironSource SDK 7.0.3 以降がアプリケーションに正しく実装されていることを確認してください。実装の概要はこちら
SDK の機能によるインプレッションレベルレベニュー(ILR)仕様の詳細や前提条件などについてはこちらをご覧ください。

ImpressionDataListener の実装

ironSource SDK は、表示された広告の情報についてポストバックを発火して通知します。実装オプションとして、ImpressionDataListener でインプレッションデータを受信する事が出来ます。このリスナーはすべての広告ユニットに関する情報を提供するので、インプレッションレベルレベニューを使用して異なる広告を識別することができます。

アプリで ImpressionDataListener を使用する場合、情報の損失を防ぐため、必ず ironSource SDK を初期化する前にリスナーを設定してください。

+ (void)addImpressionDataDelegate:(id<ISImpressionDataDelegate>)delegate;

ironSource SDK は、インプレッションデータに関するポストバックをリスナーに通知します:

+ (void)addImpressionDataDelegate:(id<ISImpressionDataDelegate>)delegate; 
- (void)impressionDataDidSucceed:(ISImpressionData *)impressionData;

ImpressionDataListener を解除する

ImpressionDataListener の設定を解除したい場合は、以下の様に removeImpressionData API が使用できます:

+ (void)removeImpressionDataDelegate:(id<ISImpressionDataDelegate>)delegate;

ironSource SDK 7.1.0 より、setImpressionDataDelegate は非推奨になり、 addImpressionDataDelegate が推奨になりました。

ILR データを実装する

ImpressionDataListener を実装すると、インプレッションデータを独自の BI ツールや DWH に送信したり、サードパーティツールと連携する事ができるようになります。

Note:  返されるデータには null 値が含まれる場合があります。潜在的なクラッシュを回避するために、データをアサインする前に必ず値を確認してください。

便利な仕様として、各フィールドを個別に参照する事も、allData メソッドで全ての情報を取得する事も出来ます:

- (void)impressionDataDidSucceed:(ISImpressionData *)impressionData {
    NSNumber *revenue = impressionData.revenue;
    NSString *ad_network = impressionData.ad_network;
    NSDictionary *all_data = impressionData.all_data;
}

フィールドの説明とタイプを含む、利用可能な IL​​R データの完全なリストはこちらで確認出来ます。

以下は、インプレッションレベルレベニュー SDK API のデータを Google Analytics for Firebase へ実装する方法の例です。そのまま使用することも、必要な変更を加えてサードパーティのレポートツールや、独自の最適化ツール、データベース等へ実装することもできます。

/**
 Invoked when the ad was displayed successfully and the impression data was recorded
 **/
- (void)impressionDataDidSucceed:(ISImpressionData *)impressionData {
    NSLog(@"%s", __PRETTY_FUNCTION__);
    [FIRAnalytics logEventWithName:kFIREventAdImpression
                        parameters:@{
                            kFIRParameterAdPlatform:"ironSource",
                            kFIRParameterAdSource:impressionData.ad_network,
                            kFIRParameterAdFormat:impressionData.ad_unit,
                            kFIRParameterAdUnitName:impressionData.instance_name,
                            kFIRParameterCurrency:"USD",
                            kFIRParameterValue:impressionData.revenue
                        }];
}

Important! パラメーターが null では無いことを確認してください。