如有曝光,Google Mobile Ads SDK 將提供與該曝光相關的廣告收益資料。您可以運用這項資料,計算使用者的生命週期價值,或將資料往下游轉送至其他相關系統。
本指南可協助您導入整合,在 Unity 專案中擷取曝光層級廣告收益資料。
必備條件
- 務必先在 AdMob UI 啟用曝光層級廣告收益功能。
- Unity 外掛程式 5.0.0 以上版本。
- 完成入門指南步驟。Unity 應用程式應已匯入 Google Mobile Ads Unity 外掛程式。
您須先導入至少一種廣告格式,才能接收曝光層級廣告收益資料:
導入付費事件處理常式
每種廣告格式都有 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"];
}
找出自訂事件廣告來源名稱
針對自訂事件廣告來源,AdSourceName
屬性會傳回廣告來源名稱 Custom Event
。如果有多個自訂事件,廣告來源名稱將不足以細分這些事件,因此請完成下列步驟,找出特定自訂事件:
- 取得
AdapterClassName
屬性。 - 設定專屬的廣告來源名稱。
以下示範如何設定自訂事件的專屬廣告來源名稱:
private string GetAdSourceName(AdapterResponseInfo loadedAdapterResponseInfo)
{
if (loadedAdapterResponseInfo == null)
{
return string.Empty;
}
string adSourceName = loadedAdapterResponseInfo.AdSourceName;
if (adSourceName == "Custom Event")
{
#if UNITY_ANDROID
if (loadedAdapterResponseInfo.AdapterClassName ==
"com.google.ads.mediation.sample.customevent.SampleCustomEvent")
{
adSourceName = "Sample Ad Network (Custom Event)";
}
#elif UNITY_IPHONE
if (loadedAdapterResponseInfo.AdapterClassName == "SampleCustomEvent")
{
adSourceName = "Sample Ad Network (Custom Event)";
}
#endif
}
return adSourceName;
}
請參閱「擷取廣告回應的相關資訊」,進一步瞭解勝出的廣告來源。
與應用程式歸因合作夥伴 (AAP) 整合
如需完整資訊,瞭解如何將廣告收益資料轉送至數據分析平台,請參閱合作夥伴指南:
合作夥伴 SDK |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
導入最佳做法
- 建立或取得廣告物件後,立即設定
OnPaidEvent
事件,且務必在顯示廣告前完成,以免錯過任何回呼。 - 在
OnPaidEvent
處理常式中,立即將曝光層級廣告收益資訊傳送至偏好的數據分析伺服器,避免不小心錯過任何回呼,或造成資料不一致。
AdValue
AdValue
類別代表廣告賺取的金額價值,包含貨幣代碼和精確度型別,編碼方式如下。
AdValue.PrecisionType |
說明 |
---|---|
Unknown |
廣告價值不明。如已啟用生命週期價值 (LTV) 自動參照通知,但資料不足,系統就會傳回此值。 |
Estimated |
根據匯總資料預估的廣告價值。 |
PublisherProvided |
由發布商提供的廣告價值,例如中介服務群組中的手動千次曝光出價。 |
Precise |
這則廣告的精確價值。 |
如果是中介服務,AdMob 會嘗試針對最佳化的廣告來源提供 Estimated
值。如果廣告來源未最佳化,或匯總資料不足以計算出有意義的預估值,系統將傳回 PublisherProvided
值。
測試出價廣告來源的曝光
送出測試請求,觸發出價廣告來源的曝光層級廣告收益事件之後,您只會收到下列值:
Unknown
:表示精確度類型。
0
:表示廣告價值。
先前,您看到的精確度類型值可能不是 Unknown
,且廣告價值大於 0
。
請參閱「啟用測試裝置」,進一步瞭解如何傳送測試廣告請求。