أرباح الإعلانات على مستوى مرّات الظهور

عند حدوث مرة ظهور، توفِّر حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة بيانات أرباح الإعلانات المرتبطة بمرّة الظهور هذه. يمكنك استخدام البيانات لحساب القيمة الدائمة للمستخدم، أو إعادة توجيه عملية تنزيل البيانات إلى أنظمة أخرى ذات صلة.

ويهدف هذا الدليل إلى مساعدتك في تنفيذ عملية تسجيل بيانات أرباح الإعلانات على مستوى مرات الظهور في تطبيق Android.

المتطلبات الأساسية

يتضمّن كل شكل إعلان 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.