وقتی یک نمایش (impression) رخ میدهد، SDK تبلیغات موبایلی گوگل، رویداد پرداختشده (paid event handler) را به همراه دادههای درآمدی مرتبط با آن فراخوانی میکند. با پیادهسازی این رویداد، میتوانید از دادهها برای محاسبه ارزش طول عمر کاربر (lifetime value) استفاده کنید یا دادهها را به سایر سیستمهای مرتبط ارسال کنید.
این راهنما برای کمک به شما در پیادهسازی ثبت دادههای LTV در اپلیکیشن iOS شما در نظر گرفته شده است.
پیشنیازها
- کیت توسعه نرمافزاری تبلیغات موبایلی گوگل (Google Mobile Ads SDK) نسخه ۹.۱۰.۰ یا بالاتر را وارد کنید.
- راهنمای شروع به کار را تکمیل کنید.
قبل از اینکه بتوانید درآمد تبلیغاتی در سطح نمایش (impression-level) دریافت کنید، باید حداقل یک فرمت تبلیغاتی را پیادهسازی کنید:
پیادهسازی یک کنترلکننده رویداد پولی
هر قالب تبلیغ دارای یک ویژگی 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 را به شما میدهد. اگر از چندین رویداد سفارشی استفاده میکنید، نام منبع تبلیغاتی به اندازه کافی جزئی نیست که بتواند بین چندین رویداد سفارشی تمایز قائل شود. برای یافتن یک رویداد سفارشی خاص، مراحل زیر را انجام دهید:
- ویژگی
adNetworkClassNameرا دریافت کنید. - یک نام منحصر به فرد برای منبع تبلیغات تنظیم کنید.
مثال زیر یک نام منبع تبلیغات منحصر به فرد برای یک رویداد سفارشی تعیین میکند:
سویفت
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 دیده باشید.
برای جزئیات بیشتر در مورد ارسال درخواست تبلیغ آزمایشی، به فعال کردن دستگاههای آزمایشی مراجعه کنید.