Как заменить Admob на медиацию Яндекса и продолжать зарабатывать на приложениях: опыт разработчика игры “Слово за слово”

Как заменить Admob на медиацию Яндекса и продолжать зарабатывать на приложениях: опыт разработчика игры “Слово за слово”

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

У нас есть флагманская игра — “Слово за слово”. В нее играют более 200 тысяч человек в месяц. Монетизируется она в том числе за счет рекламы. 90% аудитории приходится на Россию и страны СНГ, поэтому ограничения со стороны западных сервисов серьезно затронули и нас. Это заставило искать альтернативные варианты, не уступающие как в эффективности, так и в возможностях настройки и кастомизации.

Что мы сделали?

На самом деле решение было очень простым — интегрировать SDK Yandex Ads и добавить Admob как одну из рекламных сетей в медиацию Яндекса. Так как проблемы коснулись не только нас, в этой статье мы решили помочь другим и рассказать пошагово, что и как сделать владельцам приложений на Android, чтобы не остаться без дохода.

Начнем с того, почему и когда стоит выбрать Yandex Ads. Во-первых, необходимо проанализировать, в каких регионах расположены ваши пользователи. Для Яндекса основная аудитория — русскоязычная. Если у вас много пользователей из России — Яндекс “маст хэв”. Для других стран можно оставить AdMob — они будут работать параллельно. Во-вторых, очень важный показатель — заполняемость рекламных блоков (fillrate). Чем он выше, тем меньше показов теряется и больше будет доход. Поэтому к Yandex Ads необходимо подключить максимальное число рекламных сетей. У нас также подключены MyTarget и Unity).

Приступим к настройке и коду — это не сложно

Необходимо всего несколько шагов:

  • завести аккаунт в Yandex Ads

  • сконфигурировать приложение

  • если хотите использовать Admob и Яндекс вместе, то завести рекламные блоки в консоли Admob

  • интегрировать SDK мобильной медиации в приложение

Изменения в коде приложения, которые будет необходимо сделать — минимальны. Далее опишем, что необходимо сделать, чтобы заменить рекламу AdMob на медиацию Yandex Ads на операционной системе Android.

  • Добавьте зависимости для Yandex Mobile Ads SDK в файл Gradle вашего модуля на уровне приложения, обычно app/build.gradle.
dependencies { implementation 'com.yandex.android:mobileads:5.0.0' implementation 'com.yandex.ads.mediation:mobileads-admob:20.5.0.0' implementation 'com.google.android.gms:play-services-ads:20.5.0' }
  • Перед загрузкой рекламы инициализируйте библиотеку с помощью метода initialize()
public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MobileAds.initialize(this, new InitializationListener() { @Override public void onInitializationCompleted() { } }); } }

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

... import com.yandex.mobile.ads.interstitial.InterstitialAd; import com.yandex.mobile.ads.interstitial.InterstitialAdEventListener; public class MainActivity extends Activity { private InterstitialAd mInterstitialAd; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MobileAds.initialize(this, new InitializationListener() { @Override public void onInitializationCompleted() { } }); final AdRequest adRequest = new AdRequest.Builder().build(); mInterstitialAd = new InterstitialAd(this); mInterstitialAd.setAdUnitId("R-M-DEMO-interstitial"); mInterstitialAd.loadAd(adRequest); } }

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

mInterstitialAd.setInterstitialAdEventListener(new InterstitialAdEventListener() { @Override public void onAdLoaded() { Log.i(TAG, "onAdLoaded"); } @Override public void onAdFailedToLoad(@NonNull AdRequestError error) { // Handle the error Log.i(TAG, error.getDescription()); } @Override public void onAdDismissed() { // Called when an interstitial ad has been dismissed. Log.d("TAG", "The ad was dismissed."); } @Override public void onAdShown() { // Called when an interstitial ad has been shown. Log.d("TAG", "The ad was shown."); } @Override public void onImpression(@Nullable final ImpressionData impressionData) { // Called when an impression was tracked Log.d("TAG", "The ad imprassion was tracked."); } @Override public void onAdClicked() { // Called when user clicked on the ad. Log.d("TAG", "The ad was clicked."); } @Override public void onReturnedToApplication() { // Called when user returned to application after click. Log.d("TAG", "The ad was clicked."); } @Override public void onLeftApplication() { // Called when user is about to leave application after tapping on an ad. Log.d("TAG", "The ad left application after click."); } });

Межстраничная реклама должна отображаться во время естественных пауз в работе приложения. Хороший пример — между уровнями игры или после того, как пользователь выполнил задачу. Чтобы показать межстраничное объявление, используйте метод show()

if (mInterstitialAd.isLoaded()) { mInterstitialAd.show(); } else { Log.d("TAG", "The interstitial ad wasn't ready yet."); }

Полная инструкция по замене Admob на медиацию Яндекса описана на странице справки компании Android, iOS.

Если вы разрабатываете игру на платформе Unity, инструкция по замене библиотеки Admob на Yandex Ads здесь

2323
6 комментариев

А что с деньгами случилось? Показывает ли Яндекс лучший CPM?

2
Ответить

Эх, если бы кто для Unreal Engine плагин Яндекс рекламы запилил...

2
Ответить

Интересный результат

1
Ответить

встроил их SDK для UNITY3D. В итоге баннера не отображаются. 5 дней общения с ТП к результату не привело...... Скинули в итоге пример кода на Kotlin... это конечно хорошо, но зачем тогда говорить, что есть готовый инструмент для работы с юнькой.. Игра вышла неделю назад, баннера по прежнему не работают.... разочарован, не ждал такого от Яндекса...

Ответить

А у Вас не осталось примера интеграции на Kotlin, если есть не могли бы Вы поделиться?

Ответить

Комментарий недоступен

Ответить