מתחילים

תהליך בחירת הרשת (Mediation) ב-AdMob הוא תכונה שמאפשרת לכם להציג מודעות באפליקציות שלכם מכמה מקורות, כולל רשת AdMob ומקורות מודעות של צד שלישי, והכל במקום אחד. במסגרת התהליך הזה, הבקשה להצגת מודעת נשלחת אל כמה רשתות בו זמנית, עד שתימצא הרשת הזמינה הכי טובה. התהליך הזה מאפשר לכם להשיג שיעור מילוי מקסימלי ולהגדיל את ההכנסות. כאן תוכלו לראות מקרה לדוגמה.

דרישות מוקדמות

כדי לשלב את תהליך בחירת הרשת בפורמט מודעה מסוים, אתם צריכים לשלב את אותו פורמט באפליקציה:

עדיין לא השתמשתם בתהליך בחירת הרשת? מומלץ לקרוא את המאמר סקירה כללית על תהליך בחירת הרשת (Mediation) ב-AdMob.

אתחול GMA Next Gen SDK

במדריך למתחילים מוסבר איך לאתחל את GMA Next Gen 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 GMA Next Gen SDK 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 GMA Next Gen SDK 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 בשילובים של בחירת רשת

מתאמי תהליך הבחירה של רשתות מודעות ממשיכים להסתמך על הגרסה הנוכחית של GMA Next Gen SDK. עם זאת, GMA Next Gen SDK כולל את כל המחלקות הנדרשות על ידי מתאמי גישור. כדי להימנע משגיאות קומפילציה שקשורות לסמלים כפולים, צריך להחריג את GMA Next Gen 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());
    }
  }
);

אם אתם משתמשים ביחידות של מודעות באנר בתהליך בחירת הרשת, חשוב שתשביתו את הרענון בכל ממשקי המשתמש של מקורות מודעות מצד שלישי. מערכת AdMob מפעילה רענון גם על סמך קצב הרענון של היחידה עם מודעות הבאנר, ולכן ההשבתה הזו מונעת פעולה כפולה.

דיני הפרטיות במדינות בארה"ב ו-GDPR

אם אתם צריכים לעמוד בדרישות של דיני הפרטיות במדינות בארה"ב או General Data Protection Regulation (התקנות הכלליות להגנה על מידע, GDPR), עליכם לפעול לפי השלבים שמפורטים במאמר בנושא ההגדרות של התקנות במדינות בארה"ב או במאמר בנושא הגדרות של GDPR. במסגרת הדרישות, עליכם להוסיף את שותפי המודעות שלכם לרשימת שותפי הפרסום שקשורים ל-GDPR או לתקנות במדינות בארה"ב בקטע "פרטיות והודעות" ב-AdMob. אם לא תעשו את זה, יכול להיות שהשותפים לא יוכלו להציג מודעות באפליקציה שלכם.

מידע נוסף על הפעלה של עיבוד נתונים מוגבל (RDP) וקבלת הסכמה בהתאם ל-GDPR באמצעות Google User Messaging Platform (UMP) SDK