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

وقتی یک نمایش (impression) رخ می‌دهد، SDK تبلیغات موبایلی گوگل، رویداد پرداخت‌شده (paid event handler) را به همراه داده‌های درآمدی مرتبط با آن فراخوانی می‌کند. با پیاده‌سازی این رویداد، می‌توانید از داده‌ها برای محاسبه ارزش طول عمر کاربر (lifetime value) استفاده کنید یا داده‌ها را به سایر سیستم‌های مرتبط ارسال کنید.

این راهنما برای کمک به شما در پیاده‌سازی ثبت داده‌های LTV در اپلیکیشن iOS شما در نظر گرفته شده است.

پیش‌نیازها

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

هر قالب تبلیغ دارای یک ویژگی paidEventHandler از نوع GADPaidEventHandler است. در طول چرخه حیات یک رویداد تبلیغ، SDK تبلیغات موبایل گوگل، رویدادهای نمایش را رصد می‌کند و با یک مقدار کسب‌شده، هندلر را فراخوانی می‌کند.

سویفت

class ViewController: UIViewController, FullScreenContentDelegate {
  var rewardedAd: RewardedAd?
  func requestRewardedAd() {
    RewardedAd.load(
      with: "AD_UNIT_ID", request: AdManagerRequest()
    ) { (ad, error) in
      if let error = error {
        print("Rewarded ad failed to load with error: \(error.localizedDescription)")
        return
      }
      if let ad = ad {
        self.rewardedAd = ad
        self.rewardedAd?.paidEventHandler = { adValue in
          // TODO: Send the impression-level ad revenue information to your preferred analytics
          // server directly within this callback.

          // Extract the impression-level ad revenue data.
          let value = adValue.value
          let precision = adValue.precision
          let currencyCode = adValue.currencyCode

          // Get the ad unit ID.
          let adUnitId = ad.adUnitID

          let responseInfo = ad.responseInfo
          let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo
          let adSourceId = loadedAdNetworkResponseInfo?.adSourceID
          let adSourceInstanceId = loadedAdNetworkResponseInfo?.adSourceInstanceID
          let adSourceInstanceName = loadedAdNetworkResponseInfo?.adSourceInstanceName
          let adSourceName = loadedAdNetworkResponseInfo?.adSourceName
        }
      }
    }
  }
}

هدف-سی

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()
@property(nonatomic, strong) GADRewardedAd *rewardedAd;
@end

@implementation ViewController
- (void)requestRewardedAd {
  __weak ViewController *weakSelf = self;

  GAMRequest *request = [GAMRequest request];
  [GADRewardedAd
   loadWithAdUnitID:@"AD_UNIT_ID"
   request:request
   completionHandler:^(GADRewardedAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]);
      return;
    }
    self.rewardedAd = ad;
    self.rewardedAd.paidEventHandler = ^void(GADAdValue *_Nonnull value){
      ViewController *strongSelf = weakSelf;
      // TODO: Send the impression-level ad revenue information to your preferred analytics
      // server directly within this callback.

      // Extract the impression-level ad revenue data.
      NSDecimalNumber *value; = value.value;
      NSString *currencyCode = value.currencyCode;
      GADAdValuePrecision precision = value.precision;

      // Get the ad unit ID.
      NSString *adUnitId = strongSelf.rewardedAd.adUnitID;

      GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo =
          strongSelf.rewardedAd.responseInfo.loadedAdNetworkResponseInfo;
      NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
      NSString *adSourceID = loadedAdNetworkResponseInfo.adSourceID;
      NSString *adSourceInstanceName = loadedAdNetworkResponseInfo.adSourceInstanceName;
      NSString *adSourceInstanceID = loadedAdNetworkResponseInfo.adSourceInstanceID;
    };
  ]};
}

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

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

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

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

سویفت

func uniqueAdSourceName(for loadedAdNetworkResponseInfo: AdNetworkResponseInfo) -> String {
  var adSourceName: String = loadedAdNetworkResponseInfo.adSourceName ?? ""
  if adSourceName == "Custom Event" {
    if loadedAdNetworkResponseInfo.adNetworkClassName
      == "MediationExample.SampleCustomEventSwift"
    {
      adSourceName = "Sample Ad Network (Custom Event)"
    }
  }
  return adSourceName
}

هدف-سی

- (NSString *)uniqueAdSourceNameForAdNetworkResponseInfo:
    (GADAdNetworkResponseInfo *)loadedAdNetworkResponseInfo {
  NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
  if ([adSourceName isEqualToString:@"Custom Event"]) {
    if ([loadedAdNetworkResponseInfo.adNetworkClassName isEqualToString:@"SampleCustomEvent"]) {
      adSourceName = @"Sample Ad Network (Custom Event)";
    }
  }
  return adSourceName;
}

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

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

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

ارزش افزوده

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

دقت ارزش افزوده GAD توضیحات
GADAdValuePrecisionUnknown مقدار تبلیغی که ناشناخته است. این مقدار زمانی برگردانده می‌شود که پینگ‌بک LTV فعال باشد اما داده‌های کافی در دسترس نباشد.
GADAdValuePrecisionEstimated ارزش تبلیغی که از داده‌های جمع‌آوری‌شده تخمین زده می‌شود.
GADAdValuePrecisionPublisherProvided یک ناشر، ارزش تبلیغاتی، مانند CPM های دستی را در یک گروه واسطه ارائه داد.
GADAdValuePrecisionPrecise ارزش دقیق پرداخت شده برای این تبلیغ.

برداشت‌های آزمایشی از پیشنهاد قیمت باز

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

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

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

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