Межстраничные объявления

Межстраничные объявления – это полноэкранный формат, который закрывает все элементы интерфейса приложения. Обычно такая реклама показывается при естественных переходах между разделами приложения или уровнями игры. Пользователь может нажать на объявление и перейти на сайт рекламодателя или закрыть его и продолжить работу с приложением. Благодаря прямым призывам к действию и крупному формату такая реклама особенно эффективна на мобильных устройствах.

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

В этом руководстве описывается, как интегрировать межстраничные объявления в приложение для Android. При этом используется простой класс Activity и методы SDK для предварительной загрузки и последующего показа тестового объявления.

Полезные ресурсы

If you haven't already completed it, consider running through the Android Quick Start for Mobile Ads.

Требования

Пример кода в этом руководстве взят из проекта, в котором уже используется Google Mobile Ads SDK. Чтобы использовать этот SDK в своем приложении, выполните в Android Studio следующие действия:

Добавление межстраничных объявлений в объект Activity

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

...
public class MainActivity extends ActionBarActivity {

    PublisherInterstitialAd mPublisherInterstitialAd;
    Button mNewGameButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mNewGameButton = (Button) findViewById(R.id.newgame_button);

        mPublisherInterstitialAd = new PublisherInterstitialAd(this);
        mPublisherInterstitialAd.setAdUnitId("AD_UNIT_ID");

        mPublisherInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                requestNewInterstitial();
                beginPlayingGame();
            }
        });

        requestNewInterstitial();

        mNewGameButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mPublisherInterstitialAd.isLoaded()) {
                    mPublisherInterstitialAd.show();
                } else {
                    beginPlayingGame();
                }
            }
        });

        beginPlayingGame();
    }

    private void requestNewInterstitial() {
        PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
                  .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
                  .build();

        mPublisherInterstitialAd.loadAd(adRequest);
    }

    private void beginPlayingGame() {
        // Play for a while, then display the New Game Button
    }
}
...

Помимо новой переменной экземпляра, mInterstitial, в этом коде есть 4 изменения объекта Activity. Рассмотрим их все по порядку.

Создание экземпляра объекта InterstitialAd

...
mPublisherInterstitialAd = new PublisherInterstitialAd(this);
mPublisherInterstitialAd.setAdUnitId("/6499/example/interstitial");
requestNewInterstitial();
...

Здесь переменная экземпляра mPublisherInterstitialAd создается и ей присваивается идентификатор рекламного блока. Межстраничные объявления, в отличие от баннеров, не определяются через файл макета XML. Они создаются и настраиваются в Java-коде приложения. Один объект PublisherInterstitialAd может использоваться для запроса и показа нескольких межстраничных объявлений в период действия объекта Activity.

Показ межстраничного объявления

...
mNewGameButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mPublisherInterstitialAd.isLoaded()) {
            mPublisherInterstitialAd.show();
        } else {
            beginPlayingGame();
        }
    }
});
...

Так выполняется проверка, загружено ли межстраничное объявление. Если да, то оно показывается. Если объявление не готово, запускается следующая игра.

Создание объекта AdListener

...
mPublisherInterstitialAd.setAdListener(new AdListener() {
    @Override
    public void onAdClosed() {
        requestNewInterstitial();
        beginPlayingGame();
    }
});
...

Теперь необходимо настроить объект AdListener, который включает в себя обработчик для события onAdClosed (оно регистрируется, когда пользователь закрывает межстраничное объявление). Код ниже вызывает метод requestNewInterstitial для скачивания следующего объявления и запуска новой игры.

requestNewInterstitial

...
private void requestNewInterstitial() {
    PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
              .addTestDevice("YOUR_DEVICE_HASH")
              .build();

    mPublisherInterstitialAd.loadAd(adRequest);
}
...

Объект PublisherAdRequest.Builder используется для создания простого запроса, который затем передается в метод loadAd объекта PublisherInterstitialAd.

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

Результат

Вот как выглядит приложение с межстраничным объявлением:

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

Рекомендации

Убедитесь, что межстраничные объявления подходят для вашего приложения.
Межстраничные объявления лучше всего показывать в приложениях, в которых есть переходы между экранами или страницами, например после прохождения уровня игры или публикации фотографии. Поскольку пользователь уже готов к небольшому перерыву, объявление не покажется неуместным. Подумайте, в какие моменты лучше всего показывать такую рекламу, чтобы она не казалась навязчивой.
На время показа межстраничного объявления не забудьте приостановить действия в приложении.
В качестве межстраничного может использоваться текстовое, графическое, видеообъявление и т. п. Очень важно, чтобы при показе рекламы высвобождались ресурсы приложения, достаточные для обработки объявлений. Например, когда вы отправляете запрос на показ объявления, приостановите аудио в приложении. Возобновить воспроизведение звука можно в обработчике событий onAdClosed, который активируется, когда пользователь заканчивает взаимодействовать с объявлением. Кроме того, рекомендуется приостановить ресурсоемкие вычислительные операции (например, цикл игры) на время показа рекламы. Это обеспечит более быструю загрузку объявлений и плавный показ видео.
Обеспечьте достаточное время для загрузки.
Не менее важно убедиться, что объявления загружаются достаточно быстро и пользователю не приходится долго ждать. Асинхронная загрузка и вызов метода loadAd() перед вызовом show() помогут заранее подготовить объявление к показу.
Не злоупотребляйте рекламой в приложении.
Конечно, хочется добавить в приложение как можно больше рекламы, которая будет приносить доход, но также стоит помнить о CTR и удобстве для пользователей. Чтобы они не покидали приложение, размещайте рекламу только в подходящие для этого моменты.

Пример

Пример приложения с межстраничными объявлениями можно скачать в GitHub по ссылке ниже.

Скачать пример приложения

Часто задаваемые вопросы

При попытке загрузить второе межстраничное объявление процесс прерывается и в журнал заносится соответствующая запись (An interstitial is already loading. Aborting.). В чем дело?
Такое происходит, когда приложение пытается загрузить новое межстраничное объявление, в то время как показ старого ещё не завершился. Убедитесь, что объект loadAd правильно размещен в коде (мы рекомендуем добавлять его в метод onAdClosed объекта AdListener).
При вызове метода loadAd() в объекте InterstitialAd я получаю сообщение о том, что показ межстраничного объявления невозможен, поскольку оно не готово (Cannot present interstitial. It is not ready.). Почему это происходит?
Это означает, что получить межстраничное объявление не удалось. Воспользуйтесь методом isLoaded, чтобы проверить, готово ли объявление к показу.
Объявления не показываются, а в журнале появляется сообщение об ошибке запроса и о том, что объявления для показа отсутствуют (Request Error: No ads to show.).
При создании рекламного блока необходимо обязательно указать тип объявления "межстраничное". Объекты PublisherInterstitialAd поддерживают только рекламные блоки, в которых включен показ именно такой рекламы.

Оставить отзыв о...

Текущей странице
SDK for DFP Users on Android
Нужна помощь? Обратитесь в службу поддержки.