כשמתרחשת חשיפה, ערכת Google Mobile Ads SDK מספקת נתוני הכנסות מפרסום שמשויכים לחשיפה הזו. אתם יכולים להשתמש בנתונים כדי לחשב את ערך חיי המשתמש, או להעביר את הנתונים למערכת אחרת רלוונטית.
המדריך הזה נועד לעזור לכם להטמיע את התיעוד של נתוני ההכנסות מפרסום ברמת החשיפה באפליקציה ל-Android.
דרישות מוקדמות
- חשוב לוודא שהפעלתם את התכונה 'הכנסות מפרסום ברמת החשיפה' בממשק המשתמש של AdMob.
- מייבאים את Google Mobile Ads SDK בגרסה 21.1.0 ואילך.
- קוראים את המדריך לתחילת העבודה.
כדי שתקבלו הכנסות מפרסום ברמת החשיפה, עליכם להטמיע לפחות פורמט מודעה אחד:
גורם מטפל באירועים בתשלום
לכל פורמט מודעה יש OnPaidEventListener
.
במהלך מחזור החיים של אירוע פרסום, ערכת Google Mobile Ads SDK עוקבת אחרי אירועי חשיפות ומפעילה את הטיפול עם ערך שהרווחתם.
בדוגמה הבאה מוצג טיפול באירועים בתשלום של מודעה מתגמלת:
Kotlin
import com.google.android.gms.ads.rewarded.RewardedAd
class MainActivity : AppCompatActivity() {
private var rewardedAd: RewardedAd? = null
private final var TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
val adRequest = AdRequest.Builder().build()
RewardedAd.load(this, "AD_UNIT_ID",
adRequest, object: RewardedAdLoadCallback() {
override fun onAdLoaded(ad: RewardedAd) {
rewardedAd = ad
// Set paid event listener
rewardedAd.onPaidEventListener = OnPaidEventListener { adValue ->
// TODO: Send the impression-level ad revenue information to your preferred
// analytics server directly within this callback.
// 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 = rewardedAd.adUnitId
val loadedAdapterResponseInfo = rewardedAd.responseInfo.loadedAdapterResponse
val adSourceName = loadedAdapterResponseInfo.adSourceName
val adSourceId = loadedAdapterResponseInfo.adSourceId
val adSourceInstanceName = loadedAdapterResponseInfo.adSourceInstanceName
val adSourceInstanceId = loadedAdapterResponseInfo.adSourceInstanceId
val extras = rewardedAd.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")
}
}
})
}
}
Java
import com.google.android.gms.ads.rewarded.RewardedAd;
public class MainActivity extends Activity {
private RewardedAd rewardedAd;
private final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
AdRequest adRequest = new AdRequest.Builder().build();
RewardedAd.load(this, "AD_UNIT_ID",
adRequest, new RewardedAdLoadCallback(){
@Override
public void onAdLoaded(@NonNull RewardedAd ad) {
rewardedAd = ad;
// Set paid event listener
rewardedAd.setOnPaidEventListener(new OnPaidEventListener() {
@Override
public void onPaidEvent(AdValue adValue) {
// TODO: Send the impression-level ad revenue information to your
//preferred analytics server directly within this callback.
// 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 = rewardedAd.getAdUnitId();
AdapterResponseInfo loadedAdapterResponseInfo = rewardedAd.getResponseInfo().
getLoadedAdapterResponseInfo();
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();
Bundle extras = rewardedAd.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");
}
});
}
});
}
}
מידע נוסף על מקור המודעות הזוכה זמין במאמר אחזור מידע על התגובה למודעה.
שילוב עם שותפי דוחות שיוך לקמפיינים של אפליקציה (AAP)
פרטים מלאים על העברת נתוני הכנסות מפרסום לפלטפורמות ניתוח נתונים זמינים במדריך של השותף:
Partner SDK |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
שיטות מומלצות להטמעה
- צריך להגדיר את המאזין מיד אחרי שיוצרים את אובייקט המודעה או מקבלים גישה אליו, ובכל מקרה לפני הצגת המודעה. כך תוכלו לוודא שלא תחמיצו שיחות חוזרות בתשלום.
- שולחים את המידע על ההכנסות מפרסום ברמת החשיפה לשרת הניתוח המועדף מיד כשמתבצעת הקריאה החוזרת בתשלום. כך תוכלו לוודא שלא תאבדו בטעות קריאות חוזרות, וכך תוכלו למנוע אי-התאמות בנתונים.
AdValue
AdValue
היא כיתת ערך שמייצגת את הערך הכספי שהרווחתם על מודעה, כולל קוד המטבע של הערך וסוג הדיוק שלו, כפי שמקודדים בהמשך.
PrecisionType | תיאור |
---|---|
UNKNOWN |
ערך מודעה לא ידוע. הערך הזה מוחזר כשה-pingback של ערך ה-LTV מופעל אבל אין מספיק נתונים זמינים. |
ESTIMATED |
הערך המשוער של המודעה על סמך נתונים נצברים. |
PUBLISHER_PROVIDED |
בעל האפליקציה סיפק את ערך המודעה, למשל: עלות בהזנה ידנית לאלף חשיפות בקבוצה לבחירת רשת (Mediation). |
PRECISE |
הערך המדויק ששולם על המודעה הזו. |
במקרה של תהליך בחירת הרשת של AdMob, מערכת AdMob מנסה לספק ערך ESTIMATED
למקורות מודעות שעברו אופטימיזציה.
PUBLISHER_PROVIDED
.
בדיקת חשיפות ממקורות של מודעות לבידינג
אחרי שאירוע של הכנסות מפרסום ברמת החשיפה מתרחש במקור מודעות לבידינג דרך בקשת בדיקה, אתם מקבלים רק את הערכים הבאים:
UNKNOWN
: מציין את סוג הדיוק.
0
: מציין את ערך המודעה.
בעבר, יכול להיות שתראו את סוג הדיוק כערך שאינו UNKNOWN
וערך מודעה גבוה מ-0
.
פרטים על שליחת בקשה להצגת מודעה לבדיקה מופיעים במאמר הפעלת מכשירי בדיקה.