Интеграция Mobile Ads SDK
Система: Рекламная сеть Яндекса, Adfox
Интеграция Yandex Mobile Ads SDK в приложение — первый шаг к показу рекламы и получению дохода. После интеграции SDK вы сможете выбрать формат рекламы, с помощью которого будете монетизировать ваше приложение (например, баннерная реклама или реклама с вознаграждением), и выполнить шаги по его настройке.
Подробнее о монетизации приложения на Android с помощью Рекламной сети Яндекса смотрите в видео:
Доступна миграция на SDK версии 8.0.0. См. Руководство по миграции на версию 8.0.0 (beta).
Предварительная настройка
Чтобы подготовить приложение, выполните действия, описанные в следующих разделах.
Требования к приложению
- Используйте Android Studio 2021 или выше.
- Используйте Android Gradle Plugin версии 8.7.0 и выше.
- Убедитесь, что в файле сборки вашего приложения используются следующие значения:
- minSdkVersion 21 или выше;
- compileSdkVersion 34 или выше.
- Если в своем приложении вы используете AppMetrica SDK, убедитесь, что у вас установлена версия 7.2.1 и выше (в пределах 7-й мажорной версии).
Настройте приложение в своем аккаунте в Рекламной сети Яндекса
Зарегистрируйте свое приложение как приложение Рекламной сети Яндекса, выполнив следующие действия:
- Войдите или зарегистрируйте аккаунт в Рекламной сети Яндекса.
- Зарегистрируйте свое приложение в Рекламной сети Яндекса.
Настройте свое приложение
-
Добавьте в конфигурацию проекта поддержку google и центрального maven репозитория.
В зависимости от настроек сборки проекта, добавить указанные репозитории можно или в build.gradle файл проекта, или в блок repositories файла settings.gradle, как указано ниже:
build.gradlesettings.gradle// Project-level build.gradle file buildscript { repositories { google() mavenCentral() } } allprojects { repositories { google() mavenCentral() } }// Project-level settings.gradle file pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } -
Добавьте зависимость от Yandex Mobile Ads SDK в Gradle файл на уровне модуля вашего приложения, обычно app/build.gradle:
dependencies { implementation 'com.yandex.android:mobileads:7.18.5' } -
Настройте разрешение на использование рекламного идентификатора (для приложений, использующих sdk ниже версии 4.5.0).
Как настроить разрешение на использование рекламного идентификатора
Рекламный идентификатор – уникальный идентификатор сервисов Google Play для показа рекламы пользователям, которые согласны видеть персонализированные объявления. Пользователь может отключить персонализацию рекламы или сбросить идентификатор в настройках. В таком случае рекламные сети не смогут использовать его для подбора релевантной рекламы.
Если ваше приложение использует версию Yandex Mobile Ads SDK ниже 4.5.0, необходимо добавить разрешение com.google.android.gms.permission.AD_ID в AndroidManifest.xml файл вашего приложения:
<manifest> <application> <!-- For apps targeting Android 13 or higher & Yandex Mobile Ads SDK versions lower than 4.5.0 --> <uses-permission android:name="com.google.android.gms.permission.AD_ID"/> </application> </manifest>Начиная с версии 4.5.0 Yandex Mobile Ads SDK добавляет разрешение com.google.android.gms.permission.AD_ID по умолчанию. Поэтому указывать его дополнительно в основном манифесте приложения не нужно. Разрешение позволяет использовать рекламный идентификатор для подбора более релевантной рекламы от рекламных сетей.
При необходимости, вы можете удалить разрешение. Например, если какие-то политики, такие как Families Policy, не позволяют использовать идентификатор для подбора рекламы.
Чтобы разрешение не попало в основной манифест приложения, добавьте в файл AndroidManifest.xml следующий код:
<manifest> <application> <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/> </application> </manifest>Важно
Отсутствие разрешения и доступа к идентификатору может снизить релевантность рекламы и, как следствие, ваш доход.
Инициализируйте Yandex Mobile Ads SDK
Успешная инициализация Yandex Mobile Ads SDK является важным условием корректной интеграции библиотеки. По умолчанию, инициализация SDK происходит автоматически во время запуска приложения. Это ускоряет загрузку рекламы и, следовательно, увеличивает доход от монетизации.
Если для вашего приложения требуется настроить политики использования персональных данных, сделать это необходимо перед инициализацией Yandex Mobile Ads SDK.
Настроить политики использования персональных данных можно через AndroidManifest.file или непосредственно перед инициализацией SDK вручную.
Настройка COPPA
При автоматической инициализации для уведомления Yandex Mobile Ads SDK об использовании приложения ребенком, добавьте в AndroidManifest.xml файл следующий код:
<manifest>
<application>
<!-- Disable the use of child's personal data for app monetization. -->
<meta-data
android:name="@string/yandex_mobileads_age_restricted_user"
android:value="true" />
</application>
</manifest>
Инициализация SDK вручную
При необходимости вы можете самостоятельно инициализировать библиотеку с помощью метода initialize(), предварительно отключив автоматическую инициализацию:
<manifest>
<application>
<!-- Disable automatic sdk initialization. -->
<meta-data
android:name="com.yandex.mobile.ads.AUTOMATIC_SDK_INITIALIZATION"
android:value="false" />
</application>
</manifest>
Важно
Даже если автоматическая инициализация отключена, SDK инициализируется перед первым запросом рекламы, если вы не вызвали MobileAds.initialize() вручную. Подробнее о логах инициализации читайте ниже в разделе Проверка интеграции SDK.
Рекомендуется добавлять код инициализации в метод onCreate класса Application. Настройки политики использования персональных данных пользователей, необходимо выполнять перед инициализацией SDK:
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// Configure the user privacy data policy before init sdk
MobileAds.initialize(this) {
// now you can use ads
}
}
}
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Configure the user privacy data policy before init sdk
MobileAds.initialize(this, () -> {
// now you can use ads
});
}
}
Проверка интеграции SDK
Вы можете проверить успешность интеграции библиотеки с помощью встроенного инструмента проверки интеграции SDK.
Для проверки корректной интеграции SDK, после добавления зависимости и инициализации SDK пересоберите проект.
Запустите logcat и выполните поиск по ключевой фразе "Yandex Ads".
Команда покажет логи статуса интеграции. При успехе вы увидите соответствующее сообщение, при ошибке — подробное описание и способ исправления. Пример работы команды:
mobileads$ adb logcat | grep 'Yandex Ads' -i
[Yandex Ads] I Yandex Mobile Ads 7.18.5 integrated successfully
[Yandex Ads] I Yandex Mobile Ads 7.18.5 initialized successfully
В логе есть два разных события:
integrated successfully— проверка интеграции (SDK еще не инициализирован);initialized successfully— успешная инициализация SDK.
Индикатор устаревшей версии библиотеки
Примечание
Индикатор доступен в отладочном режиме.
Индикатор устаревшей версии рекламной SDK отображается в виде тоста во время инициализации библиотеки или загрузки объявления.
Более подробная информация о проблеме дублируется в логи приложения.
Пример логов:
***************************************************************************************
* The integrated version of the Yandex Mobile Ads SDK is outdated. *
* Please update com.yandex.android:mobileads to the latest version. *
* Learn more about the latest version of the SDK here: *
* https://yandex.ru/dev/mobile-ads/doc/android/quick-start/android-ads-component.html *
* Changelog: https://yandex.ru/dev/mobile-ads/doc/intro/changelog-android.html *
***************************************************************************************
Чтобы выключить отображение индикатора, вызовите метод enableDebugErrorIndicator со значением false:
MobileAds.enableDebugErrorIndicator(false)
Совет
Не рекомендуется отключать валидацию индикатора устаревшей версии SDK. Старайтесь всегда использовать самую актуальную версию библиотеки, чтобы получать максимальный доход от рекламы.
Lint проверка использования актуальной версии SDK
Lint проверка использования актуальной версии SDK запускается во время сборки релизной версии приложения.
Lint проверка осуществляется за счет вызова gradle task lintVitalRelease. Таск падает, если используемая версия рекламной SDK более неактуальна.
Данная проверка не даст собраться приложению, если уже была выпущена более новая версия sdk.
Чтобы отключить проверку использования актуальной версии SDK, можно воспользоваться стандартным способом отключения lint проверок при помощи gradle-кода (подробнее в документации Android).
android {
lintOptions {
disable 'MobileAdsSdkOutdatedVersion'
}
}
Следующие шаги
После того как вы успешно интегрировали Yandex Mobile Ads SDK, вы готовы приступить к реализации форматов рекламы.
Выберите один из следующих типов рекламных объявлений, наиболее подходящих для вашего приложения:
|
Формат объявления |
Рекламная сеть Яндекса |
Adfox |
Описание |
|
|
|
Адаптивный inline-баннер — гибкий формат баннерной рекламы, обеспечивающий максимальную эффективность за счет оптимизации размера рекламы для каждого устройства. Высота баннера подбирается автоматически и может достигать высоты экрана устройства. Как правило, такой формат используется в приложениях-лентах или там, где допустимо обеспечить основной фокус на рекламе. |
|
|
|
|
Адаптивный sticky-баннер — небольшое, автоматически обновляемое рекламное объявление. Оно располагается в нижней или верхней части экрана приложения. Баннер не перекрывает основной контент и часто используется в приложениях-играх. Высота sticky-баннера определяется автоматически, адаптируясь под размер экрана устройства и не превышает 15% высоты экрана. |
|
|
|
|
Межстраничная реклама (interstitial) — полноэкранный формат рекламы, встраиваемый в контент приложения во время естественных пауз, таких как переход между уровнями игры или окончание выполнения целевого действия. Во время отображения межстраничных объявлений внимание пользователя полностью сконцентрированно на рекламе, за счет чего стоимость такого показа получается выше. Слишком частое использование данного формата может ухудшить взаимодействие с пользователем. |
|
|
|
|
Реклама с вознаграждением — популярный полноэкранный формат объявления, за просмотр которого пользователь получает поощрение. Показ рекламы активируется пользователем, например, для получения бонуса или дополнительной жизни в игре. Высокая мотивация пользователя делает такой формат рекламы наиболее популярным и прибыльным в бесплатных приложениях. |
|
|
|
|
Нативная реклама — реклама, внешний вид которой может определяться на стороне приложения. Данная особенность позволяет изменять визуальный стиль объявлений и места их размещения с учетом особенностей дизайна приложения. Отрисовка рекламы производится нативными средствами платформы, что увеличивает её производительность и качество. Существует несколько способов определения внешнего вида нативной рекламы: с помощью шаблона и вручную. При использовании шаблона, внешний вид рекламы будет определяться на стороне SDK. |
|
|
|
|
Реклама при открытии приложения — специальный формат рекламы для монетизации экранов загрузки приложений. Такие объявления могут быть закрыты в любое время и предназначены для показа:
|
|
|
|
|
Рекламная лента — блок в виде ленты с объявлениями, который можно добавить в качестве основного контента приложения или после существующего контента приложения. Лента может состоять из нескольких десятков объявлений, загрузка будет происходить частями — по несколько объявлений за раз. |
|
|
|
|
InStream — формат рекламы, который позволяет монетизировать приложение через показ рекламы во время воспроизведения видеоконтента. InStream объявление состоит из сценария с несколькими видеоблоками. Тип видеоблока в сценарии InStream определяет, как должен проигрываться рекламный ролик относительно основного видеоконтента. |

