כשמתרחשת חשיפה, Google Mobile Ads SDK מספק נתונים על הכנסות מפרסום המשויכים לחשיפה הזו. ניתן להשתמש בנתונים כדי לחשב את ערך חיי המשתמש, או להעביר את הנתונים במורד הזרם למערכות רלוונטיות אחרות.
המדריך הזה נועד לעזור לכם להטמיע את תיעוד נתוני ההכנסות מפרסום ברמת החשיפה באפליקציה שלכם ל-Android.
דרישות מוקדמות
- ודאו שהפעלתם את התכונה 'הכנסות מפרסום ברמת החשיפה' בממשק המשתמש של AdMob.
- מייבאים את Google Mobile Ads SDK מגרסה 21.1.0 ואילך.
- מבצעים את ההוראות במדריך לתחילת העבודה.
כדי לקבל הכנסות מפרסום ברמת החשיפה, צריך להטמיע לפחות פורמט מודעה אחד:
גורם מטפל באירועים בתשלום
לכל פורמט מודעה יש OnPaidEventListener
. במהלך מחזור החיים של אירוע מודעה, Google Mobile Ads SDK עוקב אחר אירועי החשיפות ומפעיל את ה-handler עם ערך שהרווחת.
הקוד הבא מדגים איך לטפל באירועים בתשלום במודעה מתגמלת:
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");
}
});
}
});
}
}
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?) {
AdRequest adRequest = new 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")
}
}
})
}
}
מידע נוסף על מקור המודעות הזוכה זמין במאמר אחזור מידע על התגובות למודעה.
שילוב של שותפי דוחות שיוך לקמפיינים של אפליקציה (AAP)
לפרטים מלאים על העברת נתוני הכנסות מפרסום לפלטפורמות ניתוח נתונים, אפשר לקרוא את המדריך לשותפים:
SDK של שותף |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
שיטות מומלצות להטמעה
- מגדירים את ה-listener מייד אחרי שיוצרים את אובייקט המודעה או מקבלים גישה אליו, ובטח עוד לפני הצגת המודעה. כך תוכלו להבטיח שלא תפספסו קריאות חוזרות לאירועים בתשלום.
- שליחת המידע על הכנסות מפרסום ברמת החשיפה לשרת ניתוח הנתונים המועדף עליכם באופן מיידי, מיד לאחר קריאה ל-method
onPaidEvent()
. כך תוכלו להבטיח שלא יתבטלו בטעות קריאות חוזרות (callback) ותימנעו מחוסר התאמה בנתונים.
AdValue
AdValue
הוא מחלקה שמייצגת את הערך הכספי שמרוויחים במודעה,
כולל קוד המטבע של הערך וסוג הדיוק שלו שמקודדים כפי שמתואר בהמשך.
PrecisionType | התיאור |
---|---|
UNKNOWN |
ערך מודעה לא ידוע. הערך הזה מוחזר כאשר פינג חוזר של ערך חיי המשתמש מופעל, אבל אין מספיק נתונים זמינים. |
ESTIMATED |
הערך המשוער של המודעה על סמך נתונים נצברים. |
PUBLISHER_PROVIDED |
בעל האפליקציה סיפק ערך מודעה, למשל עלות ידנית לאלף חשיפות בקבוצה לבחירת רשת (Mediation). |
PRECISE |
הערך המדויק ששולם על המודעה הזו. |
במקרה של תהליך בחירת הרשת (Mediation), AdMob מנסה לספק ערך ESTIMATED
למקורות של מודעות שעברו אופטימיזציה של.
ב-
כשמדובר במקורות של מודעות שלא עברו אופטימיזציה, או במקרים שבהם אין מספיק נתונים נצברים כדי לדווח על הערכה משמעותית, הערך PUBLISHER_PROVIDED
מוחזר.