На этой странице содержатся инструкции по инициализации GMA Next Gen SDK.
Прежде чем начать
Для использования GMA Next Gen SDK необходимо либо выполнить интеграцию без медиации, либо использовать AdMob в качестве платформы медиации. Другие платформы медиации несовместимы с GMA Next Gen SDK.
Настройте свою сборку для GMA Next Gen SDK
В следующих разделах показаны необходимые шаги для настройки GMA Next Gen SDK.
Включить зависимость GMA Next Gen SDK
Для GMA Next Gen SDK требуется другая зависимость Gradle. В файле сборки на уровне приложения удалите ссылку на текущую зависимость Mobile Ads SDK и включите новый артефакт.
| Зависимости Gradle | |
|---|---|
| Текущий | Котлинdependencies { // ... implementation("com.google.android.gms:play-services-ads:24.7.0") } Крутоdependencies { // ... implementation 'com.google.android.gms:play-services-ads:24.7.0' } |
| GMA Next Gen SDK | Котлин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") } Круто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 из числа зависимостей адаптеров медиации.
В файле сборки уровня приложения глобально исключите модули play-services-ads и play-services-ads-lite из всех зависимостей.
Котлин
configurations.all { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") }
Круто
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 требуется минимальный уровень Android API 24 и уровень компиляции Android API 34. Измените значения minSdk и compileSdk в файле сборки уровня приложения на 24 или выше и 34 или выше соответственно.
Инициализировать GMA Next Gen SDK
GMA Next Gen SDK требует инициализации перед загрузкой рекламы, что отличается от текущей версии Mobile Ads SDK, где инициализация необязательна, но рекомендуется. Обновите код, если вы ранее не инициализировали SDK перед загрузкой рекламы.
В этом разделе рассматриваются различия в реализации инициализации SDK между текущей версией SDK и GMA Next Gen SDK.
Установите идентификатор приложения AdMob
В следующих примерах задается идентификатор приложения AdMob в текущей версии SDK и GMA Next Gen 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. Котлин// Initialize the Google Mobile Ads SDK. val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build() MobileAds.initialize(this@MainActivity, initConfig) {} Ява// Initialize GMA Next Gen SDK. InitializationConfig initConfig = new InitializationConfig.Builder("SAMPLE_APP_ID").build(); MobileAds.initialize(this, initConfig, initializationStatus -> {}); |
Обзор изменений в реализации
В следующих примерах инициализируется текущий и GMA Next Gen SDK:
| Текущий | Вызовите Котлин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) {} } } } Ява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 | Вызовите Котлин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. } } } Ява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(); } } |