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

وقتی نمایشی رخ می‌دهد، Google Mobile Ads SDK با داده‌های درآمد مرتبط با کنترل‌کننده رویداد پولی تماس می‌گیرد. با پیاده‌سازی این کنترل‌کننده، می‌توانید از داده‌ها برای محاسبه ارزش طول عمر کاربر استفاده کنید یا داده‌ها را در پایین‌دست به سایر سیستم‌های مرتبط ارسال کنید.

این راهنما برای کمک به شما در پیاده سازی داده های LTV در برنامه iOS خود طراحی شده است.

پیش نیازها

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

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

سویفت

class ViewController: UIViewController, GADFullScreenContentDelegate {
  var rewardedAd: GADRewardedAd?
  func requestRewardedAd() {
    GADRewardedAd.load(
      withAdUnitID: "AD_UNIT_ID", request: GADRequest()
    ) { (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
          let mediationGroupName = responseInfo?.extrasDictionary["mediation_group_name"]
          let mediationABTestName = responseInfo?.extrasDictionary["mediation_ab_test_name"]
          let mediationABTestVariant = responseInfo?.extrasDictionary["mediation_ab_test_variant"]
        }
      }
    }
  }
}

هدف-C

@import GoogleMobileAds;
@import UIKit;

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

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

  GADRequest *request = [GADRequest 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;
      NSDictionary<NSString *, id> *extras = strongSelf.rewardedAd.responseInfo.extrasDictionary;
      NSString *mediationGroupName = extras["mediation_group_name"];
      NSString *mediationABTestName = extras["mediation_ab_test_name"];
      NSString *mediationABTestVariant = extras["mediation_ab_test_variant"];
    };
  ]};
}

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

ادغام با App Attribution Partners (AAP)

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

شریک SDK
تنظیم کنید
AppsFlyer
مفرد
تنجین

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

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

GADAdValue

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

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

نتایج را از منابع آگهی مناقصه آزمایش کنید

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

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

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

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