מתחילים

תהליך בחירת הרשת ב-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());
    }
  }
);

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

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

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

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