درآمد تبلیغات در سطح نمایش

پلتفرم مورد نظر: اندروید، iOS و یونیتی

وقتی یک نمایش (impression) رخ می‌دهد، افزونه‌ی Google Mobile Ads Unity داده‌های درآمد تبلیغاتی مرتبط با آن نمایش را ارائه می‌دهد. می‌توانید از این داده‌ها برای محاسبه‌ی ارزش طول عمر کاربر استفاده کنید یا داده‌ها را به سایر سیستم‌های مرتبط ارسال کنید.

این راهنما برای کمک به شما در پیاده‌سازی جمع‌آوری داده‌های درآمد تبلیغاتی در سطح نمایش در پروژه یونیتی شما در نظر گرفته شده است.

پیش‌نیازها

پیاده‌سازی یک کنترل‌کننده رویداد پولی

هر قالب تبلیغاتی یک رویداد OnAdPaid دارد. در طول چرخه حیات یک رویداد تبلیغاتی، افزونه Unity Ads Google Mobile Ads رویدادهای نمایش را رصد می‌کند و با AdValue که نشان‌دهنده ارزش کسب‌شده است، کنترل‌کننده را فراخوانی می‌کند.

مثال زیر رویدادهای پولی را برای یک تبلیغ جایزه‌دار مدیریت می‌کند:

private void LoadRewardedAd()
{
   // Send the request to load the ad.
   AdRequest adRequest = new AdRequest();
   RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd rewardedAd, LoadAdError error) =>
   {
      // If the operation failed with a reason.
      if (error != null)
      {
         Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
         return;
      }

      rewardedAd.OnAdPaid += this.HandleAdPaidEvent;
   });
}

public void HandleAdPaidEvent(AdValue adValue)
{
    // TODO: Send the impression-level ad revenue information to your
    // preferred analytics server directly within this callback.

    long valueMicros = adValue.Value;
    string currencyCode = adValue.CurrencyCode;
    PrecisionType precision = adValue.Precision;

    ResponseInfo responseInfo = rewardedAd.GetResponseInfo();
    string responseId = responseInfo.GetResponseId();

    AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.GetLoadedAdapterResponseInfo();
    string adSourceId = loadedAdapterResponseInfo.AdSourceId;
    string adSourceInstanceId = loadedAdapterResponseInfo.AdSourceInstanceId;
    string adSourceInstanceName = loadedAdapterResponseInfo.AdSourceInstanceName;
    string adSourceName = loadedAdapterResponseInfo.AdSourceName;
    string adapterClassName = loadedAdapterResponseInfo.AdapterClassName;
    long latencyMillis = loadedAdapterResponseInfo.LatencyMillis;
    Dictionary<string, string> credentials = loadedAdapterResponseInfo.AdUnitMapping;

    Dictionary<string, string> extras = responseInfo.GetResponseExtras();
    string mediationGroupName = extras["mediation_group_name"];
    string mediationABTestName = extras["mediation_ab_test_name"];
    string mediationABTestVariant = extras["mediation_ab_test_variant"];
}

یک نام منبع تبلیغات رویداد سفارشی را شناسایی کنید

برای منابع تبلیغاتی رویدادهای سفارشی، ویژگی AdSourceName نام منبع تبلیغاتی را به شما می‌دهد. اگر از چندین رویداد سفارشی استفاده می‌کنید، نام منبع تبلیغاتی به اندازه کافی جزئی نیست که بتواند بین چندین Custom Event سفارشی تمایز قائل شود. برای یافتن یک رویداد سفارشی خاص، مراحل زیر را انجام دهید:

  1. ویژگی AdapterClassName را دریافت کنید.
  2. یک نام منحصر به فرد برای منبع تبلیغات تنظیم کنید.

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

private string GetAdSourceName(AdapterResponseInfo loadedAdapterResponseInfo)
{
    if (loadedAdapterResponseInfo == null)
    {
        return string.Empty;
    }

    string adSourceName = loadedAdapterResponseInfo.AdSourceName;

    if (adSourceName == "Custom Event")
    {

        #if UNITY_ANDROID
            if (loadedAdapterResponseInfo.AdapterClassName ==
                "com.google.ads.mediation.sample.customevent.SampleCustomEvent")
            {
                adSourceName = "Sample Ad Network (Custom Event)";
            }
        #elif UNITY_IPHONE
            if (loadedAdapterResponseInfo.AdapterClassName == "SampleCustomEvent")
            {
                adSourceName = "Sample Ad Network (Custom Event)";
            }
        #endif

    }
    return adSourceName;
}

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

ادغام با شرکای تخصیص برنامه (AAP)

برای جزئیات کامل در مورد ارسال داده‌های درآمد تبلیغات به پلتفرم‌های تحلیلی، به راهنمای شریک مراجعه کنید:

SDK شریک
تنظیم
اپلیکیشن فلایر
مفرد
تنجین

بهترین شیوه‌های پیاده‌سازی

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

ارزش تبلیغات

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

AdValue.PrecisionType توضیحات
Unknown مقدار تبلیغی که ناشناخته است. این مقدار زمانی برگردانده می‌شود که پینگ‌بک LTV فعال باشد اما داده‌های کافی در دسترس نباشد.
Estimated ارزش تبلیغی که از داده‌های جمع‌آوری‌شده تخمین زده می‌شود.
PublisherProvided یک ناشر، ارزش تبلیغاتی، مانند CPM های دستی را در یک گروه واسطه ارائه داد.
Precise ارزش دقیق این تبلیغ.

در صورت میانجیگری، AdMob سعی می‌کند برای منابع تبلیغاتی بهینه‌شده ، یک مقدار Estimated ارائه دهد. برای منابع تبلیغاتی بهینه‌سازی‌نشده، یا در مواردی که داده‌های تجمیع‌شده کافی برای گزارش یک تخمین معنادار وجود ندارد، مقدار PublisherProvided بازگردانده می‌شود.

میزان نمایش تبلیغات از منابع تبلیغاتی پیشنهاد قیمت را آزمایش کنید

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

  • Unknown : نوع دقت را نشان می‌دهد.
  • 0 : نشان‌دهنده ارزش تبلیغ است.

پیش از این، ممکن بود نوع دقت را به عنوان مقداری غیر از Unknown و مقدار تبلیغی بیشتر از 0 دیده باشید.

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