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