عند تسجيل مرّة ظهور، يوفّر Google Mobile Ads SDK (Legacy) بيانات إيرادات الإعلانات المرتبطة بمرّة الظهور هذه. يمكنك استخدام البيانات لاحتساب القيمة الدائمة للمستخدم أو إعادة توجيه البيانات إلى أنظمة أخرى ذات صلة.
يهدف هذا الدليل إلى مساعدتك في تسجيل بيانات إيرادات الإعلان على مستوى مرّة الظهور في تطبيق Android.
المتطلبات الأساسية
- تأكَّد من تفعيل ميزة "إيرادات الإعلان على مستوى مرة الظهور" في واجهة مستخدم AdMob.
- استورِد الإصدار 21.1.0 أو إصدارًا أحدث من 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
}
لمزيد من المعلومات عن مصدر الإعلان الفائز، يُرجى الاطّلاع على مقالة استرداد معلومات عن استجابة الإعلان.
الدمج مع شركاء قياس أداء التطبيقات (AAP)
للحصول على تفاصيل كاملة حول إعادة توجيه بيانات إيرادات الإعلانات إلى منصات الإحصاءات، يُرجى الرجوع إلى دليل الشريك:
| حزمة تطوير البرامج (SDK) للشركاء |
|---|
| Adjust |
| AppsFlyer |
| Singular |
| Tenjin |
أفضل الممارسات المرتبطة بالتنفيذ
- يجب ضبط المستمع فور إنشاء عنصر الإعلان أو الوصول إليه، وقبل عرض الإعلان بالتأكيد. يضمن ذلك عدم تفويت أي عمليات استدعاء لأحداث مدفوعة.
- أرسِل معلومات إيرادات الإعلان على مستوى مرّة الظهور إلى خادم الإحصاءات المفضّل لديك فورًا عند استدعاء دالة الاستدعاء للحدث المدفوع. يضمن ذلك عدم إسقاط أي عمليات استدعاء عن طريق الخطأ وتجنُّب التناقضات في البيانات.
AdValue
AdValue هي فئة تمثّل القيمة المالية المكتسبة من إعلان،
بما في ذلك رمز عملة القيمة وتصنيف دقة القيمة المرمّز على النحو التالي.
| PrecisionType | الوصف |
|---|---|
UNKNOWN |
قيمة إعلان غير معروفة يتم عرض هذه الحالة عند تفعيل إشارة قياس ظهور الإعلان للقيمة الدائمة، ولكن لا تتوفّر بيانات كافية. |
ESTIMATED |
هي قيمة إعلان مقدّرة من بيانات مجمّعة. |
PUBLISHER_PROVIDED |
قيمة إعلان يقدّمها الناشر، مثل التكلفة اليدوية لكل ألف ظهور في مجموعة توسّط |
PRECISE |
هي القيمة الدقيقة المدفوعة مقابل عرض هذا الإعلان. |
في حال استخدام ميزة "توسّط AdMob"، يحاول AdMob
تقديم قيمة ESTIMATED لمصادر الإعلانات
المحسّنة.
بالنسبة إلى مصادر الإعلانات غير المحسّنة، أو في الحالات التي لا تتوفّر فيها بيانات مجمّعة كافية لتقديم تقدير مفيد، يتم عرض القيمة PUBLISHER_PROVIDED.
اختبار مرّات الظهور من مصادر الإعلانات المستندة إلى عروض الأسعار
بعد تسجيل حدث مرتبط بإيرادات الإعلان على مستوى مرّة الظهور لمصدر إعلان مستند إلى عروض الأسعار من خلال طلب اختباري، ستتلقّى القيم التالية فقط:
-
UNKNOWN: يشير إلى تصنيف دقة القيمة.
0: يشير إلى قيمة الإعلان.
UNKNOWN وقيمة إعلان أكبر من 0.
للاطّلاع على التفاصيل حول إرسال طلب عرض إعلان اختباري، يُرجى الاطّلاع على مقالة تفعيل الأجهزة الاختبارية.