وقتی نمایشی رخ میدهد، Google Mobile Ads SDK با مدیریت رویداد پولی همراه با دادههای درآمد مرتبط آن تماس میگیرد. با پیادهسازی این کنترلکننده، میتوانید از دادهها برای محاسبه ارزش طول عمر کاربر استفاده کنید یا دادهها را در پاییندست به سایر سیستمهای مرتبط ارسال کنید.
این راهنما برای کمک به شما در پیاده سازی داده های LTV در برنامه iOS خود طراحی شده است.
پیش نیازها
- Google Mobile Ads SDK 9.10.0 یا بالاتر را وارد کنید.
- راهنمای شروع را کامل کنید.
قبل از اینکه بتوانید درآمد تبلیغاتی در سطح نمایش دریافت کنید، باید حداقل یک قالب تبلیغاتی را اجرا کنید:
یک کنترل کننده رویداد پولی را پیاده سازی کنید
هر قالب تبلیغاتی دارای ویژگی paidEventHandler
از نوع GADPaidEventHandler
است. در طول چرخه حیات یک رویداد تبلیغاتی، Google Mobile Ads SDK رویدادهای نمایش را نظارت میکند و کنترلکننده را با ارزش کسبشده فراخوانی میکند.
سویفت
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"]
}
}
}
}
}
هدف-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"];
};
]};
}
نام منبع آگهی رویداد سفارشی را شناسایی کنید
برای منابع تبلیغات رویداد سفارشی، ویژگی 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
}
هدف-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;
}
برای اطلاعات بیشتر در مورد منبع آگهی برنده، به بازیابی اطلاعات درباره پاسخ آگهی مراجعه کنید.
ادغام با App Attribution Partners (AAP)
برای جزئیات کامل در مورد ارسال اطلاعات درآمد تبلیغات به پلتفرم های تحلیلی، به راهنمای شریک مراجعه کنید:
شریک SDK |
---|
تنظیم کنید |
AppsFlyer |
مفرد |
تنجین |
بهترین شیوه های پیاده سازی
- بلافاصله پس از ایجاد یا دسترسی به شیء تبلیغ، و قطعاً قبل از نمایش آگهی، کنترل کننده را تنظیم کنید. این باعث میشود که هیچیک از تماسهای رویداد پولی را از دست ندهید.
- بلافاصله در زمان فراخوانی روش
paidEventHandler
، اطلاعات رویداد پولی را به سرور تجزیه و تحلیل ترجیحی خود ارسال کنید. این اطمینان حاصل می کند که به طور تصادفی هیچ تماسی را رها نمی کنید و از اختلاف داده ها جلوگیری می کند.
GADAdValue
GADAdValue
کلاسی است که ارزش پولی به دست آمده برای یک آگهی را نشان می دهد، از جمله کد ارز ارزش و نوع دقیق آن که به صورت زیر کدگذاری شده است.
GADAdValuePrecision | توضیحات |
---|---|
GADAdValuePrecisionUnknown | یک ارزش تبلیغاتی که ناشناخته است. وقتی پینگ بک LTV فعال باشد اما داده کافی در دسترس نباشد، این مورد برگردانده می شود. |
GADAdValuePrecisionEstimated | یک ارزش تبلیغاتی که از دادههای جمعآوری شده تخمین زده میشود. |
GADAdValuePrecisionPublisherProvided | یک ناشر ارزش تبلیغاتی مانند CPM های دستی در یک گروه میانجی ارائه کرد. |
GADAdValuePrecisionPrecise | ارزش دقیق پرداخت شده برای این آگهی. |
نتایج را از منابع آگهی مناقصه آزمایش کنید
پس از اینکه یک رویداد درآمد تبلیغات در سطح نمایش برای منبع آگهی مناقصه از طریق یک درخواست آزمایشی رخ داد، فقط مقادیر زیر را دریافت میکنید:
-
GADAdValuePrecisionUnknown
: نوع دقت را نشان می دهد.
-
0
: ارزش تبلیغ را نشان می دهد.
قبلاً، ممکن است نوع دقیق را به عنوان مقداری غیر از GADAdValuePrecisionUnknown
و مقدار تبلیغاتی بیش از 0
مشاهده کرده باشید.
برای جزئیات ارسال درخواست آگهی آزمایشی، به فعال کردن دستگاههای آزمایشی مراجعه کنید.