Инициализируйте 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.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:

Текущий

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

Ява

// Initialize GMA Next Gen SDK.
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

Обзор изменений в реализации

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

Текущий

Вызовите MobileAds.initialize() для инициализации Google Mobile Ads SDK. Для уменьшения количества ошибок 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) {}
    }
  }
}

Ява

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

Вызовите MobileAds.initialize() для инициализации GMA Next Gen SDK. Этот вызов должен быть выполнен в фоновом потоке. В противном случае может возникнуть ошибка «Приложение не отвечает» (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.
    }
  }
}

Ява

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