Как настроить GMA Next-Gen SDK

Интеграция GMA Next-Gen SDK в приложение – это первый шаг к показу рекламы и получению дохода. После интеграции SDK выберите формат рекламы (например, нативную или видео с вознаграждением) и следуйте инструкциям по ее реализации.

Подготовка

Чтобы подготовить приложение, выполните нужные действия в разделах, указанных ниже.

Требования к приложению

  • Убедитесь, что в файле сборки приложения приведены значения, указанные ниже.

    • Минимальная версия SDK: 24 или более поздняя.
    • Версия SDK для компиляции:35 или более поздняя.
  • Для приложений на Kotlin используйте версию 1.9 или более позднюю.

Как настроить приложение в аккаунте AdMob

Зарегистрируйте приложение как приложение AdMob, выполнив следующие действия:

  1. Войдите или зарегистрируйтесь в AdMob.

  2. Зарегистрируйте приложение в AdMob. На этом этапе создается приложение AdMob с уникальным идентификатором приложения AdMob, который понадобится позже.

Настройка приложения

  1. В файле настроек Gradle добавьте репозиторий Google Maven и центральный репозиторий Maven:

    Kotlin

    pluginManagement {
      repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
      }
    }
    
    dependencyResolutionManagement {
      repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
      repositories {
        google()
        mavenCentral()
      }
    }
    
    rootProject.name = "My Application"
    include(":app")

    Groovy

    pluginManagement {
      repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
      }
    }
    
    dependencyResolutionManagement {
      repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
      repositories {
        google()
        mavenCentral()
      }
    }
    
    rootProject.name = "My Application"
    include ':app'
  2. Добавьте в файл сборки на уровне приложения зависимости для GMA Next-Gen SDK:

    Kotlin

    dependencies {
      implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.5.0")
    }

    Groovy

    dependencies {
      implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.5.0'
    }
  3. Нажмите Синхронизировать. Подробнее о синхронизации проектов с файлами Gradle…

Инициализация GMA Next-Gen SDK

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

Kotlin

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

Этот метод инициализирует SDK и вызывает прослушиватель завершения после того, как будут завершены инициализации GMA Next-Gen SDK и адаптера или по истечении 30-секундного времени ожидания. Это нужно сделать только один раз, желательно при запуске приложения.

Если вы используете медиацию AdMob, дождитесь вызова обработчика завершения, прежде чем загружать объявления. Это гарантирует, что все адаптеры медиации будут инициализированы.

Объявления могут быть предварительно загружены SDK GMA Next-Gen SDK или партнера по медиации при инициализации. Если вам нужно получать согласие пользователей из Европейской экономической зоны (ЕЭЗ), Великобритании или Швейцарии, задайте флаги для запросов, например RequestConfiguration.TagForChildDirectedTreatment или RequestConfiguration.TagForUnderAgeOfConsent, или выполните другие действия до загрузки объявлений, убедитесь, что вы сделали это до инициализации GMA Next-Gen SDK.

Выберите формат объявления

GMA Next-Gen SDK импортирован, и вы можете реализовать объявление. AdMob предлагает множество форматов объявлений, поэтому вы можете выбрать тот, который лучше всего подходит для вашего приложения.

В рекламных блоках для баннеров показываются прямоугольные объявления, занимающие часть интерфейса приложения. Они могут обновляться автоматически с заданным интервалом. В таком случае через определенные промежутки времени пользователь будет видеть новые объявления, даже не переходя на другой экран приложения. Такие рекламные блоки очень легко добавить.

Как размещать баннеры

Межстраничное объявление

Межстраничные рекламные блоки занимают весь экран устройства. Их рекомендуется показывать в тот момент, когда пользователь переходит между страницами приложения, например после завершения уровня в мобильной игре.

Как размещать межстраничные объявления

Стандартное

Нативные объявления – это объявления, в которых можно настраивать внешний вид объектов, например заголовков и призывов к действию, в ваших приложениях. Вы можете самостоятельно задать стиль объявления, чтобы оно выглядело естественно и ненавязчиво и не мешало пользователям.

Как размещать нативные объявления

Бонус предоставлен

В рекламном блоке объявлений с вознаграждением пользователи могут смотреть видео, проходить опросы, играть в игры и т. д., получая вознаграждение в приложении, например монеты, жизни или очки. Для разных блоков можно назначать разные вознаграждения.

Как реализовать объявления с вознаграждением

Межстраничные объявления с вознаграждением

Межстраничное объявление с вознаграждением – это новый формат рекламы с поощрением, которая показывается при переходах внутри приложения и позволяет начислять пользователям бонусы за взаимодействие с ней, например монеты или дополнительные жизни.

В отличие от обычных объявлений с вознаграждением для показа межстраничных объявлений с вознаграждением не требуется согласие пользователя.

Вместо этого перед показом такого объявления на экране появляется сообщение с информацией о вознаграждении, которое пользователь получит за просмотр рекламы, и кнопкой, позволяющей отказаться от просмотра.

Как добавить межстраничные объявления с вознаграждением

Запуск приложения

Объявления при запуске приложения показываются, когда пользователь открывает приложение или возвращается к нему. При этом объявление накладывается на экран загрузки.

Как реализовать объявления при запуске приложения

Картинка в картинке (бета)

Картинка в картинке

Объявления типа "Картинка в картинке" показываются в плавающем окне, которое всегда находится поверх контента на экране. Этот формат позволяет пользователям взаимодействовать с приложением, не закрывая объявление.

Как реализовать объявления с функцией "Картинка в картинке"