Интеграция Mobile Ads SDK

Система: РСЯ, Adfox

Интеграция Yandex Mobile Ads SDK в приложение — первый шаг к показу рекламы и получению дохода. После интеграции SDK вы сможете выбрать формат рекламы, с помощью которого будете монетизировать ваше приложение (например, баннерная реклама или реклама с вознаграждением), и выполнить шаги по его настройке.

Подробнее о монетизации приложения на Android с помощью Рекламной сети Яндекса смотрите в видео:

Предварительная настройка

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

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

  • Используйте Android Studio 2021 или выше.
  • Используйте Android Gradle Plugin версии 7.3.1 и выше.
  • Убедитесь, что в файле сборки вашего приложения используются следующие значения:
    • minSdkVersion 21 или выше;
    • compileSdkVersion 31 или выше.
  • Если в своем приложении вы используете AppMetrica SDK, убедитесь, что у вас установлена 6-я мажорная версия (6.x.x).

Настройте приложение в своем аккаунте в Рекламной сети Яндекса

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

  1. Войдите или зарегистрируйте аккаунт в Рекламной сети Яндекса.
  2. Зарегистрируйте свое приложение в Рекламной сети Яндекса.

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

  1. Добавьте в конфигурацию проекта поддержку google и центрального maven репозитория.

    В зависимости от настроек сборки проекта, добавить указанные репозитории можно или в build.gradle файл проекта, или в блок repositories файла settings.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()
        }
    }
    
  2. Добавьте зависимость от Yandex Mobile Ads SDK в Gradle файл на уровне модуля вашего приложения, обычно app/build.gradle:

    dependencies {
      implementation 'com.yandex.android:mobileads:7.8.0'
    }
    
  3. Настройте разрешение на использование рекламного идентификатора (для приложений, использующих 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>

Рекомендуется добавлять код инициализации в метод 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".

Результатом этой команды будет лог с информацией о статусе интеграции SDK. В случае успешной интеграции, вы будете уведомлены об этом. Если во время интеграции произошла какая-то ошибка — в логах появится развернутое сообщение о причинах ошибок и способах их исправления.

mobileads$ adb logcat | grep 'Yandex Ads' -i
[Yandex Ads]  I  Yandex Mobile Ads 7.8.0 integrated successfully
[Yandex Ads]  I  Yandex Mobile Ads 7.8.0 initialized successfully

Индикатор устаревшей версии библиотеки

Примечание

Индикатор доступен в отладочном режиме.

Индикатор устаревшей версии рекламной 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-баннер

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

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

Как правило, такой формат используется в приложениях-лентах или там, где допустимо обеспечить основной фокус на рекламе.

Адаптивный sticky-баннер

Адаптивный sticky-баннер — небольшое, автоматически обновляемое рекламное объявление, которое располагается внизу или вверху экрана приложения. Баннер не перекрывает основной контент приложения и часто используется в приложениях-играх.

Высота sticky-баннера определяется автоматически, адаптируясь под размер экрана устройства и не превышает 15% высоты экрана.

Межстраничная реклама

Межстраничная реклама (interstitial) — полноэкранный формат рекламы, встраиваемый в контент приложения во время естественных пауз, таких как переход между уровнями игры или окончание выполнения целевого действия.

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

Слишком частое использование данного формата может ухудшить взаимодействие с пользователем.

Реклама с вознаграждением

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

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

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

Нативная реклама

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

Отрисовка рекламы производится нативными средствами платформы, что увеличивает её производительность и качество.

Существует несколько способов определения внешнего вида нативной рекламы: с помощью шаблона и вручную. При использовании шаблона, внешний вид рекламы будет определяться на стороне SDK.

Реклама при открытии приложения

Реклама при открытии приложения — специальный формат рекламы для монетизации экранов загрузки своих приложений. Такие объявления могут быть закрыты в любое время и предназначены для показа, когда пользователи выводят ваше приложение на передний план (foreground), либо при запуске, либо при возврате в него из фонового режима (background).

Рекламная лента

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

InStream-реклама

InStream — формат рекламы, который позволяет монетизировать приложение через показ рекламы во время воспроизведения видеоконтента. InStream объявление состоит из сценария с несколькими видеоблоками.

Тип видеоблока в сценарии InStream определяет, как должен проигрываться рекламный ролик относительно основного видеоконтента.