インプレッション単位の広告収益

インプレッションが発生すると、そのインプレッションに関連する広告収益データが Google Mobile Ads SDK によって提供されます。このデータを使用して、ユーザーのライフタイム バリューを計算したり、データをダウンストリームの他の関連システムに転送したりできます。

このガイドでは、Unity プロジェクトでインプレッション単位の広告収益データ キャプチャを実装する方法について説明します。

前提条件

有料イベント ハンドラを実装する

各広告フォーマットには OnPaidEvent イベントが含まれています。Google Mobile Ads SDK は広告イベントのライフサイクル全体でインプレッション イベントを監視しており、インプレッションが発生すると、得られた収益の値とともにハンドラを呼び出します。

以下のコードは、リワード広告の有料イベントを処理する方法を示したものです。

RewardedAd rewardedAd;

private void RequestRewardedAd()
{
   rewardedAd = new RewardedAd("AD_UNIT_ID");
   
   rewardedAd.OnPaidEvent += this.HandleAdPaidEvent;
   
   AdRequest adRequest = new AdRequest();
   rewardedAd.LoadAd(adRequest);
}


public void HandleAdPaidEvent(object sender, AdValueEventArgs args)
{
    // TODO: Send the impression-level ad revenue information to your
    // preferred analytics server directly within this callback.

    AdValue adValue = args.AdValue;
    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&ltstring, string> credentials = loadedAdapterResponseInfo.AdUnitMapping;

    Dictionary&ltstring, 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)との連携

広告収益データを分析プラットフォームに転送する方法について詳しくは、各パートナーのガイドをご覧ください。

パートナー SDK
Adjust
AppsFlyer
Singular
Tenjin

実装のヒント

  • 広告オブジェクトを作成または取得したら、広告を表示する前に、すぐに OnPaidEvent イベントを設定します。これにより、コールバックを逃すことがなくなります。
  • OnPaidEvent ハンドラで任意の分析サーバーにインプレッション単位の広告収益情報をすぐに送信します。これにより、誤ってコールバックを逃すことがなくなり、データの不一致を回避できます。

AdValue

AdValue は、広告で得られた金銭的価値を表すクラスで、その金銭的価値の通貨コードと、以下に示すエンコードされた精度タイプが含まれます。

AdValue.PrecisionType 説明
Unknown 広告の価値が不明。LTV Pingback が有効になっていても、十分なデータがない場合に返されます。
Estimated 集計データから推定された広告の価値。
PublisherProvided パブリッシャーが指定した広告の価値(メディエーション グループ内の手動 CPM など)。
Precise この広告の正確な価値。

メディエーションの場合、アド マネージャーは自動データ収集が有効になっている広告ソースの ESTIMATED 値を提供しようとします。詳しくは、自動データ収集をご覧ください。自動データ収集が有効になっていない広告ソースの場合や、意味のある推計を得るのに十分な集計データがない場合は、PUBLISHER_PROVIDED 値が返されます。

Open Bidding からのテスト インプレッション

テスト リクエストを通じて Open Bidding の広告ソースでインプレッション単位の広告収益イベントが発生すると、次の値のみが返されます。

  • Unknown: 精度タイプを示します。
  • 0: 広告の価値を示します。

以前は、精度タイプが Unknown 以外の値として表示され、広告の価値が 0 より大きい値となることがありました。

テスト広告リクエストの送信について詳しくは、テストデバイスを有効にするをご覧ください。