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