عند حدوث مرّة ظهور، تستدعي حزمة SDK لإعلانات Google على الأجهزة الجوّالة معالج الحدث المدفوع مع بيانات الأرباح المرتبطة به. من خلال تنفيذ هذا المعالِج، يمكنك استخدام البيانات لاحتساب القيمة الدائمة للمستخدم، أو إعادة توجيه البيانات للأسفل إلى الأنظمة الأخرى ذات الصلة.
يهدف هذا الدليل إلى مساعدتك في تنفيذ عملية التقاط بيانات القيمة الدائمة في تطبيق iOS.
المتطلبات الأساسية
- تأكَّد من تفعيل ميزة "أرباح الإعلانات على مستوى مرّات الظهور" في واجهة مستخدم AdMob.
- استورِد حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" 9.10.0 أو إصدارًا أحدث.
- أكمِل دليل البدء.
قبل أن تتمكّن من تحقيق أيّ أرباح إعلانية على مستوى مرّات الظهور، عليك تنفيذ شكل إعلان واحد على الأقل:
تنفيذ معالج أحداث مدفوعة
يحتوي كل شكل إعلان على موقع paidEventHandler
من النوع
GADPaidEventHandler
.
خلال دورة حياة حدث إعلان، تتتبّع حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة
أحداث مرّات الظهور وتستدعي معالِج الأحداث باستخدام قيمة مكتسَبة.
Swift
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"]
}
}
}
}
}
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"];
};
]};
}
لمزيد من المعلومات عن مصدر الإعلان الفائز، اطّلِع على استرداد معلومات عن استجابة الإعلان.
الدمج مع شركاء إحالة التطبيقات
للاطّلاع على التفاصيل الكاملة حول إعادة توجيه بيانات أرباح الإعلانات إلى منصات الإحصاءات، يُرجى الرجوع إلى دليل الشركاء:
حزمة تطوير البرامج الخاصة بالشريك |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
أفضل الممارسات المتعلّقة بالتنفيذ
- اضبط المعالِج فورًا بعد إنشاء عنصر الإعلان أو الوصول إليه، وبالتأكيد قبل عرض الإعلان. ويضمن ذلك عدم تفويت أي استدعاءات مدفوعة للأحداث.
- أرسِل معلومات الحدث المدفوع إلى خادم الإحصاءات المفضّل
لديك على الفور في وقت استدعاء طريقة
paidEventHandler
. يضمن ذلك عدم حذف أي عمليات استدعاء عن طريق الخطأ وتجنُّب الاختلافات في البيانات.
GADAdValue
GADAdValue
هي فئة تمثّل القيمة النقدية المكتسَبة من إعلان معيّن،
بما في ذلك رمز عملة القيمة ونوعها من حيث الدقة المُشفَّرَين على النحو الموضّح أدناه.
GADAdValuePrecision | الوصف |
---|---|
GADAdValuePrecisionUnknown
|
قيمة إعلان غير معروفة. يتم عرض هذا الرمز عندما يكون خيار تسجيل الإحالات الناجحة المتعلّقة بقيمة LTV مفعّلاً، ولكن لا تتوفّر بيانات كافية. |
GADAdValuePrecisionEstimated
|
قيمة إعلان مُقدَّرة استنادًا إلى بيانات مجمّعة. |
GADAdValuePrecisionPublisherProvided
|
قيمة الإعلان التي قدّمها الناشر، مثل قيم التكلفة اليدوية لكل ألف ظهور في مجموعة توسّط. |
GADAdValuePrecisionPrecise
|
القيمة الدقيقة التي تم دفعها مقابل عرض هذا الإعلان. |
اختبار مرّات الظهور من مصادر الإعلانات المستندة إلى عروض الأسعار
بعد وقوع حدث أرباح الإعلانات على مستوى مرّات الظهور لمصدر إعلان مستند إلى عروض الأسعار من خلال طلب اختبار، لن تتلقّى سوى القيم التالية:
GADAdValuePrecisionUnknown
: يشير إلى نوع الدقة.
-
0
: يشير إلى قيمة الإعلان.
في السابق، قد يكون نوع الدقّة قد ظهر لك كقيمة غير
GADAdValuePrecisionUnknown
وقيمة إعلان تزيد عن 0
.
للاطّلاع على تفاصيل حول إرسال طلب إعلان تجريبي، يُرجى الاطّلاع على مقالة تفعيل الأجهزة الاختبارية.