インプレッション レベルの広告収益
インプレッションが発生すると、Godot AdMob プラグインはそのインプレッションに関連付けられた広告収益データを提供します。このデータを使用して、ユーザーの生涯価値(LTV)を計算したり、他の関連システムにデータを転送したりできます。
このガイドは、Godot プロジェクトでインプレッション レベルの広告収益データの取得を実装するのに役立ちます。
前提条件
- AdMob UI でインプレッション レベルの広告収益機能をオンにしていることを確認してください。
- スタートガイドを完了していること。Godot プロジェクトに Poing Studios AdMob プラグインがすでにインポートおよび構成されている必要があります。
- インプレッション レベルの広告収益データを受信するには、少なくとも 1 つの広告フォーマットを実装する必要があります。
支払われたイベントハンドラ(Paid Event Handler)の実装
各広告フォーマットには、on_ad_paid(C# では OnAdPaid)イベントがあります。広告イベントのライフサイクル中に、Godot AdMob プラグインはインプレッション イベントを監視し、獲得した価値を表す AdValue を使用してハンドラを呼び出します。この値の精度タイプは AdValue.PrecisionType によって定義されます。
以下の例は、リワード広告の支払われたイベントを処理します。
var _rewarded_ad: RewardedAd
func _load_rewarded_ad() -> void:
# 広告をロードするためのリクエストを送信します。
var ad_request := AdRequest.new()
RewardedAdLoader.new().load("AD_UNIT_ID", ad_request, func(rewarded_ad: RewardedAd, error: LoadAdError):
# 操作が何らかの理由で失敗した場合。
if error != null:
push_error("Rewarded ad failed to load an ad with error: %s" % error.message)
return
_rewarded_ad = rewarded_ad
_rewarded_ad.on_ad_paid = _handle_ad_paid_event
)
func _handle_ad_paid_event(ad_value: AdValue) -> void:
# TODO: このコールバック内で、インプレッション レベルの広告収益情報を
# お好みの分析サーバーに直接送信します。
var value_micros: int = ad_value.value_micros
var currency: String = ad_value.currency_code
var precision := ad_value.precision # (AdValue.PrecisionType)
var response_info: ResponseInfo = _rewarded_ad.get_response_info()
var response_id: String = response_info.response_id
var loaded_adapter_response_info: AdapterResponseInfo = response_info.loaded_adapter_response_info
if loaded_adapter_response_info:
var ad_source_id: String = loaded_adapter_response_info.ad_source_id
var ad_source_instance_id: String = loaded_adapter_response_info.ad_source_instance_id
var ad_source_instance_name: String = loaded_adapter_response_info.ad_source_instance_name
var ad_source_name: String = loaded_adapter_response_info.ad_source_name
var adapter_class_name: String = loaded_adapter_response_info.adapter_class_name
var latency_millis: int = loaded_adapter_response_info.latency_millis
var credentials: Dictionary = loaded_adapter_response_info.ad_unit_mapping
var extras: Dictionary = response_info.response_extras
var mediation_group_name = extras.get("mediation_group_name", "")
var mediation_ab_test_name = extras.get("mediation_ab_test_name", "")
var mediation_ab_test_variant = extras.get("mediation_ab_test_variant", "")
カスタム イベントの広告ソース名の特定
カスタム イベントの広告ソースの場合、ad_source_name(AdSourceName)プロパティは広告ソース名「Custom Event」を返します。複数のカスタム イベントを使用する場合、この広告ソース名だけでは複数のカスタム イベントを区別するのに十分ではありません。特定のカスタム イベントを特定するには、以下の手順を実行します。
adapter_class_name(AdapterClassName)プロパティを取得します。- 一意の広告ソース名を設定します。
以下の例は、カスタム イベントに対して一意の広告ソース名を設定する方法を示しています。
func _get_ad_source_name(loaded_adapter_response_info: AdapterResponseInfo) -> String:
if loaded_adapter_response_info == null:
return ""
var ad_source_name: String = loaded_adapter_response_info.ad_source_name
if ad_source_name == "Custom Event":
var adapter_class_name: String = loaded_adapter_response_info.adapter_class_name
if OS.get_name() == "Android":
if adapter_class_name == "com.google.ads.mediation.sample.customevent.SampleCustomEvent":
ad_source_name = "Sample Ad Network (Custom Event)"
elif OS.get_name() == "iOS":
if adapter_class_name == "SampleCustomEvent":
ad_source_name = "Sample Ad Network (Custom Event)"
return ad_source_name
落札した広告ソースの詳細については、広告レスポンスに関する情報の取得を参照してください。
アプリ属性パートナー (AAP) との統合
広告収益データを分析プラットフォームに転送する方法の詳細については、各パートナーのガイドを参照してください。
実装のベストプラクティス
- 広告オブジェクトを作成またはアクセスできたら、すぐに、かつ広告を表示する前に
on_ad_paid(OnAdPaid)イベントを設定してください。これにより、コールバックの漏れを防ぐことができます。 on_ad_paidハンドラ内で、インプレッション レベルの広告収益情報を直ちにお好みの分析サーバーに送信してください。これにより、コールバックの偶発的なドロップを防ぎ、データの不一致を回避できます。
AdValue
キーポイント
AdValue の値は、各広告の価値を表すマイクロ値(Micro Value)です。たとえば、値が 5,000 の場合、その広告の推定価値は $0.005 であることを示します。
AdValue.PrecisionType |
説明 |
|---|---|
UNKNOWN |
精度が不明な広告値。 |
ESTIMATED |
集計データから推定された広告値。 |
PUBLISHER_PROVIDED |
メディエーション グループ内の手動 CPM など、パブリッシャーから提供された広告値。 |
PRECISE |
この広告に対して支払われた正確な値。 |
メディエーションの場合、AdMob は最適化された広告ソースに対して ESTIMATED 値を提供しようとします。最適化されていない広告ソースや、有意義な推定値を報告するのに十分な集計データがない場合は、PUBLISHER_PROVIDED 値が返されます。
入札広告ソースからのテストインプレッション
テストリクエストを介して入札広告ソースのインプレッション レベル広告収益イベントが発生した場合、次の値のみを受け取ります。
UNKNOWN: 精度タイプを示します。0: 広告値を示します。
以前は、精度タイプが UNKNOWN 以外の値として表示され、広告値が 0 より大きい値として表示されていた場合があります。
テスト広告リクエストの送信に関する詳細については、テストデバイスの有効化を参照してください。