Показ рекламы

Если в вашем приложении показывается реклама, вы можете перенести все управление ей в Finteza. Рекламные кампании на Android-устройствах можно будет запускать точно в срок и сразу для всех пользователей — без модификации приложения, ожидания публикации новой версии в Google Play и обновления всех устройств.

Фактически, в вашем приложении будут только определены места для отображение рекламы, а все управление содержимым, подробная статистика и конверсии будут доступны в Finteza.

В Finteza все рекламные объявления называются баннерами, но это не означает, что вы ограничены статичными изображениями и GIF-анимацией. Баннер — это контейнер для любого содержимого, в том числе HTML5: лендинги, карусели, всплывающие окна и т.д.

В SDK за загрузку и отображение содержимого баннеров отвечает класс FintezaBannerView.

Создание рекламной зоны в Finteza #

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

Перейдите в раздел "Сайты" в панели Finteza, найдите ваше приложение и нажмите "Добавить зону":

  • Задайте название и разрешенные форматы контента. На данный момент поддерживаются JPG, PNG, GIF и HTML.
  • Укажите конкретные размеры зоны, если они заранее известны, или выберите автоматическое масштабирование по размеру контента.
  • Сохраните изменения и скопируйте идентификатор зоны. Его потребуется указать в приложении.
Создание рекламной зоны для сайта/приложения

Создание и инициализация баннера в приложении #

Вы можете создать баннер, добавив его в XML Layout или программно.

XML Layout

Создайте объект макета:

<net.metaquotes.finteza.banner.FintezaBannerView
    android:id="@+id/finteza_banner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:website="{WEBSITE_URL}"
    app:zoneId="{ZONE_ID}" />

В {WEBSITE_URL} укажите имя приложения или домен сайта, которому соответствует зона. В качестве {ZONE_ID} укажите идентификатор рекламной зоны из Finteza. Эти параметры являются обязательными.

При необходимости задайте время ротации в секундах в дополнительном параметре rotationTime. По умолчанию оно составляет 10 минут.

    app:rotationTime="20"

Программно

Для создания баннера используйте следующий код:

FintezaBannerView banner = new FintezaBannerView(context, ZONE_ID, WEBSITE_URL);

В {WEBSITE_URL} укажите имя приложения или домен сайта, которому соответствует зона. В качестве {ZONE_ID} укажите идентификатор рекламной зоны из Finteza. Эти параметры являются обязательными.

При необходимости задайте время ротации в секундах, вызвав метод banner.setRotationTime. По умолчанию оно составляет 10 минут.

banner.setRotationTime(20);

Загрузка контента #

Для запуска процесса загрузки контента из Finteza в баннер в вашем приложении вызовите метод load.

При работе через XML Layout, получите баннер методом findViewById, передав в него идентификатор баннера из свойства android:id. Далее вызовите для него метод load.

FintezaBannerView banner = findViewById(R.id.finteza_banner);
banner.load();

Если баннер создан программно, просто вызовите для него load:

banner.load();

Дополнительные настройки #

Вы можете задать callback для получения уведомлений о статусе загрузки контента. Для этого реализуйте интерфейс OnBannerLoadListener:

banner.setOnLoadListener(new OnBannerLoadListener() {
    @Override
    public void onLoaded() {
        // Успешная загрука баннера
    }
    @Override
    public void onFail() {
        // Ошибка
    }
});

Переопределение параметров #

Вы можете переопределить идентификатор зоны и адрес сайта, заданные через XML Layout или в конструкторе FintezaBannerView. Для этого вызовите следующие методы:

banner.setZoneId(ZONE_ID);  // идентификатор зоны
banner.setWebsite(WEBSITE_URL); // адрес сайта

Ротация рекламы #

Время ротации рекламных объявлений задается свойством rotationTime в секундах (по умолчанию 10 минут). Для баннеров, предполагающих ротацию, метод load должен вызываться при каждом показе родительского вида, содержащего баннер. Это не приведет к лишним сетевым запросам до истечения времени, заданного в rotationTime.

banner.rotationTime = 60  // ротация каждую минуту

Для отключения ротации укажите rotationTime = 0.

Параметр rotationTime должен быть задан до вызова метода load.