وقتی نمایشی رخ میدهد، Google Mobile Ads SDK با دادههای درآمد مرتبط با کنترلکننده رویداد پولی تماس میگیرد. با پیادهسازی این کنترلکننده، میتوانید از دادهها برای محاسبه ارزش طول عمر کاربر استفاده کنید یا دادهها را در پاییندست به سایر سیستمهای مرتبط ارسال کنید.
این راهنما برای کمک به شما در پیاده سازی داده های LTV در برنامه iOS خود طراحی شده است.
پیش نیازها
- Google Mobile Ads SDK 9.10.0 یا بالاتر را وارد کنید.
- راهنمای شروع را کامل کنید.
قبل از اینکه بتوانید درآمد تبلیغاتی در سطح نمایش دریافت کنید، باید حداقل یک قالب تبلیغاتی را اجرا کنید:
یک کنترل کننده رویداد پولی را پیاده سازی کنید
هر قالب تبلیغاتی دارای ویژگی 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
مشاهده کرده باشید.
برای جزئیات ارسال درخواست آگهی آزمایشی، به فعال کردن دستگاههای آزمایشی مراجعه کنید.