وقتی ظهوری رخ میدهد، Google Mobile Ads SDK (Legacy) دادههای درآمد آگهی مرتبط با آن ظهور را ارائه میدهد. میتوانید از دادهها برای محاسبه مقدار طول عمر کاربر استفاده کنید، یا دادهها را به سیستمهای مرتبط دیگر ارسال کنید.
این راهنما برای کمک به شما در پیادهسازی دادههای درآمد آگهی سطح ظهور در برنامه Android شما طراحی شده است.
پیشنیازها
- مطمئن شوید که ویژگی درآمد آگهی سطح ظهور را در واسط کاربر Ad Manager روشن کرده باشید.
- Import Google Mobile Ads SDK (Legacy) نسخه ۲۱.۱.۰ یا بالاتر.
- Google Mobile Ads SDK (Legacy) را راهاندازی کنید.
قبلاز اینکه بتوانید درآمد آگهی سطح ظهور دریافت کنید، باید حداقل یک قالب آگهی را پیادهسازی کنید:
مدیریتکننده رویداد پولی
هر قالب آگهی
OnPaidEventListener دارد.
درطول چرخه عمر رویداد آگهی، Google Mobile Ads SDK (Legacy) رویدادهای ظهور را پایش میکند و کارپرداز را با مقدار کسبشده فرا میخواند.
مثال زیر رویدادهای پولی را برای آگهی پاداشدار مدیریت میکند:
جاوا
private void setOnPaidEventListener(RewardedAd ad) {
ad.setOnPaidEventListener(
new OnPaidEventListener() {
@Override
public void onPaidEvent(@NonNull AdValue adValue) {
// Extract the impression-level ad revenue data.
long valueMicros = adValue.getValueMicros();
String currencyCode = adValue.getCurrencyCode();
int precision = adValue.getPrecisionType();
// Get the ad unit ID.
String adUnitId = ad.getAdUnitId();
// Extract ad response information.
AdapterResponseInfo loadedAdapterResponseInfo =
ad.getResponseInfo().getLoadedAdapterResponseInfo();
if (loadedAdapterResponseInfo != null) {
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();
Bundle extras = ad.getResponseInfo().getResponseExtras();
String mediationGroupName = extras.getString("mediation_group_name");
String mediationABTestName = extras.getString("mediation_ab_test_name");
String mediationABTestVariant = extras.getString("mediation_ab_test_variant");
}
}
});
}Kotlin
private fun setOnPaidEventListener(ad: RewardedAd) {
ad.onPaidEventListener = OnPaidEventListener { adValue ->
// Extract the impression-level ad revenue data.
val valueMicros = adValue.valueMicros
val currencyCode = adValue.currencyCode
val precision = adValue.precisionType
// Get the ad unit ID.
val adUnitId = ad.adUnitId
// Extract ad response information.
val loadedAdapterResponseInfo = ad.responseInfo.loadedAdapterResponseInfo
val adSourceName = loadedAdapterResponseInfo?.adSourceName
val adSourceId = loadedAdapterResponseInfo?.adSourceId
val adSourceInstanceName = loadedAdapterResponseInfo?.adSourceInstanceName
val adSourceInstanceId = loadedAdapterResponseInfo?.adSourceInstanceId
val extras = ad.responseInfo.responseExtras
val mediationGroupName = extras.getString("mediation_group_name")
val mediationABTestName = extras.getString("mediation_ab_test_name")
val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
}
}نام منبع آگهی رویداد سفارشی را شناسایی کنید
برای منابع آگهی رویداد سفارشی، روش getAdSourceName() نام منبع آگهی Custom event را برمیگرداند. اگر از چندین رویداد سفارشی استفاده میکنید، نام منبع آگهی بهاندازه کافی جزئی نیست تا بین چندین رویداد سفارشی تمایز قائل شود. برای پیدا کردن رویداد سفارشی خاص، این کارها را انجام دهید:
- روش
getAdSourceName()را فراخوانی کنید. - نام منحصربهفردی برای منبع آگهی تنظیم کنید.
مثال زیر نام منحصربهفردی برای منبع آگهی رویداد سفارشی تنظیم میکند:
جاوا
private String getUniqueAdSourceName(@NonNull AdapterResponseInfo loadedAdapterResponseInfo) {
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
if (adSourceName.equals("Custom Event")) {
if (loadedAdapterResponseInfo
.getAdapterClassName()
.equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
adSourceName = "Sample Ad Network (Custom Event)";
}
}
return adSourceName;
}
Kotlin
private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdapterResponseInfo): String {
var adSourceName = loadedAdapterResponseInfo.adSourceName
if (adSourceName == "Custom Event") {
if (
loadedAdapterResponseInfo.adapterClassName ==
"com.google.ads.mediation.sample.customevent.SampleCustomEvent"
) {
adSourceName = "Sample Ad Network (Custom Event)"
}
}
return adSourceName
}
برای اطلاعات بیشتر درباره منبع آگهی برنده، به بازیابی اطلاعات درباره پاسخ آگهی مراجعه کنید.
روالهای مطلوب پیادهسازی
- شنونده را بلافاصله پساز ایجاد یا دسترسی به شیء آگهی تنظیم کنید، و قطعاً قبلاز نمایش آگهی. این کار تضمین میکند که هیچیک از بازخوانهای رویداد پولی را ازدست ندهید.
- اطلاعات درآمد آگهی سطح ظهور را بلافاصله در زمان فراخوانی برگشت رویداد پولی به سرور Analytics ترجیحیتان ارسال کنید. این کار باعث میشود که بهطور تصادفی هیچکدام از تماسهای برگشتی را ازدست ندهید و از اختلاف دادهها جلوگیری میکند.
AdValue
AdValue کلاسی است که نشاندهنده مقدار پولی کسبشده برای آگهی است،
ازجمله کد واحد پول مقدار و نوع دقت آن که بهصورت زیر کدبندی شده است.
| PrecisionType | شرح |
|---|---|
UNKNOWN |
مقدار آگهی که ناشناخته است. وقتی که برگشتی پینگ LTV فعال باشد اما دادههای کافی دردسترس نباشد، این مقدار برگردانده میشود. |
ESTIMATED |
مقدار آگهی تخمینی از دادههای تجمیعی. |
PUBLISHER_PROVIDED |
مقدار آگهی ارائهشده توسط ناشر، مانند هزارظهوربهای دستی در گروه واسطهگری. |
PRECISE |
مقدار دقیق پرداختشده برای این آگهی. |
در مورد میانجیگری، Ad Manager تلاش میکند
برای منابع آگهی که
جمعآوری خودکار دادهها
را فعال کردهاند، مقدار ESTIMATED ارائه دهد.
برای منابع آگهی بهینهسازینشده، یا در مواردی که دادههای انبوهسازیشده کافی برای گزارش تخمین معنادار وجود ندارد، مقدار PUBLISHER_PROVIDED برگردانده میشود.
ظهورهای آزمایشی از «پیشنهاد قیمت باز»
پساز اینکه رویداد درآمد آگهی سطح ظهور برای منبع آگهی «پیشنهاد قیمت باز» ازطریق درخواست آزمایش رخ داد، فقط مقادیر زیر را دریافت میکنید:
-
UNKNOWN: نوع دقت را نشان میدهد.
-
0: نشاندهنده مقدار آگهی است.
UNKNOWN و مقدار آگهی را بیشتر از 0 دیده باشید.
برای جزئیات ارسال درخواست آگهی آزمایشی، به فعال کردن دستگاههای آزمایشی مراجعه کنید.