درآمد آگهی سطح ظهور

وقتی ظهوری رخ می‌دهد، GMA Next-Gen SDK داده‌های درآمد آگهی مربوط به آن ظهور را ارائه می‌دهد. می‌توانید از این داده‌ها برای محاسبه ارزش طول عمر کاربر استفاده کنید یا داده‌ها را به سیستم‌های مرتبط دیگر ارسال کنید.

این راهنما برای کمک به شما در پیاده‌سازی ضبط داده‌های درآمد آگهی در سطح ظهور در برنامه Android شما طراحی شده است.

پیش‌نیازها

هر قالب آگهی دارای یک onAdPaid فراخوانی رویداد است. درطول چرخه حیات رویداد آگهی، GMA Next-Gen SDK رویدادهای ظهور را پایش می‌کند و گرداننده را با مقدار کسب‌شده فراخوانی می‌کند.

مثال زیر رویدادهای پولی را برای آگهی پاداش‌دار مدیریت می‌کند:

Kotlin

ad.adEventCallback =
  object : RewardedAdEventCallback {
    override fun onAdPaid(adValue: AdValue) {
      // 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 precisionType = adValue.precisionType

      val loadedAdSourceResponseInfo = ad.getResponseInfo().loadedAdSourceResponseInfo
      val adSourceName = loadedAdSourceResponseInfo?.name
      val adSourceId = loadedAdSourceResponseInfo?.id
      val adSourceInstanceName = loadedAdSourceResponseInfo?.instanceName
      val adSourceInstanceId = loadedAdSourceResponseInfo?.instanceId
      val extras = ad.getResponseInfo().responseExtras
      val mediationGroupName = extras.getString("mediation_group_name")
      val mediationABTestName = extras.getString("mediation_ab_test_name")
      val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
    }
  }

جاوا

ad.setAdEventCallback(
    new RewardedAdEventCallback() {
      @Override
      public void onAdPaid(@NonNull AdValue value) {
        // 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 = value.getValueMicros();
        String currencyCode = value.getCurrencyCode();
        PrecisionType precisionType = value.getPrecisionType();

        AdSourceResponseInfo loadedAdSourceResponseInfo =
            ad.getResponseInfo().getLoadedAdSourceResponseInfo();
        String adSourceName = loadedAdSourceResponseInfo.getName();
        String adSourceId = loadedAdSourceResponseInfo.getId();
        String adSourceInstanceName = loadedAdSourceResponseInfo.getInstanceName();
        String adSourceInstanceId = loadedAdSourceResponseInfo.getInstanceId();

        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");
      }
    });

شناسایی نام منبع آگهی رویداد سفارشی

برای منابع آگهی رویداد سفارشی، ویژگی AdSourceResponseInfo.name نام منبع آگهی Custom event را برمی‌گرداند. اگر از چند رویداد سفارشی استفاده می‌کنید، نام منبع آگهی به‌اندازه کافی جزئی نیست که بتواند بین چند رویداد سفارشی تمایز قائل شود. برای پیدا کردن رویداد سفارشی خاص، این کار را انجام دهید:

  1. خصوصیت AdSourceResponseInfo.name را دریافت کنید.
  2. نام منبع آگهی منحصربه‌فردی تنظیم کنید.

مثال زیر نام منبع آگهی منحصربه‌فردی را برای رویداد سفارشی تنظیم می‌کند:

Kotlin

private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdSourceResponseInfo): String {
  var adSourceName = loadedAdapterResponseInfo.name
  if (adSourceName == "Custom Event") {
    if (
      loadedAdapterResponseInfo.adapterClassName ==
        "com.google.ads.mediation.sample.customevent.SampleCustomEvent"
    ) {
      adSourceName = "Sample Ad Network (Custom Event)"
    }
  }
  return adSourceName
}

جاوا

private String getUniqueAdSourceName(@NonNull AdSourceResponseInfo loadedAdapterResponseInfo) {
  String adSourceName = loadedAdapterResponseInfo.getName();
  if (adSourceName.equals("Custom Event")) {
    if (loadedAdapterResponseInfo
        .getAdapterClassName()
        .equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
      adSourceName = "Sample Ad Network (Custom Event)";
    }
  }
  return adSourceName;
}

برای اطلاعات بیشتر درباره منبع آگهی برنده، به بازیابی اطلاعات درباره پاسخ آگهی مراجعه کنید.

روال‌های مطلوب پیاده‌سازی

  • به‌محض ایجاد یا دسترسی به شیء آگهی، شنونده را تنظیم کنید، و حتماً قبل‌از نمایش آگهی این کار را انجام دهید. این کار تضمین می‌کند که هیچ‌کدام از فراخوانی‌های رویداد پولی را ازدست ندهید.
  • اطلاعات درآمد آگهی در سطح ظهور را بلافاصله در زمان فراخوانی برگشت فراخوانی رویداد پولی به سرور تجزیه‌وتحلیل دلخواهتان ارسال کنید. این کار اطمینان می‌دهد که به‌طور تصادفی هیچ‌کدام از تماس‌های برگشتی را ازدست ندهید و از مغایرت داده‌ها جلوگیری می‌کند.

AdValue

AdValue کلاسی است که ارزش پولی کسب‌شده برای آگهی را نشان می‌دهد، ازجمله کد واحد پول مقدار و نوع دقت آن که به‌صورت زیر کدگذاری شده است.

PrecisionType شرح
UNKNOWN مقدار آگهی که ناشناخته است. این خطا زمانی برگردانده می‌شود که پینگ‌بک LTV فعال باشد اما داده‌های کافی دردسترس نباشد.
ESTIMATED مقدار آگهی تخمین‌زده‌شده از داده‌های تجمیعی.
PUBLISHER_PROVIDED مقدار آگهی ارائه‌شده توسط ناشر، مانند هزارظهوربهای دستی در گروه میانجی‌گری.
PRECISE مبلغ دقیقی که برای این آگهی پرداخت شده است.

درصورت میانجی‌گری، Ad Manager تلاش می‌کند مقدار ESTIMATED را برای منابع آگهی‌ای که جمع‌آوری خودکار داده‌ها را فعال کرده‌اند ارائه دهد. برای منابع آگهی بهینه‌نشده، یا در مواردی که داده‌های تجمیعی کافی برای گزارش برآورد معنادار وجود ندارد، مقدار PUBLISHER_PROVIDED برگردانده می‌شود.

آزمایش کردن ظهورها از «مناقصه آزاد»

پس‌از اینکه رویداد درآمد آگهی در سطح ظهور برای منبع آگهی «پیشنهاد قیمت باز» ازطریق درخواست آزمایشی رخ می‌دهد، فقط مقادیر زیر را دریافت می‌کنید:

  • ‫UNKNOWN: نوع دقت را نشان می‌دهد.
  • 0: نشان‌دهنده ارزش آگهی است.
قبلاً ممکن بود نوع دقت را به‌عنوان مقداری غیراز UNKNOWN و مقدار آگهی را بیشتر از 0 ببینید.

برای جزئیات مربوط به ارسال درخواست آگهی آزمایشی، به فعال کردن دستگاه‌های آزمایشی مراجعه کنید.