عند حدوث مرّة ظهور، تستدعي حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة معالج الحدث المدفوع مع بيانات الأرباح المرتبطة به. من خلال تنفيذ معالج الأحداث هذا، يمكنك استخدام البيانات لاحتساب القيمة الدائمة للمستخدم أو إعادة توجيه البيانات إلى الأنظمة الأخرى ذات الصلة.
يهدف هذا الدليل إلى مساعدتك في تنفيذ عملية تسجيل بيانات القيمة الدائمة في تطبيق iOS.
المتطلبات الأساسية
- تأكَّد من تفعيل ميزة "إيرادات الإعلانات على مستوى مرّات الظهور" في واجهة مستخدم AdMob.
- استورِد الإصدار 9.10.0 أو إصدارًا أحدث من "SDK لإعلانات Google على الأجهزة الجوّالة".
- أكمِل دليل البدء.
قبل أن تتمكّن من تلقّي أي أرباح إعلانات على مستوى مرّات الظهور، عليك تنفيذ شكل إعلان واحد على الأقل:
تنفيذ معالج أحداث مدفوعة
يحتوي كل شكل إعلان على السمة paidEventHandler
من النوع
GADPaidEventHandler
.
أثناء دورة حياة حدث الإعلان، تراقب حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة أحداث مرّات الظهور وتستدعي أداة المعالجة بقيمة مكتسبة.
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"];
};
]};
}
تحديد اسم مصدر إعلان حدث مخصّص
بالنسبة إلى مصادر الإعلانات للأحداث المخصّصة، تمنحك السمة adSourceName
اسم مصدر الإعلان Custom event
. إذا كنت تستخدم أحداثًا مخصّصة متعدّدة، لن يكون اسم مصدر الإعلان دقيقًا بما يكفي للتمييز بين الأحداث المخصّصة المتعدّدة. للعثور على حدث مخصّص معيّن، اتّبِع الخطوات التالية:
- احصل على السمة
adNetworkClassName
. - اضبط اسمًا فريدًا لمصدر الإعلان.
يضبط المثال التالي اسمًا فريدًا لمصدر الإعلان لحدث مخصّص:
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:
(AdNetworkResponseInfo *)loadedAdNetworkResponseInfo {
NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
if ([adSourceName isEqualToString:@"Custom Event"]) {
if ([loadedAdNetworkResponseInfo.adNetworkClassName isEqualToString:@"SampleCustomEvent"]) {
adSourceName = @"Sample Ad Network (Custom Event)";
}
}
return adSourceName;
}
لمزيد من المعلومات حول مصدر الإعلان الفائز، اطّلِع على استرداد معلومات حول ردّ الإعلان.
الدمج مع شركاء إحالة التطبيقات (AAP)
للاطّلاع على التفاصيل الكاملة حول إعادة توجيه بيانات أرباح الإعلانات إلى منصات الإحصاءات، يُرجى الرجوع إلى دليل الشريك:
Partner SDK |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
أفضل الممارسات المتعلّقة بالتنفيذ
- اضبط المعالج فور إنشاء عنصر الإعلان أو الحصول على إذن الوصول إليه، وقبل عرض الإعلان بالتأكيد. يضمن ذلك عدم فقدان أي عمليات ردّ لحدث مدفوع.
- أرسِل معلومات الحدث المدفوع إلى خادم الإحصاءات المفضّل
على الفور عند استدعاء الطريقة
paidEventHandler
. يضمن ذلك عدم حذف أي دوال رد الاتصال عن طريق الخطأ وتجنُّب التناقضات في البيانات.
GADAdValue
GADAdValue
هي فئة تمثّل القيمة النقدية التي تم تحقيقها من إعلان،
بما في ذلك رمز العملة الخاص بالقيمة ونوع الدقة المرمّز على النحو التالي.
GADAdValuePrecision | الوصف |
---|---|
GADAdValuePrecisionUnknown
|
قيمة إعلان غير معروفة. يتم عرض هذا الرمز عند تفعيل ميزة إرسال بيانات LTV، ولكن لا تتوفّر بيانات كافية. |
GADAdValuePrecisionEstimated
|
هي قيمة إعلان مقدّرة من بيانات مجمّعة. |
GADAdValuePrecisionPublisherProvided
|
قيمة الإعلان التي قدّمها الناشر، مثل قيم التكلفة اليدوية لكل ألف ظهور في مجموعة توسّط |
GADAdValuePrecisionPrecise
|
هي القيمة الدقيقة المدفوعة مقابل عرض هذا الإعلان. |
اختبار مرّات الظهور من مصادر الإعلانات المستندة إلى عروض الأسعار
بعد حدوث حدث إيرادات الإعلان على مستوى مرّة الظهور لمصدر إعلان يستخدِم عروض الأسعار من خلال طلب اختباري، لن تتلقّى سوى القيم التالية:
-
GADAdValuePrecisionUnknown
: يشير إلى نوع الدقة.
-
0
: يشير إلى قيمة الإعلان.
في السابق، ربما ظهر لك نوع الدقة كقيمة أخرى غير GADAdValuePrecisionUnknown
وقيمة إعلان أكبر من 0
.
للحصول على تفاصيل حول إرسال طلب إعلان تجريبي، راجِع مقالة تفعيل الأجهزة التجريبية.