عند حدوث مرة ظهور، توفِّر حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة بيانات أرباح الإعلانات المرتبطة بمرّة الظهور هذه. يمكنك استخدام البيانات لحساب القيمة الدائمة للمستخدم، أو إعادة توجيه عملية تنزيل البيانات إلى أنظمة أخرى ذات صلة.
ويهدف هذا الدليل إلى مساعدتك في تنفيذ عملية تسجيل بيانات أرباح الإعلانات على مستوى مرات الظهور في تطبيق Android.
المتطلبات الأساسية
- تأكّد من تفعيل ميزة أرباح الإعلانات على مستوى مرّات الظهور في واجهة مستخدم AdMob.
- عليك استيراد الإصدار 21.1.0 أو إصدار أحدث من حزمة "SDK لإعلانات Google على الأجهزة الجوّالة".
- أكمِل دليل البدء.
قبل أن تتمكّن من تلقّي أي أرباح إعلانات على مستوى مرّات الظهور، يجب تنفيذ شكل إعلان واحد على الأقل:
معالِج الأحداث المدفوعة
يتضمّن كل شكل إعلان OnPaidEventListener
. خلال دورة حياة حدث الإعلان، ترصد حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة أحداث الظهور وتستدعي المعالج بقيمة مكتسبة.
ويوضّح الرمز أدناه كيفية التعامل مع الأحداث المدفوعة للإعلان الذي يضم مكافأة:
Java
import com.google.android.gms.ads.rewarded.RewardedAd;
public class MainActivity extends Activity {
private RewardedAd rewardedAd;
private final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
AdRequest adRequest = new AdRequest.Builder().build();
RewardedAd.load(this, "AD_UNIT_ID",
adRequest, new RewardedAdLoadCallback(){
@Override
public void onAdLoaded(@NonNull RewardedAd ad) {
rewardedAd = ad;
// Set paid event listener
rewardedAd.setOnPaidEventListener(new OnPaidEventListener() {
@Override
public void onPaidEvent(AdValue adValue) {
// TODO: 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 = adValue.getValueMicros();
String currencyCode = adValue.getCurrencyCode();
int precision = adValue.getPrecisionType();
// Get the ad unit ID.
String adUnitId = rewardedAd.getAdUnitId();
AdapterResponseInfo loadedAdapterResponseInfo = rewardedAd.getResponseInfo().
getLoadedAdapterResponseInfo();
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();
Bundle extras = rewardedAd.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
import com.google.android.gms.ads.rewarded.RewardedAd
class MainActivity : AppCompatActivity() {
private var rewardedAd: RewardedAd? = null
private final var TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
AdRequest adRequest = new AdRequest.Builder().build()
RewardedAd.load(this, "AD_UNIT_ID",
adRequest, object: RewardedAdLoadCallback() {
override fun onAdLoaded(ad: RewardedAd) {
rewardedAd = ad
// Set paid event listener
rewardedAd.onPaidEventListener = OnPaidEventListener { adValue ->
// TODO: 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 precision = adValue.precisionType
// Get the ad unit ID.
val adUnitId = rewardedAd.adUnitId
val loadedAdapterResponseInfo = rewardedAd.responseInfo.loadedAdapterResponse
val adSourceName = loadedAdapterResponseInfo.adSourceName
val adSourceId = loadedAdapterResponseInfo.adSourceId
val adSourceInstanceName = loadedAdapterResponseInfo.adSourceInstanceName
val adSourceInstanceId = loadedAdapterResponseInfo.adSourceInstanceId
val extras = rewardedAd.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")
}
}
})
}
}
للاطّلاع على مزيد من المعلومات عن مصدر الإعلان الفائز، يُرجى الاطّلاع على استرداد المعلومات عن استجابة الإعلان.
دمج شركاء إحالة التطبيقات (AAP)
للاطّلاع على التفاصيل الكاملة حول إعادة توجيه بيانات أرباح الإعلانات إلى منصات الإحصاءات، يُرجى مراجعة دليل الشريك:
حزمة تطوير البرامج (SDK) للشريك |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
أفضل ممارسات التنفيذ
- يمكنك ضبط أداة معالجة الحدث على الفور بعد إنشاء عنصر الإعلان أو الوصول إليه، وبالتأكيد قبل عرض الإعلان. يضمن ذلك عدم تفويت أي استدعاءات لحدث مدفوع.
- أرسِل معلومات أرباح الإعلانات على مستوى مرات الظهور إلى خادم الإحصاءات المفضّل لديك مباشرةً عند استدعاء طريقة
onPaidEvent()
. يضمن ذلك عدم إسقاط أي طلبات عن طريق الخطأ ويتجنب أي تناقضات في البيانات.
AdValue
AdValue
هي فئة تمثّل القيمة النقدية المكتسَبة من أحد الإعلانات، بما في ذلك رمز عملة القيمة ونوع الدقة الذي تم ترميزه على النحو التالي.
PrecisionType | الوصف |
---|---|
UNKNOWN |
قيمة إعلان غير معروفة. ويتم عرضه عندما تكون إشارة قياس ظهور الإعلان للقيمة الدائمة مفعَّلة ولكن لا تتوفّر بيانات كافية. |
ESTIMATED |
قيمة إعلان مقدّرة من البيانات المجمّعة. |
PUBLISHER_PROVIDED |
قيمة الإعلان المقدَّمة من الناشر، مثل التكلفة اليدوية لكل ألف ظهور في مجموعة توسّط. |
PRECISE |
القيمة الدقيقة التي تم دفعها لهذا الإعلان. |
في حال التوسّط، AdMob يحاول تقديم قيمة ESTIMATED
لمصادر الإعلانات التي تكونمحسّنة.
بالنسبة إلى مصادر الإعلانات غير المحسَّنة، أو في الحالات التي لا تتوفّر فيها بيانات مجمّعة كافية للإبلاغ عن تقدير مفيد، يتم عرض قيمة PUBLISHER_PROVIDED
.