На этой странице описаны инструкции по инициализации 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. В файле сборки вашего приложения удалите ссылку на зависимость Google Mobile Ads SDK и добавьте новый артефакт.
| Зависимости Gradle | |
|---|---|
| Google Mobile Ads SDK | Котлинdependencies { // ... implementation("com.google.android.gms:play-services-ads:25.3.0") } Классныйdependencies { // ... implementation 'com.google.android.gms:play-services-ads:25.3.0' } |
| GMA Next-Gen SDK | Котлинdependencies { // ... // 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") } Классныйdependencies { // ... // 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 из списка зависимостей, подключаемых адаптерами медиации.
В файле сборки вашего приложения исключите модули play-services-ads и play-services-ads-lite из всех зависимостей.
Котлин
configurations.configureEach { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") }
Классный
configurations.configureEach { exclude group: "com.google.android.gms", module: "play-services-ads" exclude group: "com.google.android.gms", module: "play-services-ads-lite" }
Установите минимальный уровень API и выполните компиляцию.
Для работы GMA Next-Gen SDK требуется минимальный уровень Android API 24 и уровень компиляции Android API 34. Измените значения minSdk и compileSdk в файле сборки вашего приложения на 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. Котлин// 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 | Для инициализации SDK Google Mobile Ads используйте метод Котлин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) {} } } } 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 | Для инициализации 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. } // 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(); } } |