בדף הזה מפורטות ההוראות לאתחול של GMA Next-Gen SDK.
לפני שמתחילים
כדי להשתמש ב-GMA Next-Gen SDK, צריך לבצע אינטגרציה בלי תהליך בחירת הרשת (Mediation) או להשתמש ב-AdMob כפלטפורמה שבה נערך תהליך בחירת הרשת (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 ומוסיפים את הארטיפקט החדש.
| יחסי תלות ב-Gradle | |
|---|---|
| Google Mobile Ads SDK |
Kotlindependencies { // ... implementation("com.google.android.gms:play-services-ads:25.3.0") } Groovydependencies { // ... implementation 'com.google.android.gms:play-services-ads:25.3.0' } |
| GMA Next-Gen SDK |
Kotlindependencies { // ... // Comment out/remove play-services-ads. // implementation("com.google.android.gms:play-services-ads:25.3.0") implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.1.1") } Groovydependencies { // ... // Comment out/remove play-services-ads. // implementation 'com.google.android.gms:play-services-ads:25.3.0' implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.1.1' } |
החרגת מודולים של com.google.android.gms בשילובים של בחירת רשת
מתאמי הגישור ממשיכים להיות תלויים ב-Google Mobile Ads SDK. עם זאת, GMA Next-Gen SDK כולל את כל המחלקות שנדרשות על ידי מתאמי גישור. כדי להימנע משגיאות קומפילציה שקשורות לסמלים כפולים, צריך להחריג את Google Mobile Ads SDK כך שלא יימשך כתלות על ידי מתאמי גישור.
בקובץ 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 מינימלית של Android 24 ורמת API של Android 34 לצורך קומפילציה. צריך לשנות את הערכים של minSdk ושל compileSdk בקובץ ה-build ברמת האפליקציה ל-24 ומעלה ול-34 ומעלה, בהתאמה.
אתחול GMA Next-Gen SDK
GMA Next-Gen SDK מחייב הפעלה לפני טעינת מודעות, בניגוד ל-Google Mobile Ads SDK שבו ההפעלה היא אופציונלית אך מומלצת. אם לא הפעלתם את ה-SDK לפני טעינת המודעות, תצטרכו לעדכן את הקוד.
בסעיף הזה מוסבר על ההבדלים בהטמעה של אתחול ה-SDK בין גרסה Google Mobile Ads SDK לגרסה GMA Next-Gen SDK.
הגדרת מזהה האפליקציה שמקושרת ל-AdMob
בדוגמאות הבאות מוגדר מזהה האפליקציה ב-AdMob ב-Google Mobile Ads SDK וב-GMA Next-Gen SDK:
| Google Mobile Ads SDK |
השילוב דורש תג <manifest> <application> <!-- Sample AdMob 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 |
ספק את מזהה האפליקציה שמקושרת ל-AdMob באופן פרוגרמטי כחלק מהפעלת ה-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 ושל GMA Next-Gen SDK:
| Google Mobile Ads SDK |
מתקשרים אל 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 AdMob 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 AdMob 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(); } } |