בדף הזה מוסבר איך להפעיל את GMA Next-Gen SDK.
לפני שמתחילים
המדריך הזה מיועד לבעלי אפליקציות ולפלטפורמות של צד שלישי שמשלבים את GMA Next-Gen SDK באופן ישיר.
אם אתם משתמשים בפלטפורמה שבה נערך תהליך בחירת הרשת (Mediation) של צד שלישי, כדאי לבדוק אם השותף שלכם לתהליך תומך ב-GMA Next-Gen SDK.הגדרת ה-build ל-GMA Next-Gen SDK
בקטעים הבאים מוסבר איך להגדיר את GMA Next-Gen SDK.
הוספת התלות GMA Next-Gen SDK
ל-GMA Next-Gen SDK נדרשת תלות אחרת ב-Gradle. בקובץ ה-build ברמת האפליקציה, מסירים את ההפניה לתלות ב-Google Mobile Ads SDK (Legacy) וכוללים את פריט המידע החדש.
| יחסי תלות של Gradle | |
|---|---|
| Google Mobile Ads SDK (Legacy) |
Kotlindependencies { // ... implementation("com.google.android.gms:play-services-ads:25.5.0") } Groovydependencies { // ... implementation 'com.google.android.gms:play-services-ads:25.5.0' } |
| GMA Next-Gen SDK |
Kotlindependencies { // ... // Comment out/remove play-services-ads. // implementation("com.google.android.gms:play-services-ads:25.5.0") implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.5.0") } Groovydependencies { // ... // Comment out/remove play-services-ads. // implementation 'com.google.android.gms:play-services-ads:25.5.0' implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.5.0' } |
החרגת מודולים של com.google.android.gms בשילובים של מנגנון בחירת הרשת (Mediation)
מתאמים של מנגנון בחירת הרשת ממשיכים להיות תלויים ב-Google Mobile Ads SDK (Legacy). עם זאת, GMA Next-Gen SDK כולל את כל המחלקות שנדרשות למתאמים של תהליך בחירת הרשת. כדי למנוע שגיאות קומפילציה שקשורות לסמלים כפולים, צריך להחריג את Google Mobile Ads SDK (Legacy) כך שלא יימשך כתלות על ידי מתאמים של תהליך בחירת הרשת (Mediation).
בקובץ ה-build ברמת האפליקציה, מחריגים את המודולים play-services-ads ו-play-services-ads-lite באופן גלובלי מכל יחסי התלות.
Kotlin
configurations.configureEach { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") }
Groovy
configurations.configureEach { exclude group: "com.google.android.gms", module: "play-services-ads" exclude group: "com.google.android.gms", module: "play-services-ads-lite" }
הגדרת רמות ה-API המינימליות והקומפילציה ב-Android
כדי להשתמש ב-GMA Next-Gen SDK, צריך רמת API מינימלית של 24 ב-Android ורמת API של 34 ב-Android לקומפילציה. משנים את הערכים של minSdk ו-compileSdk בקובץ ה-build ברמת האפליקציה ל-24 ומעלה ול-34 ומעלה, בהתאמה.
מפעילים את GMA Next-Gen SDK
ב-GMA Next-Gen SDK צריך לבצע אתחול לפני טעינת המודעות, בניגוד ל-Google Mobile Ads SDK (Legacy) שבו האתחול הוא אופציונלי אבל מומלץ. אם לא הפעלתם את ה-SDK לפני טעינת המודעות, עדכנו את הקוד.
בקטע הזה מוסברים ההבדלים בהטמעה של אתחול ה-SDK בין Google Mobile Ads SDK (Legacy) ל-GMA Next-Gen SDK.
הגדרת מזהה האפליקציה ב-Ad Manager
בדוגמאות הבאות מוגדר מזהה האפליקציה ב-Ad Manager ב-Google Mobile Ads SDK (Legacy) וב-GMA Next-Gen SDK:
| Google Mobile Ads SDK (Legacy) |
כדי לבצע את השילוב, צריך להוסיף תג <manifest> <application> <!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="SAMPLE_APP_ID"/> </application> </manifest> |
| GMA Next-Gen SDK |
צריך לספק את מזהה האפליקציה ב-Ad Manager באופן פרוגרמטי כחלק מההפעלה של ה-SDK. Kotlin// Initialize the Google Mobile Ads SDK. val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build() MobileAds.initialize(this@MainActivity, initConfig) {} Java// Initialize GMA Next-Gen SDK. InitializationConfig initConfig = new InitializationConfig.Builder("SAMPLE_APP_ID").build(); MobileAds.initialize(this, initConfig, initializationStatus -> {}); |
בדיקת השינויים בהטמעה
בדוגמאות הבאות מאתחלים את Google Mobile Ads SDK (Legacy) ואת GMA Next-Gen SDK:
| Google Mobile Ads SDK (Legacy) |
מפעילים את Kotlinimport com.google.android.gms.ads.MobileAds 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 the Google Mobile Ads SDK on a background thread. MobileAds.initialize(this@MainActivity) {} } } } Javaimport com.google.android.gms.ads.MobileAds; import com.google.android.gms.ads.initialization.InitializationStatus; import com.google.android.gms.ads.initialization.OnInitializationCompleteListener; public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread( () -> { // Initialize the Google Mobile Ads SDK on a background thread. MobileAds.initialize(this, initializationStatus -> {}); }) .start(); } } |
| GMA Next-Gen SDK |
קוראים ל- Kotlinimport 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, // Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 InitializationConfig.Builder("SAMPLE_APP_ID").build() ) { // Adapter initialization is complete. } // SDK initialization is complete. If you don't want to wait for bidding adapters to finish // initializing, start loading ads now. } } } Javaimport com.google.android.libraries.ads.mobile.sdk.MobileAds; 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, // Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 new InitializationConfig.Builder("SAMPLE_APP_ID") .build(), initializationStatus -> { // Adapter initialization is complete. }); // SDK initialization is complete. If you don't want to wait for bidding adapters to // finish initializing, start loading ads now. }) .start(); } } |