Задача: показывать рекламу внутри мобильного приложения с помощью Google AdMob. Встраиваем рекламу внутрь нативных элементов или при переходе между экранами.
Внедрение AdMob в Android приложение
AdMob позволяет создавать разные типы рекламных блоков. Любой тип объявления подразумевает первоначальное создание рекламного блока в консоли AdMob. Как только он будет готов, у вас будет ID, который можно использовать для дальнейшего показа рекламы в вашем приложении.
Тип рекламы: Баннер
AdView
для баннера можно добавить прямо в xml, но, если это сделать, на некоторых устройствах не получится динамически установить AdUnitId — идентификатор объявления, которое нужно показать. Динамическая установка ID полезна, когда, например, вы при сборке, используя переменные, устанавливаете тестовые или реальные данные.
Баннер поддерживает разные размеры. В нашем примере будет использовать SMART_BANNER
, который подстраивается под контейнер. По крайне мере должен.
mAdView = new AdView(itemView.getContext()); mAdView.setAdSize(AdSize.SMART_BANNER); mAdView.setAdUnitId(BuildConfig.AD_BANNER);
Загрузка объявления в контейнер выполняется с помощью AdRequest. Builder позволяет задать настройки запроса, например такие, как тестовые device id для отображение рекламы, ключевые слова, дату рождения и т.д. Также можно подписаться на окончание загрузки объявления, например, чтобы убрать loader, если вы цените «отзывчивость» приложения.
mAdView.setAdListener(new AdListener() { @Override public void onAdLoaded() { super.onAdLoaded(); progress.setVisibility(View.GONE); mAdView.setVisibility(View.VISIBLE); } });
Тип рекламы: Межстраничное объявление
Объявление на полный экран, которое показывает во время перехода между экранами — хороший способ (с точки зрения разработчика) монетизации бесплатных приложений. Вы заставляете пользователя отвлечься на рекламу только в тот момент, когда он закончил действие в текущем контексте. Например закончил уровень, и теперь можно немного загрузить его рекламой.
Для отображения межстраничного объявления необходимо сначала его подготовить.
mInterstitialAd = new InterstitialAd(context); mInterstitialAd.setAdUnitId(BuildConfig.AD_INTER); mInterstitialAd.loadAd(new AdRequest.Builder().build());
Далее остается только показать объявление, проверив предварительно, что оно загружено.
if (mInterstitialAd.isLoaded()) { mInterstitialAd.setAdListener(new AdListener() { @Override public void onAdClosed() { // Load new ad to show next if needed mInterstitialAd.loadAd(new AdRequest.Builder().build()); // your action after ad closed } }); mInterstitialAd.show(); } else { Toast.makeText(itemView.getContext(), R.string.interst_not_loaded, Toast.LENGTH_SHORT).show(); }
Тип рекламы: С вознаграждением
Данный тип рекламы позволяет награждать пользователей за просмотр рекламы. Таким образом разработчики монетизируют бесплатные игры, открывая контент после добровольного просмотра рекламы. Т.к. в тестовом примере пока что нет вознаграждений данный пример отсутствует в коде.
Тип рекламы: Нативные улучшения
Такая реклама позволяет еще более нативно встроить рекламные блоки в ваше приложение. Он отличается от баннеров только тем, что данные вам приходят в «сыром» виде. После этого все что пришло, нужно отобразить в вашем приложении в вашем дизайне.
Удобный, но кропотливый способ отображения рекламы, который хорошо подходит для контентных приложений.
Реализованный пример показа рекламы AdMob внутри приложения
Исходники примера на GitHub встраивания рекламы в нативный RecyclerView
Исходники примера на Github открытия межстраничного рекламного объявления
Пример можно скачать и посмотреть в Google play
Реклама — лишь один из способов монетизации вашего Android приложения. Используйте его в комбинации, с, например, внутренними покупками.
Не стоит также забывать, что реклама внутри приложения будет показана на релевантном пользователю языке. В таком случае будет странно видеть, например, рекламу на немецком языке, когда сам интерфейс на английском. Когда ваше приложение наберет популярность, то не забудьте про локализацию вашей програмы.