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