インプレッションが発生すると、Google Mobile Ads SDK は関連する収益データを含む有料イベント ハンドラを呼び出します。このハンドラを実装すると、データを使用してユーザーのライフタイム バリュー(LTV)を計算したり、データをダウンストリームの他の関連システムに転送したりできます。
このガイドでは、iOS アプリでの LTV データ キャプチャの実装について説明します。
前提条件
- アド マネージャーの管理画面でインプレッション単位の広告収益機能を有効にしていること。
- Google Mobile Ads SDK 9.10.0 以降をインポートしていること。
- スタートガイドの手順を完了していること。
インプレッション単位の広告収益を受信するために、以下の広告フォーマットを少なくとも 1 つ実装していること。
有料イベント ハンドラを実装する
各広告フォーマットには、GADPaidEventHandler 型の paidEventHandler プロパティがあります。
Google Mobile Ads SDK は広告イベントのライフサイクル全体でインプレッション イベントを監視しており、インプレッションが発生すると、得られた収益の値とともにハンドラを呼び出します。
次の例では、リワード広告の有料イベントを処理します。
Swift
rewardedAd?.paidEventHandler = { adValue in
// TODO: Send the impression-level ad revenue information to your preferred
// analytics server directly within this callback.
// Extract the impression-level ad revenue data.
let value = adValue.value
let currencyCode = adValue.currencyCode
let precision = adValue.precision
print(
"Ad paid event. Value: \(value) \(currencyCode), with precision: \(precision)."
)
}
Objective-C
rewardedAd.paidEventHandler = ^(GADAdValue *_Nonnull adValue) {
// TODO: Send the impression-level ad revenue information to your preferred
// analytics server directly within this callback.
// Extract the impression-level ad revenue data.
NSDecimalNumber *value = adValue.value;
NSString *currencyCode = adValue.currencyCode;
GADAdValuePrecision precision = adValue.precision;
NSLog(@"Ad paid event. Value: %@ %@, with precision: %ld.", value, currencyCode,
(long)precision);
};
カスタム イベントの広告ソース名を特定する
カスタム イベントの広告ソースの場合、adSourceName プロパティは広告ソース名 Custom event を返します。複数のカスタム イベントを使用している場合、広告ソース名では複数のカスタム イベントを区別できません。特定のカスタム イベントを見つけるには、次の手順を行います。
adNetworkClassNameプロパティを取得します。- 一意の広告ソース名を設定します。
次の例では、カスタム イベントに一意の広告ソース名を設定しています。
Swift
func uniqueAdSourceName(for loadedAdNetworkResponseInfo: AdNetworkResponseInfo) -> String {
var adSourceName: String = loadedAdNetworkResponseInfo.adSourceName ?? ""
if adSourceName == "Custom Event" {
if loadedAdNetworkResponseInfo.adNetworkClassName
== "MediationExample.SampleCustomEventSwift"
{
adSourceName = "Sample Ad Network (Custom Event)"
}
}
return adSourceName
}Objective-C
- (NSString *)uniqueAdSourceNameForAdNetworkResponseInfo:
(GADAdNetworkResponseInfo *)loadedAdNetworkResponseInfo {
NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
if ([adSourceName isEqualToString:@"Custom Event"]) {
if ([loadedAdNetworkResponseInfo.adNetworkClassName isEqualToString:@"SampleCustomEvent"]) {
adSourceName = @"Sample Ad Network (Custom Event)";
}
}
return adSourceName;
}広告枠を落札した広告ソースについてさらに詳しい情報が必要な場合は、広告レスポンスに関する情報を取得するをご覧ください。
実装に関するベスト プラクティス
- ハンドラの設定は、広告を表示するよりも前に行う必要があります。有料イベント コールバックを逃すことがないよう、広告オブジェクトを作成したら、あるいは広告オブジェクトへのアクセス権を得たら、すぐに済ませましょう。
paidEventHandlerメソッドが呼び出されたらすぐに、ご希望の分析サーバーに有料イベント情報を送信します。誤ってコールバックを逃すことを防ぎ、データ不一致の発生を回避できます。
GADAdValue
GADAdValue は、広告で得られた金銭的価値を表すクラスで、その金銭的価値の通貨コードと、以下に示すエンコードされた精度タイプが含まれます。
| GADAdValuePrecision | 説明 |
|---|---|
GADAdValuePrecisionUnknown
|
広告の価値が不明。LTV Pingback が有効になっていても、十分なデータが十分にない場合に返されます。 |
GADAdValuePrecisionEstimated
|
集計データから推定された広告の価値。 |
GADAdValuePrecisionPublisherProvided
|
パブリッシャーが指定した広告の価値(メディエーション グループ内の手動 CPM など)。 |
GADAdValuePrecisionPrecise
|
広告に支払われた正確な金額。 |
Open Bidding からのテスト インプレッション
テスト リクエストを通じて Open Bidding の広告ソースでインプレッション単位の広告収益イベントが発生すると、次の値のみが返されます。
GADAdValuePrecisionUnknown: 精度タイプを示します。
0: 広告の価値を示します。
以前は、精度タイプが GADAdValuePrecisionUnknown 以外の値として表示され、広告の値が 0 より大きい値として表示されることがありました。
テスト広告リクエストの送信について詳しくは、テストデバイスを有効にするをご覧ください。