כשמתרחשת חשיפה, Google Mobile Ads SDK (Legacy) מספק נתוני הכנסות מפרסום שמשויכים לחשיפה הזו. אפשר להשתמש בנתונים כדי לחשב את הערך של משתמש לאורך חייו, או להעביר את הנתונים במורד הזרם למערכות רלוונטיות אחרות.
המדריך הזה נועד לעזור לכם להטמיע את איסוף הנתונים של הכנסות מפרסום ברמת החשיפה באפליקציית Android.
דרישות מוקדמות
- מוודאים שהפעלתם את התכונה 'הכנסות מפרסום ברמת החשיפה' בממשק המשתמש של Ad Manager.
- ייבוא Google Mobile Ads SDK (Legacy) מגרסה 21.1.0 ואילך.
- הגדרה של Google Mobile Ads SDK (Legacy)
כדי לקבל נתונים על הכנסות מפרסום לפי חשיפות (iLAR), צריך להטמיע לפחות פורמט מודעה אחד:
גורם מטפל באירועים בתשלום
לכל פורמט מודעה יש OnPaidEventListener.
במהלך מחזור החיים של אירוע שקשור למודעה, Google Mobile Ads SDK (Legacy) עוקב אחרי אירועי חשיפה ומפעיל את ה-handler עם ערך שנצבר.
בדוגמה הבאה מוצג טיפול באירועים בתשלום במודעה מתגמלת:
Java
private void setOnPaidEventListener(RewardedAd ad) {
ad.setOnPaidEventListener(
new OnPaidEventListener() {
@Override
public void onPaidEvent(@NonNull AdValue adValue) {
// Extract the impression-level ad revenue data.
long valueMicros = adValue.getValueMicros();
String currencyCode = adValue.getCurrencyCode();
int precision = adValue.getPrecisionType();
// Get the ad unit ID.
String adUnitId = ad.getAdUnitId();
// Extract ad response information.
AdapterResponseInfo loadedAdapterResponseInfo =
ad.getResponseInfo().getLoadedAdapterResponseInfo();
if (loadedAdapterResponseInfo != null) {
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();
Bundle extras = ad.getResponseInfo().getResponseExtras();
String mediationGroupName = extras.getString("mediation_group_name");
String mediationABTestName = extras.getString("mediation_ab_test_name");
String mediationABTestVariant = extras.getString("mediation_ab_test_variant");
}
}
});
}Kotlin
private fun setOnPaidEventListener(ad: RewardedAd) {
ad.onPaidEventListener = OnPaidEventListener { adValue ->
// Extract the impression-level ad revenue data.
val valueMicros = adValue.valueMicros
val currencyCode = adValue.currencyCode
val precision = adValue.precisionType
// Get the ad unit ID.
val adUnitId = ad.adUnitId
// Extract ad response information.
val loadedAdapterResponseInfo = ad.responseInfo.loadedAdapterResponseInfo
val adSourceName = loadedAdapterResponseInfo?.adSourceName
val adSourceId = loadedAdapterResponseInfo?.adSourceId
val adSourceInstanceName = loadedAdapterResponseInfo?.adSourceInstanceName
val adSourceInstanceId = loadedAdapterResponseInfo?.adSourceInstanceId
val extras = ad.responseInfo.responseExtras
val mediationGroupName = extras.getString("mediation_group_name")
val mediationABTestName = extras.getString("mediation_ab_test_name")
val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
}
}זיהוי של שם מקור מודעה של אירוע מותאם אישית
למקורות מודעות של אירועים מותאמים אישית, השיטה getAdSourceName() מחזירה את שם מקור המודעות Custom event. אם אתם משתמשים בכמה אירועים בהתאמה אישית, שם מקור המודעות לא מספיק מפורט כדי להבחין בין כמה אירועים בהתאמה אישית. כדי לאתר אירוע מותאם אישית ספציפי, מבצעים את הפעולות הבאות:
- מבצעים קריאה ל-method
getAdSourceName(). - מגדירים שם ייחודי למקור המודעות.
בדוגמה הבאה מוגדר שם ייחודי של מקור מודעות לאירוע מותאם אישית:
Java
private String getUniqueAdSourceName(@NonNull AdapterResponseInfo loadedAdapterResponseInfo) {
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
if (adSourceName.equals("Custom Event")) {
if (loadedAdapterResponseInfo
.getAdapterClassName()
.equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
adSourceName = "Sample Ad Network (Custom Event)";
}
}
return adSourceName;
}
Kotlin
private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdapterResponseInfo): String {
var adSourceName = loadedAdapterResponseInfo.adSourceName
if (adSourceName == "Custom Event") {
if (
loadedAdapterResponseInfo.adapterClassName ==
"com.google.ads.mediation.sample.customevent.SampleCustomEvent"
) {
adSourceName = "Sample Ad Network (Custom Event)"
}
}
return adSourceName
}
מידע נוסף על מקור המודעה המנצח זמין במאמר אחזור מידע על תגובה לבקשה להצגת מודעה.
שיטות מומלצות להטמעה
- צריך להגדיר את מאזין האירועים מיד אחרי שיוצרים את אובייקט המודעה או מקבלים אליו גישה, ובכל מקרה לפני הצגת המודעה. כך לא תפספסו אף קריאה חוזרת של אירוע בתשלום.
- שולחים את פרטי ההכנסות מפרסום לפי חשיפות (iLAR) לשרת הניתוח המועדף באופן מיידי בזמן הקריאה להחזרת נתונים של אירוע בתשלום. כך תוכלו לוודא שלא תפספסו בטעות קריאות חוזרות (callback) ולמנוע אי התאמות בנתונים.
AdValue
AdValue היא מחלקה שמייצגת את הערך הכספי שהרווחתם מפרסומת, כולל קוד המטבע של הערך ורמת הדיוק שלו, שמוצפנים באופן הבא.
| PrecisionType | תיאור |
|---|---|
UNKNOWN |
ערך לא ידוע של מודעה. הערך הזה מוחזר כשהפינגבק של ערך חיי המשתמש מופעל, אבל אין מספיק נתונים זמינים. |
ESTIMATED |
הערך המשוער של המודעה על סמך נתונים נצברים. |
PUBLISHER_PROVIDED |
ערך מודעה שסופק על ידי בעל האפליקציה, כמו עלויות לאלף חשיפות (CPM) שהוגדרו ידנית בקבוצה לבחירת רשת (Mediation). |
PRECISE |
הערך המדויק ששולם על המודעה הזו. |
במקרה של בחירת רשת (Mediation), מערכת Ad Manager מנסה לספק ערך ESTIMATED למקורות מודעות שמופעלת בהם אוסף נתונים אוטומטי.
במקורות מודעות שלא עברו אופטימיזציה, או במקרים שבהם אין מספיק נתונים מצטברים כדי לדווח על אומדן משמעותי, מוחזר הערך PUBLISHER_PROVIDED.
בדיקת חשיפות מ-Open Bidding
אחרי שמתרחש אירוע של הכנסות מפרסום לפי חשיפות (iLAR) ממקור מודעות של Open Bidding דרך בקשת בדיקה, מקבלים רק את הערכים הבאים:
-
UNKNOWN: מציין את רמת הדיוק.
-
0: מציין את ערך המודעה.
UNKNOWN וערך המודעה היה גבוה מ-0.
פרטים על שליחת בקשה להצגת מודעת בדיקה מופיעים במאמר הפעלת מכשירי בדיקה.