תהליך בחירת הרשת ב-AdMob הוא תכונה שמאפשרת לכם להציג מודעות באפליקציות מכמה מקורות, כולל רשת AdMob ומקורות מודעות של צד שלישי, במקום אחד. תהליך בחירת הרשת ב-AdMob עוזר להשיג קצב מילוי מקסימלי ולהגדיל את המונטיזציה על-ידי שליחת בקשות להצגת מודעה אל רשתות מרובות. כך מובטח שתימצא הרשת הזמינה הטובה ביותר לפרסום מודעות. מקרה לדוגמה.
דרישות מוקדמות
כדי לשלב גישור לפורמט מודעה מסוים, צריך לשלב את פורמט המודעה הזה באפליקציה:
לא התנסיתם בתהליך בחירת הרשת (Mediation) בעבר? מומלץ לקרוא את המאמר סקירה כללית על תהליך בחירת הרשת ב-AdMob.
אתחול של Google Mobile Ads SDK (בטא)
במדריך לתחילת העבודה מוסבר איך להפעיל את Google Mobile Ads SDK (בגרסת בטא). במהלך קריאת האתחול הזו, מתבצע גם אתחול של מתאמי גישור. חשוב להמתין עד שההפעלה תושלם לפני שאתם טוענים מודעות, כדי לוודא שכל רשת המודעות משתתפת באופן מלא בבקשה הראשונה להצגת מודעה.
בדוגמת הקוד הבאה אפשר לראות איך בודקים את סטטוס ההפעלה של כל מתאם לפני שליחת בקשה להצגת מודעה.
Kotlin
import com.google.android.libraries.ads.mobile.sdk.MobileAds
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val backgroundScope = CoroutineScope(Dispatchers.IO)
backgroundScope.launch {
// Initialize Google Mobile Ads SDK (beta) on a background thread.
MobileAds.initialize(this@MainActivity, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
initializationStatus ->
for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
Log.d(
"MyApp",
String.format(
"Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
adapterName,
adapterStatus.initializationState,
adapterStatus.description,
adapterStatus.latency,
),
)
}
// Adapter initialization is complete.
}
// Other methods on MobileAds can now be called.
}
}
}
Java
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
import com.google.android.libraries.ads.mobile.sdk.initialization.AdapterStatus;
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(
() -> {
// Initialize Google Mobile Ads SDK (beta) on a background thread.
MobileAds.initialize(
this,
new InitializationConfig.Builder("SAMPLE_APP_ID")
.build(),
initializationStatus -> {
Map<String, AdapterStatus> adapterStatusMap =
initializationStatus.getAdapterStatusMap();
for (String adapterClass : adapterStatusMap.keySet()) {
AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
Log.d(
"MyApp",
String.format(
"Adapter name: %s, Status code: %s, Status description: %s,"
+ " Latency: %d",
adapterClass,
adapterStatus.getInitializationState(),
adapterStatus.getDescription(),
adapterStatus.getLatency()));
}
// Adapter initialization is complete.
});
// Other methods on MobileAds can now be called.
})
.start();
}
}
החרגת מודולים של com.google.android.gms
בשילובים של בחירת רשת
מתאמי הגישור ממשיכים להיות תלויים בגרסת הבטא הנוכחית של Google Mobile Ads SDK. עם זאת, Google Mobile Ads SDK (בטא) כולל את כל המחלקות שנדרשות למתאמים לתהליך בחירת הרשת. כדי למנוע שגיאות קומפילציה שקשורות לסמלים כפולים, צריך להחריג את Google Mobile Ads SDK (בטא) הנוכחי כך שלא יימשך כתלות על ידי מתאמי גישור.
בקובץ build.gradle
ברמת האפליקציה, מוציאים את המודולים play-services-ads
ו-play-services-ads-lite
באופן גלובלי מכל התלויות.
configurations {
all {
exclude(group = "com.google.android.gms", module = "play-services-ads")
exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}
}
בדיקה של המחלקה של המתאם של רשת המודעות שטענה את המודעה
הנה קוד לדוגמה שמתעד את שם המחלקה של רשת המודעות עבור מודעת באנר:
Kotlin
BannerAd.load(
BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
object : AdLoadCallback<BannerAd> {
override fun onAdLoaded(ad: BannerAd) {
Log.d(
"MyApp", "Adapter class name: " +
ad.getResponseInfo().mediationAdapterClassName
)
}
}
)
Java
BannerAd.load(
new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
new AdLoadCallback<BannerAd>() {
@Override
public void onAdLoaded(@NonNull BannerAd ad) {
Log.d("MyApp",
"Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
}
}
);
שימוש במודעות באנר עם תהליך בחירת הרשת (Mediation) ב-AdMob
חשוב להשבית את הרענון בכל ממשקי המשתמש של מקורות מודעות מצד שלישי עבור יחידות של מודעות באנר שמשמשות לבחירת רשת ב-AdMob. כך נמנע רענון כפול, כי מערכת AdMob מפעילה רענון גם על סמך קצב הרענון של היחידה עם מודעות הבאנר.
דיני הפרטיות במדינות בארה"ב וה-GDPR
אם אתם צריכים לפעול בהתאם לדיני הפרטיות במדינות בארה"ב או לתקנה הכללית להגנה על מידע (GDPR), אתם צריכים לפעול לפי השלבים שמתוארים במאמר בנושא הגדרות בנושא תקנות במדינות בארה"ב או במאמר בנושא הגדרות בנושא GDPR כדי להוסיף את שותפי הגישור שלכם לרשימת שותפי המודעות בנושא GDPR או בנושא תקנות במדינות בארה"ב בכלי 'פרטיות והודעות' ב-AdMob. אם לא תעשו את זה, יכול להיות שהשותפים לא יוכלו להציג מודעות באפליקציה שלכם.
מידע נוסף על הפעלה של עיבוד נתונים מוגבל (RDP) וקבלת הסכמה בהתאם ל-GDPR באמצעות Google User Messaging Platform (UMP) SDK