На этой странице описаны инструкции по инициализации 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.9.0") } Классныйdependencies { // ... implementation 'com.google.android.gms:play-services-ads:24.9.0' } |
| GMA Next-Gen SDK | Котлинdependencies { // ... // 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") } Классныйdependencies { // ... // 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 из интеграций медиации.
Адаптеры медиации по-прежнему зависят от текущего SDK для мобильной рекламы. Однако SDK GMA Next-Gen включает все классы, необходимые для адаптеров медиации. Во избежание ошибок компиляции, связанных с дублированием символов, необходимо исключить текущий 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 требуется инициализация перед загрузкой рекламы, что отличается от текущей версии Mobile Ads SDK, где инициализация необязательна, но рекомендуется. Обновите свой код, если ранее вы не инициализировали SDK перед загрузкой рекламы.
В этом разделе рассматриваются различия в реализации инициализации SDK между текущей версией и SDK следующего поколения GMA.
Укажите идентификатор приложения AdMob
В следующих примерах задается идентификатор приложения AdMob в текущей версии SDK и SDK следующего поколения GMA:
| Текущий | Для интеграции требуется тег <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 -> {}); |
Проанализируйте изменения в реализации.
В следующих примерах показана инициализация текущей версии SDK и SDK GMA Next-Gen:
| Текущий | Для инициализации 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. } // 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 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(); } } |