Инструменты Как грамотно встроить Google Admob Interstitial рекламу в Android приложение

root

Администратор
Команда форума
 
16 Авг 2013
1.279
10.939
36
При разработке и продвижении приложений мне часто приходится сталкиваться с интеграцией Admob рекламы в мои андроид приложения на Java, по этому я решил запилить небольшой мануал как это сделать.

Также в большинстве мануалов не написано про подгрузку (Preload) рекламы. Из-за я сам поимел много проблем, пытаясь понять почему-же у моих объявлений в приложениях такой низкий Show Rate.
Т.е. ситуация была следующая - реклама гугла отправляла запрос на сервер с целью загрузки(прелоада) рекламы. Далее реклама загружалась в переменную AdRequest adRequest. После чего она привязывалась к блоку интерстишел рекламы через interstitial.loadAd(adRequest) и отображалась через interstitial.show();

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

Решение проблемы заключается в том, что отправлять запрос на загрузку рекламы необходимо прямо при загрузке приложения. Таким образом активити с рекламой отобразится мгновенно когда вы это пожелаете. А после отображения рекламы нужно снова отправить запрос на рекламу через interstitial.loadAd(adRequest);

А теперь подробнее:

Я в приложения добавляю Firebase, по этому напишу как это делается при помощи Firebase.

1. Открываем файл build.gradle (Module: app). В него добавляем строку
implementation 'com.google.firebase:firebase-ads:17.1.3'

Вместо 17.1.3 пишем номер последней стабильной версии, которую смотрим тут:

2. Далее же нам потребуется 2 метода. 1 метод - для подгрузки (preload) рекламы Admob с сервера гугл. 2 метод - для отображения уже подгруженной рекламы.

1. Код для подгрузки рекламы:
Определяем статичную переменную
static InterstitialAd interstitial;
После чего добавляем метод, который будет выполнять подгрузку рекламы в переменную interstitial.
Java:
public static void requestNewInterstitial(Context context) {
    interstitial = new InterstitialAd(context);
    interstitial.setAdUnitId(context.getString(R.string.interstitial_ad));
    AdRequest adRequest = new AdRequest.Builder().build();
    interstitial.loadAd(adRequest);
}
Как я уже написал выше надо выполнить этот метод при загрузке приложения. Запихните его в какое-то MainActivity в метод onCreate или в какой-то другой класс, который загружается при загрузке приложения.

2. Отображаем рекламу когда нам это необходимо:
Java:
public static void showAdmobAds(Context context) {
interstitial.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        if (interstitial.isLoaded()) {
            interstitial.show();
        }
        else {
            Log.d("LOG", "Admob ad wasn't loaded yet");
        }
    }
    @Override
    public void onAdFailedToLoad(int errorCode) {
        Log.d("LOG", "showAdmobAds onAdFailedToLoad error code: " + errorCode);
    }
    @Override
    public void onAdOpened() {
        // Code to be executed when the ad is displayed.
    }
    @Override
    public void onAdClicked() {
        // Code to be executed when the user clicks on an ad.
    }
    @Override
    public void onAdLeftApplication() {
        // Code to be executed when the user has left the app.
    }
    @Override
    public void onAdClosed() {
        Log.d("LOG", "Admob ad closed");
    }
});
}
Код отображения рекламы можно сократить до:

Java:
if (interstitial.isLoaded()) {
            interstitial.show();
        }
        else {
            Log.d("LOG", "Admob ad wasn't loaded yet");
        }
Но при этом если будут какие-то проблемы с рекламой, т.е например если она просто не будет отображаться, то в логе LOG вы увидите код ошибки и сможете загуглить причину.

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

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

prolisk

Ищет темы
14 Апр 2015
94
7
1
31
bdseo.ru
Сейчас игры в unity делаю, добавил рекламу через unity ads, адмоб какие-то глюки были, да и с этими их проверками (после 10 баксов, проверка адреса и т.д.) решил не заморачиваться.
Посмотрю как с юнити будет, у них таких проверок пока не видел.