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
- AdMob kullanıcı arayüzünde gösterim düzeyi reklam geliri özelliğini etkinleştirdiğinizden emin olun.
- Google Mobile Ads SDK'sı 9.10.0 veya daha yeni bir sürümü içe aktarın.
- Başlangıç kılavuzunu tamamlayın.
Gösterim düzeyi reklam geliri elde edebilmek için en az bir reklam biçimi uygulamanız gerekir:
Ü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:
adNetworkClassName
özelliğini alın.- 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.