وقتی یک نمایش (impression) رخ میدهد، SDK تبلیغات موبایلی گوگل، دادههای درآمد تبلیغاتی مرتبط با آن نمایش را ارائه میدهد. میتوانید از این دادهها برای محاسبه ارزش طول عمر کاربر استفاده کنید یا دادهها را به سایر سیستمهای مرتبط ارسال کنید.
این راهنما برای کمک به شما در پیادهسازی جمعآوری دادههای درآمد تبلیغات در سطح نمایش در برنامه اندروید شما در نظر گرفته شده است.
پیشنیازها
- کیت توسعه نرمافزاری تبلیغات موبایلی گوگل (SDK) نسخه ۲۱.۱.۰ یا بالاتر را وارد کنید.
- راهنمای شروع به کار را تکمیل کنید.
قبل از اینکه بتوانید درآمد تبلیغاتی در سطح نمایش (impression-level) دریافت کنید، باید حداقل یک فرمت تبلیغاتی را پیادهسازی کنید:
کنترلکننده رویداد پولی
هر قالب تبلیغاتی یک OnPaidEventListener دارد. در طول چرخه حیات یک رویداد تبلیغاتی، SDK تبلیغات موبایلی گوگل، رویدادهای نمایش را رصد میکند و با یک مقدار کسبشده، کنترلکننده را فراخوانی میکند.
مثال زیر رویدادهای پولی را برای یک تبلیغ جایزهدار مدیریت میکند:
جاوا
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");
}
}
});
}کاتلین
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;
}
کاتلین
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
}
برای اطلاعات بیشتر در مورد منبع تبلیغ برنده، به بازیابی اطلاعات در مورد پاسخ تبلیغ مراجعه کنید.
بهترین شیوههای پیادهسازی
- بلافاصله پس از ایجاد یا دسترسی به شیء تبلیغ، و قطعاً قبل از نمایش تبلیغ، شنونده را تنظیم کنید. این کار تضمین میکند که هیچ فراخوانی رویداد پولی را از دست ندهید.
- اطلاعات درآمد حاصل از تبلیغات در سطح نمایش را بلافاصله در زمان فراخوانی رویداد پولی به سرور تحلیلی دلخواه خود ارسال کنید. این کار تضمین میکند که هیچ فراخوانی را به طور تصادفی از دست ندهید و از اختلافات دادهها جلوگیری کنید.
ارزش تبلیغات
AdValue کلاسی است که ارزش پولی کسب شده برای یک تبلیغ را نشان میدهد، که شامل کد ارزی آن ارزش و نوع دقیق آن است که به شرح زیر کدگذاری شده است.
| نوع دقیق | توضیحات |
|---|---|
UNKNOWN | مقدار تبلیغی که ناشناخته است. این مقدار زمانی برگردانده میشود که پینگبک LTV فعال باشد اما دادههای کافی در دسترس نباشد. |
ESTIMATED | ارزش تبلیغی که از دادههای جمعآوریشده تخمین زده میشود. |
PUBLISHER_PROVIDED | یک ناشر، ارزش تبلیغاتی، مانند CPM های دستی را در یک گروه واسطه ارائه داد. |
PRECISE | ارزش دقیق پرداخت شده برای این تبلیغ. |
در مورد میانجیگری، Ad Manager سعی میکند برای منابع تبلیغاتی که جمعآوری خودکار دادهها در آنها فعال است، یک مقدار ESTIMATED ارائه دهد. برای منابع تبلیغاتی بهینهسازی نشده، یا در مواردی که دادههای تجمیعشده کافی برای گزارش یک تخمین معنادار وجود ندارد، مقدار PUBLISHER_PROVIDED بازگردانده میشود.
برداشتهای آزمایشی از پیشنهاد قیمت باز
پس از اینکه رویداد درآمد تبلیغاتی در سطح نمایش برای یک منبع تبلیغاتی با پیشنهاد قیمت باز از طریق یک درخواست آزمایشی رخ داد، شما فقط مقادیر زیر را دریافت میکنید:
-
UNKNOWN: نوع دقت را نشان میدهد.
-
0: نشاندهنده ارزش تبلیغ است.
پیش از این، ممکن است نوع دقت را به عنوان مقداری غیر از UNKNOWN و مقدار ad را بیشتر از 0 دیده باشید.
برای جزئیات بیشتر در مورد ارسال درخواست تبلیغ آزمایشی، به فعال کردن دستگاههای آزمایشی مراجعه کنید.