Инициализируйте SDK

На этой странице описаны инструкции по инициализации 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:

Текущий

Для интеграции требуется тег <meta-data> с атрибутом android:name="com.google.android.gms.ads.APPLICATION_ID" , содержащим идентификатор вашего приложения AdMob, в файле AndroidManifest.xml вашего приложения.

<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 используйте метод MobileAds.initialize() . Рекомендуется инициализация в фоновом потоке для уменьшения количества ошибок ANR.

Котлин

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) {}
    }
  }
}

Java

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

Для инициализации GMA Next-Gen SDK необходимо вызвать метод MobileAds.initialize() . Этот метод должен выполняться в фоновом потоке; в противном случае может возникнуть ошибка "Приложение не отвечает" (ANR).

Котлин

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.
    }
  }
}

Java

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();
  }
}