בדף הזה מוסבר איך מאתחלים את GMA Next-Gen SDK.
לפני שמתחילים
כדי להשתמש ב-GMA Next-Gen SDK, צריך לבצע שילוב ללא בחירת רשת או להשתמש ב-Ad Manager כפלטפורמה לבחירת הרשת. פלטפורמות התיווך האחרות לא תואמות ל-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 | |
|---|---|
| עכשיו |
Kotlindependencies { // ... implementation("com.google.android.gms:play-services-ads:24.9.0") } Groovydependencies { // ... implementation 'com.google.android.gms:play-services-ads:24.9.0' } |
| GMA Next-Gen SDK |
Kotlindependencies { // ... // Comment out/remove play-services-ads. // implementation("com.google.android.gms:play-services-ads:24.9.0") implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.22.0-beta01") } Groovydependencies { // ... // Comment out/remove play-services-ads. // implementation 'com.google.android.gms:play-services-ads:24.9.0' implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.22.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.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 נדרש אתחול לפני טעינת מודעות. זה שינוי לעומת Mobile Ads SDK הנוכחי, שבו האתחול הוא אופציונלי אבל מומלץ. אם לא הפעלתם את ה-SDK לפני טעינת המודעות, תצטרכו לעדכן את הקוד.
בסעיף הזה מוסבר על ההבדלים בהטמעה של אתחול ה-SDK בין הגרסה הנוכחית של GMA SDK לבין הגרסה הבאה שלו.
הגדרת מזהה האפליקציה ב-Ad Manager
בדוגמאות הבאות מוגדר מזהה האפליקציה של Ad Manager ב-SDK הנוכחי וב-GMA Next-Gen SDK:
| עכשיו |
השילוב דורש תג <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 -> {}); |
בדיקת שינויים בהטמעה
בדוגמאות הבאות מבוצע אתחול של הגרסה הנוכחית של GMA SDK ושל GMA Next-Gen 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 Ad Manager 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. } } } 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. }); // Other methods on MobileAds can now be called. }) .start(); } } |