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

На этой странице приведены инструкции по инициализации Google Mobile Ads SDK (бета).

Прежде чем начать

Чтобы использовать Google Mobile Ads SDK (бета), необходимо либо интегрировать без посредничества, либо использовать AdMob в качестве платформы посредничества. Другие платформы посредничества несовместимы с Google Mobile Ads SDK (бета).

Настройте свою сборку для Google Mobile Ads SDK (бета)

В следующих разделах показаны необходимые шаги для настройки Google Mobile Ads SDK (бета).

Включить зависимость от Google Mobile Ads SDK (бета)

Для Google Mobile Ads 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'
}
Google Mobile Ads 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. Однако Google Mobile Ads 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

Для Google Mobile Ads SDK (бета-версии) требуется минимальный уровень API Android 24 и уровень API компиляции Android 34. Измените значения minSdk и compileSdk в файле сборки уровня приложения на 24 или выше и 34 или выше соответственно.

Инициализация Google Mobile Ads SDK (бета)

Для Google Mobile Ads SDK (бета) требуется инициализация перед загрузкой рекламы. Это отличие от текущей версии Mobile Ads SDK, где инициализация необязательна, но рекомендуется. Обновите код, если вы ранее не инициализировали SDK перед загрузкой рекламы.

В этом разделе рассматриваются различия в реализации инициализации SDK между текущей версией и Google Mobile Ads SDK (бета-версией).

Установите идентификатор приложения AdMob

В следующих примерах задается идентификатор приложения AdMob в текущей версии и 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>
Google Mobile Ads SDK (бета)

Укажите идентификатор вашего приложения AdMob программным способом в ходе инициализации SDK.

Котлин

// Initialize the Google Mobile Ads SDK.
val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build()
MobileAds.initialize(this@MainActivity, initConfig) {}

Ява

// Initialize Google Mobile Ads SDK (beta).
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

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

В следующих примерах инициализируется текущая версия SDK и Google Mobile Ads (бета-версия):

Текущий

Вызовите 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();
  }
}
Google Mobile Ads SDK (бета)

Вызовите MobileAds.initialize() для инициализации Google Mobile Ads 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 Google Mobile Ads SDK (beta) 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 Google Mobile Ads SDK (beta) 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();
  }
}