Инициализировать GMA Next-Gen 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. В файле сборки вашего приложения удалите ссылку на зависимость 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

Для интеграции требуется тег <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 -> {});

Проанализируйте изменения в реализации.

В следующих примерах инициализируются Google Mobile Ads SDK и GMA Next-Gen SDK :

Google Mobile Ads SDK

Для инициализации 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.
      }
      // SDK initialization is complete. If you don't want to wait for bidding adapters to finish
      // initializing, start loading ads now.
    }
  }
}

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.
                  });
              // SDK initialization is complete. If you don't want to wait for bidding adapters to
              // finish initializing, start loading ads now.
            })
        .start();
  }
}