インプレッションが発生すると、そのインプレッションに関連する広告収益データが Google Mobile Ads SDK によって提供されます。このデータを使用して、ユーザーのライフタイム バリューを計算したり、データをダウンストリームの他の関連システムに転送したりできます。
このガイドでは、Unity プロジェクトでインプレッション単位の広告収益データ キャプチャを実装する方法について説明します。
前提条件
- AdMob の管理画面でインプレッション単位の広告収益機能を有効にしていること。
- Unity プラグイン 5.0.0 以降。
- スタートガイドの手順を完了し、Unity アプリに Google Mobile Ads Unity プラグインをインポートしておく必要があります。
インプレッション単位の広告収益データを受信するために、以下の広告フォーマットを少なくとも 1 つ実装していること。
有料イベント ハンドラを実装する
各広告フォーマットには OnAdPaid
イベントが含まれています。Google Mobile Ads SDK は広告イベントのライフサイクル全体でインプレッション イベントを監視しており、インプレッションが発生すると、得られた収益を表す AdValue
とともにハンドラを呼び出します。
次の例では、リワード広告の有料イベントを処理します。
private void LoadRewardedAd()
{
// Send the request to load the ad.
AdRequest adRequest = new AdRequest();
RewardedAd.Load("AD_UNIT_ID ", adRequest, (RewardedAd rewardedAd, LoadAdError error) =>
{
// If the operation failed with a reason.
if (error != null)
{
Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
return;
}
rewardedAd.OnAdPaid += this.HandleAdPaidEvent;
});
}
public void HandleAdPaidEvent(AdValue adValue)
{
// TODO: Send the impression-level ad revenue information to your
// preferred analytics server directly within this callback.
long valueMicros = adValue.Value;
string currencyCode = adValue.CurrencyCode;
PrecisionType precision = adValue.Precision;
ResponseInfo responseInfo = rewardedAd.GetResponseInfo();
string responseId = responseInfo.GetResponseId();
AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.GetLoadedAdapterResponseInfo();
string adSourceId = loadedAdapterResponseInfo.AdSourceId;
string adSourceInstanceId = loadedAdapterResponseInfo.AdSourceInstanceId;
string adSourceInstanceName = loadedAdapterResponseInfo.AdSourceInstanceName;
string adSourceName = loadedAdapterResponseInfo.AdSourceName;
string adapterClassName = loadedAdapterResponseInfo.AdapterClassName;
long latencyMillis = loadedAdapterResponseInfo.LatencyMillis;
Dictionary<string, string> credentials = loadedAdapterResponseInfo.AdUnitMapping;
Dictionary<string, string> extras = responseInfo.GetResponseExtras();
string mediationGroupName = extras["mediation_group_name"];
string mediationABTestName = extras["mediation_ab_test_name"];
string mediationABTestVariant = extras["mediation_ab_test_variant"];
}
広告枠を落札した広告ソースについてさらに詳しい情報が必要な場合は、広告レスポンスに関する情報を取得するをご覧ください。
App Attribution Partner(AAP)と統合する
広告収益データを分析プラットフォームに転送する方法について詳しくは、各パートナーのガイドをご覧ください。
実装に関するベスト プラクティス
- 広告オブジェクトを作成または取得したら、広告を表示する前に、すぐに
OnPaidEvent
イベントを設定します。これにより、コールバックを逃すことがなくなります。 OnPaidEvent
ハンドラで任意の分析サーバーにインプレッション単位の広告収益情報をすぐに送信します。これにより、誤ってコールバックを逃すことがなくなり、データの不一致を回避できます。
AdValue
AdValue
は、広告で得られた金銭的価値を表すクラスで、その金銭的価値の通貨コードと、以下に示すエンコードされた精度タイプが含まれます。
AdValue.PrecisionType |
説明 |
---|---|
Unknown |
広告の価値が不明。LTV Pingback が有効になっているものの、十分なデータがない場合に返されます。 |
Estimated |
集計データから推定された広告の価値。 |
PublisherProvided |
パブリッシャーが指定した広告の価値(メディエーション グループ内の手動 CPM など)。 |
Precise |
この広告の正確な価値。 |
メディエーションの場合、AdMob は最適化された広告ソースの Estimated
値を提供しようとします。最適化されていない広告ソースの場合や、意味のある推計を得るのに十分な集計データがない場合は、PublisherProvided
値が返されます。
入札広告ソースからのインプレッションをテストする
テスト リクエストを介して入札広告ソースのインプレッション単位の広告収益イベントが発生すると、次の値のみが返されます。
Unknown
: 精度タイプを示します。
0
: 広告の価値を示します。
以前は、精度タイプが Unknown
以外の値で、広告値が 0
より大きい場合がありました。
テスト広告リクエストの送信の詳細については、テストデバイスを有効にするをご覧ください。