מתחילים

במדריך הזה מוסבר איך לשלב מתאם גישור באפליקציית Android.

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

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

לא התנסיתם בתהליך בחירת הרשת (Mediation) בעבר? מידע נוסף זמין במאמר מבוא לתהליך בחירת הרשת (Mediation).

אתחול של 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());
    }
  }
);

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

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

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

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