אתחול ה-SDK

בדף הזה מוסבר איך לאתחל את GMA Next Gen SDK.

לפני שמתחילים

כדי להשתמש ב-GMA Next Gen SDK, צריך לבצע אינטגרציה בלי תהליך בחירת הרשת או להשתמש ב-AdMob כפלטפורמה לבחירת הרשת. פלטפורמות הגישור האחרות לא תואמות ל-GMA Next Gen SDK.

הגדרת ה-build ל-GMA Next Gen SDK

בסעיפים הבאים מפורטים השלבים הנדרשים להגדרת GMA Next Gen SDK.

הכללת תלות ב-GMA Next Gen SDK

‫GMA Next Gen SDK דורש תלות שונה ב-Gradle. בקובץ ה-build ברמת האפליקציה, מסירים את ההפניה לתלות הנוכחית ב-Mobile Ads SDK וכוללים את הארטיפקט החדש.

יחסי תלות ב-Gradle
היחס הנוכחי

Kotlin

dependencies {
  // ...
  implementation("com.google.android.gms:play-services-ads:24.7.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:24.7.0'
}
GMA Next Gen SDK

Kotlin

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation("com.google.android.gms:play-services-ads:24.7.0")
  implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.21.0-beta01")
}

Groovy

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:24.7.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.21.0-beta01'
}

החרגת מודולים של com.google.android.gms בשילובים של בחירת רשת

מתאמי תהליך בחירת הרשת ממשיכים להסתמך על Mobile Ads SDK הנוכחי. עם זאת, GMA Next Gen SDK כולל את כל המחלקות הנדרשות על ידי מתאמי גישור. כדי להימנע משגיאות קומפילציה שקשורות לסמלים כפולים, צריך להחריג את Mobile Ads SDK הנוכחי כך שלא יימשך כתלות על ידי מתאמי גישור.

בקובץ ה-build ברמת האפליקציה, מחריגים את המודולים play-services-ads ו-play-services-ads-lite באופן גלובלי מכל התלויות.

Kotlin

configurations.all {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Groovy

configurations {
  all {
    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, צריך להפעיל אותו. זה שינוי לעומת Mobile Ads SDK הנוכחי, שבו ההפעלה היא אופציונלית אבל מומלצת. אם לא הפעלתם את ה-SDK לפני טעינת המודעות, תצטרכו לעדכן את הקוד.

בסעיף הזה מוסבר על ההבדלים בהטמעה של אתחול ה-SDK בין הגרסה הנוכחית של GMA SDK לבין GMA Next Gen SDK.

הגדרת מזהה האפליקציה ב-AdMob

בדוגמאות הבאות מוגדר מזהה האפליקציה ב-AdMob בגרסה הנוכחית וב-GMA Next Gen SDK:

היחס הנוכחי

ההטמעה דורשת תג <meta-data> עם android:name="com.google.android.gms.ads.APPLICATION_ID" שמכיל את מזהה האפליקציה שלכם ב-AdMob בקובץ AndroidManifest.xml של האפליקציה.

<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 -> {});

בדיקת שינויים בהטמעה

בדוגמאות הבאות מוצג אתחול של הגרסה הנוכחית של GMA SDK ושל GMA Next Gen SDK:

היחס הנוכחי

קוראים ל-MobileAds.initialize() כדי לאתחל את Google Mobile Ads SDK. מומלץ לבצע את ההפעלה בשרשור רקע כדי להפחית את שגיאות ה-ANR.

Kotlin

import 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) {}
    }
  }
}

Java

import 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

מתקשרים אל MobileAds.initialize() כדי לאתחל את GMA Next Gen SDK. צריך להפעיל את הפונקציה הזו בשרשור ברקע. אם לא עושים את זה, יכול להיות שתתרחש שגיאה מסוג ANR (האפליקציה לא מגיבה).

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,
        // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // 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.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.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}