Gösterim düzeyinde reklam geliri

Platform seçin: Android iOS Unity

Bir gösterim gerçekleştiğinde Google Mobile Ads SDK, ücretli etkinlik işleyicisini ilişkili gelir verileriyle birlikte çağırır. Bu işleyiciyi uygulayarak verileri kullanıcının yaşam boyu değerini hesaplamak için kullanabilir veya verileri diğer ilgili sistemlere iletebilirsiniz.

Bu kılavuz, iOS uygulamanızda YBD veri yakalamayı uygulamanıza yardımcı olmak için hazırlanmıştır.

Ön koşullar

Ücretli etkinlik işleyici uygulama

Her reklam biçiminin paidEventHandler türünde bir özelliği vardır. GADPaidEventHandler. Google Mobile Ads SDK'sı, bir reklam etkinliğinin yaşam döngüsü boyunca gösterim etkinliklerini izler ve kazanılan değerle işleyiciyi çağırır.

Swift

class ViewController: UIViewController, FullScreenContentDelegate {
  var rewardedAd: RewardedAd?
  func requestRewardedAd() {
    RewardedAd.load(
      with: "AD_UNIT_ID", request: Request()
    ) { (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?.extras["mediation_group_name"]
          let mediationABTestName = responseInfo?.extras["mediation_ab_test_name"]
          let mediationABTestVariant = responseInfo?.extras["mediation_ab_test_variant"]
        }
      }
    }
  }
}

Objective-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"];
    };
  ]};
}

Özel etkinlik reklam kaynağı adını belirleme

Özel etkinlik reklam kaynakları için adSourceName özelliği, reklam kaynağı adını Custom event olarak verir. Birden fazla özel etkinlik kullanıyorsanız reklam kaynağı adı, birden fazla özel etkinlik arasında ayrım yapacak kadar ayrıntılı değildir. Belirli bir özel etkinliği bulmak için aşağıdaki adımları uygulayın:

  1. adNetworkClassName özelliğini alın.
  2. Benzersiz bir reklam kaynağı adı ayarlayın.

Aşağıdaki örnekte, özel bir etkinlik için benzersiz bir reklam kaynağı adı ayarlanmaktadır:

Swift

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
}

Objective-C

- (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;
}

Kazanan reklam kaynağı hakkında daha fazla bilgi için Reklam yanıtı hakkında bilgi alma başlıklı makaleyi inceleyin.

Uygulama İlişkilendirme Ortakları (AAP) ile entegrasyon

Reklam geliri verilerini analiz platformlarına yönlendirme hakkında ayrıntılı bilgi için iş ortağının kılavuzuna bakın:

İş Ortağı SDK'sı
Adjust
AppsFlyer
Singular
Tenjin

Kullanımla ilgili en iyi uygulamalar

  • Reklam nesnesini oluşturur veya nesneye erişir erişmez ve kesinlikle reklamı göstermeden önce işleyiciyi ayarlayın. Bu sayede, ücretli etkinlik geri aramalarını kaçırmazsınız.
  • Ücretli etkinlik bilgilerini, paidEventHandler yöntemi çağrıldığında hemen tercih ettiğiniz analiz sunucusuna gönderin. Bu sayede, geri aramaları yanlışlıkla bırakmadığınızdan emin olabilir ve veri tutarsızlıklarını önleyebilirsiniz.

GADAdValue

GADAdValue, bir reklam için kazanılan parasal değeri temsil eden bir sınıftır. Bu değerin para birimi kodu ve aşağıdaki gibi kodlanmış hassasiyet türü de dahildir.

GADAdValuePrecision Açıklama
GADAdValuePrecisionUnknown Bilinmeyen bir reklam değeri. Bu hata, DK geri bildirimi etkinleştirildiğinde ancak yeterli veri olmadığında döndürülür.
GADAdValuePrecisionEstimated Birleştirilmiş verilerden tahmin edilen bir reklam değeri.
GADAdValuePrecisionPublisherProvided Yayıncı tarafından sağlanan bir reklam değeri (ör. bir uyumlulaştırma grubundaki manuel BGBM'ler).
GADAdValuePrecisionPrecise Bu reklam için ödenen kesin değer.

Teklifli sistem reklam kaynaklarından gelen gösterimleri test etme

Bir teklif verme reklam kaynağı için test isteği aracılığıyla gösterim düzeyinde reklam geliri etkinliği gerçekleştikten sonra yalnızca aşağıdaki değerleri alırsınız:

  • GADAdValuePrecisionUnknown: Hassasiyet türünü gösterir.
  • 0: Reklam değerini gösterir.

Daha önce, hassasiyet türünü GADAdValuePrecisionUnknown dışında bir değer ve reklam değerini 0 değerinden fazla olarak görmüş olabilirsiniz.

Test reklamı isteği gönderme hakkında ayrıntılı bilgi için Test cihazlarını etkinleştirme başlıklı makaleyi inceleyin.