عند تسجيل مرّة ظهور، يقدّم GMA Next-Gen SDK بيانات إيرادات الإعلانات المرتبطة بمرّة الظهور هذه. يمكنك استخدام البيانات لاحتساب القيمة الدائمة للمستخدم، أو إعادة توجيه البيانات إلى الأنظمة الأخرى ذات الصلة.
يهدف هذا الدليل إلى مساعدتك في تنفيذ عملية جمع بيانات إيرادات الإعلانات على مستوى مرّة الظهور في تطبيق Android.
المتطلبات الأساسية
- تأكَّد من تفعيل ميزة "إيرادات الإعلانات على مستوى مرّة الظهور" في واجهة مستخدم AdMob.
- إعداد GMA Next-Gen SDK
قبل أن تتمكّن من تلقّي أي إيرادات إعلانات على مستوى مرّة الظهور، عليك تنفيذ شكل إعلان واحد على الأقل:
معالج الأحداث المدفوعة
يتضمّن كل شكل إعلان معاودة الاتصال بالحدث
onAdPaid.
أثناء مراحل نشاط حدث الإعلان، GMA Next-Gen SDK ترصد أحداث مرّات الظهور وتستدعي المعالج بقيمة محقّقة.
يعالج المثال التالي الأحداث المدفوعة لإعلان مقابل مكافأة:
Kotlin
ad.adEventCallback =
object : RewardedAdEventCallback {
override fun onAdPaid(adValue: AdValue) {
// Send the impression-level ad revenue information to your
// preferred analytics server directly within this callback.
// Extract the impression-level ad revenue data.
val valueMicros = adValue.valueMicros
val currencyCode = adValue.currencyCode
val precisionType = adValue.precisionType
val loadedAdSourceResponseInfo = ad.getResponseInfo().loadedAdSourceResponseInfo
val adSourceName = loadedAdSourceResponseInfo?.name
val adSourceId = loadedAdSourceResponseInfo?.id
val adSourceInstanceName = loadedAdSourceResponseInfo?.instanceName
val adSourceInstanceId = loadedAdSourceResponseInfo?.instanceId
val extras = ad.getResponseInfo().responseExtras
val mediationGroupName = extras.getString("mediation_group_name")
val mediationABTestName = extras.getString("mediation_ab_test_name")
val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
}
}
جافا
ad.setAdEventCallback(
new RewardedAdEventCallback() {
@Override
public void onAdPaid(@NonNull AdValue value) {
// Send the impression-level ad revenue information to your preferred
// analytics server directly within this callback.
// Extract the impression-level ad revenue data.
long valueMicros = value.getValueMicros();
String currencyCode = value.getCurrencyCode();
PrecisionType precisionType = value.getPrecisionType();
AdSourceResponseInfo loadedAdSourceResponseInfo =
ad.getResponseInfo().getLoadedAdSourceResponseInfo();
String adSourceName = loadedAdSourceResponseInfo.getName();
String adSourceId = loadedAdSourceResponseInfo.getId();
String adSourceInstanceName = loadedAdSourceResponseInfo.getInstanceName();
String adSourceInstanceId = loadedAdSourceResponseInfo.getInstanceId();
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");
}
});
تحديد اسم مصدر إعلان حدث مخصّص
بالنسبة إلى مصادر إعلانات الأحداث المخصّصة، تعرض السمة AdSourceResponseInfo.name اسم مصدر الإعلان Custom event. إذا كنت تستخدم أحداثًا مخصّصة متعددة، لن يكون اسم مصدر الإعلان دقيقًا بما يكفي للتمييز بين الأحداث المخصّصة المتعددة. للعثور على حدث مخصّص معيّن، اتّبِع الخطوات التالية:
- احصل على السمة
AdSourceResponseInfo.name. - اضبط اسمًا فريدًا لمصدر الإعلان.
يضبط المثال التالي اسمًا فريدًا لمصدر إعلان حدث مخصّص:
Kotlin
private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdSourceResponseInfo): String {
var adSourceName = loadedAdapterResponseInfo.name
if (adSourceName == "Custom Event") {
if (
loadedAdapterResponseInfo.adapterClassName ==
"com.google.ads.mediation.sample.customevent.SampleCustomEvent"
) {
adSourceName = "Sample Ad Network (Custom Event)"
}
}
return adSourceName
}جافا
private String getUniqueAdSourceName(@NonNull AdSourceResponseInfo loadedAdapterResponseInfo) {
String adSourceName = loadedAdapterResponseInfo.getName();
if (adSourceName.equals("Custom Event")) {
if (loadedAdapterResponseInfo
.getAdapterClassName()
.equals("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.
لمعرفة تفاصيل حول إرسال طلب عرض إعلان اختباري، راجِع مقالة تفعيل الأجهزة الاختبارية.