На этой странице приведены инструкции по инициализации GMA Next-Gen SDK.
Подготовка
Это руководство предназначено для издателей и сторонних платформ, которые интегрируют GMA Next-Gen SDK напрямую.
Если вы подключены к AdMob через стороннюю платформу медиации, поддерживающую назначение ставок партнером, проверьте в таблице ниже, совместима ли эта платформа с GMA Next-Gen SDK.
| Платформа медиации | Поддерживается GMA Next-Gen SDK |
|---|---|
| AdMost | |
| AppLovin MAX | |
| Chartboost Mediation | |
| DT Fairbid | |
| Gravite | |
| Nimbus | |
| TopOn | |
| TradPlus VisiM | |
| Unity LevelPlay |
Если вы хотите использовать платформу медиации, несовместимую с GMA Next-Gen SDK, обратитесь к ее поставщику.
Как настроить сборку для GMA Next-Gen SDK
В следующих разделах описаны необходимые шаги по настройке GMA Next-Gen SDK.
Добавьте зависимость GMA Next-Gen SDK
Для GMA Next-Gen SDK требуется другая зависимость Gradle. В файле сборки на уровне приложения удалите ссылку на зависимость 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 из интеграций с медиацией
Адаптеры медиации по-прежнему зависят от Google Mobile Ads SDK (Legacy). Однако GMA Next-Gen SDK включает все классы, необходимые для адаптеров медиации. Чтобы избежать ошибок компиляции, связанных с дублированием символов, необходимо исключить Google Mobile Ads SDK (Legacy) из зависимостей, которые извлекаются медиацией адаптеров.
В файле сборки на уровне приложения исключите модули 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 в файле сборки на уровне приложения на 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.
Как задать идентификатор приложения AdMob
В приведенных ниже примерах показано, как задать идентификатор приложения AdMob в Google Mobile Ads SDK (Legacy) и GMA Next-Gen SDK:
| Google Mobile Ads SDK (Legacy) |
Для интеграции требуется тег <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 (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 |
Вызов функции Call
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(); } } |