Установка стандартного баннера

Размещение контейнера com.madnet.ads.AdStaticView в коде приложения

Для размещения стандартного баннера необходимо сделать следующее:

  1. Импортировать класс com.madnet.ads.AdStaticView.
  2. Объявить экземпляр класса AdStaticView.
  3. Создать экземпляр класса AdStaticView и указать ${PID} идентификатор, выданный вам для каждого конкретного рекламного блока системой MADNET.
  4. Добавить компонент к UI вашего приложения.
  5. Вызвать метод загрузки баннеров.
import com.madnet.ads.AdRequest;
import com.madnet.ads.AdStaticView;

public class BannerExample extends Activity {
    private AdStaticView adView;				
    // Здесь необходимо указать ваш ID, полученный от сервиса MADNET
    private static final String MY_SPACE_ID = "${PID}";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // Размер рекламного места
        Dimension dimension = Dimension.MAD_SIZE_320x50;
        adView = new AdStaticView(this, dimension, MY_SPACE_ID);
        LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);
        // Добавление AdStaticView на существующий Layout
        layout.addView(adView);
        // Отправка запроса на баннеры
        adView.showBanners(new AdRequest.Builder().getRequest());
    }
}

Размещение контейнера com.madnet.ads.AdStaticView средствами XML

Контейнер может быть размещен с помощью XML аналогично любому другому компоненту View:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mad="http://schemas.android.com/apk/lib/com.madnet.ads"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
<com.madnet.ads.AdStaticView android:id="@+id/adView"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              mad:space_id="${PID}"
              mad:dimension="MAD_SIZE_320x50"
              mad:autoload="true"/>
</LinearLayout>

Здесь в качестве параметра mad:dimension выступает наименование соответствующей константы. Полный список констант приведен ниже.

Примечание: обратите внимание на атрибут mad:autoload="true". Если эта опция включена, то ротация баннеров начнется незамедлительно после создания компонента автоматически.

Управление контейнером.

После создания экземпляра класса AdStaticView, свойства этого объекта могут быть изменены, даже если в текущий момент уже происходит ротация баннеров. К этим свойствам относятся:

  • Duration - продолжительность анимации (от 0 до 5000 мс) при смене баннеров. Если установить значение в 0, баннеры будут сменяться без анимации.
  • Space ID - ${PID} идентификатор блока площадки.
  • Test Mode - включить/выключить тестовый режим.
  • AdListener - слушатель событий взаимодействия пользователя и баннера.
  • CurrentlyAnimated - флаг только для чтения, показывающий, происходит ли в данный момент анимация смены баннеров.
  • CloseButtonEnabled - boolean-флаг, позволяющий включить или выключить кнопку закрытия на баннере, на кнопку также можно навесить слушатель закрытия.
  • CloseButtonListener - слушатель кнопки закрытия баннера (игнорируется, если кнопка отключена).

Для того, чтобы изменить временной интервал, в течение которого происходит анимация баннеров, можно воспользоваться методом setDuration (long millis) класса AdStaticView. С помощью этого метода также можно удалить анимацию при смене баннеров, приняв значение millis равным нулю.

Для передачи информации о пользователе в запросе на рекламу необходимо: создать экземпляр класса AdRequest и вызвать метод showBanners. Например, так:

Builder adRequestBuilder = new AdRequest.Builder();
adRequestBuilder.setGender(AdRequest.Gender.MALE);
AdRequest newRequest = adRequestBuilder.getRequest();
adView.showBanners(newRequest);

Уничтожение контейнера

Внимание! Раздел содержит важную информацию по предотвращению проблем с утечками памяти.

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

Баннер может быть уничтожен в любой момент, но по завершении работы Activity он должен быть уничтожен в обязательном порядке, в противном случае произойдет утечка памяти. Используйте возможность переопределить метод onDestroy() класса Activity, чтобы обезопасить ваше приложение от замусоривания памяти. Также, для обеспечения правильной работы контейнера на всех этапах жизненного цикла Activity, необходимо переопределить и другие события - onResume(), onStart() и т.п., как в примере ниже.

@Override
    protected void onDestroy() {
    this.adView.dismiss();        
    super.onDestroy();
}
@Override
protected void onStop() {
    this.adView.pause();        
    super.onStop();
}
@Override
protected void onPause() {  
    this.adView.pause();        
    super.onPause();
}
@Override
protected void onResume() {
    super.onResume();
    this.adView.resume();        
}

Размеры баннера

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

РазмерКонстанта
320x50 MAD_SIZE_320x50
468x60 MAD_SIZE_468x60
120x600 MAD_SIZE_120x600
160x600 MAD_SIZE_160x600
728x90 MAD_SIZE_728x90
300x50 MAD_SIZE_300x50
216x36 MAD_SIZE_216x36
216x54 MAD_SIZE_216x54
168x28 MAD_SIZE_168x28
168x42 MAD_SIZE_168x42
120x20 MAD_SIZE_120x20
120x30 MAD_SIZE_120x30
320x480 MAD_SIZE_320x480
300x250 MAD_SIZE_300x250
1024x90 MAD_SIZE_1024x90

Пользовательские размеры

Для использования собственного размера контейнера com.madnet.ads.AdStaticView необходимо самостоятельно создать новый объект класса com.madnet.ads.Dimension, а в настройках блока вашей площадки снять галочку "Точный размер".

Пример:

import com.madnet.ads.AdRequest;
import com.madnet.ads.AdStaticView;

public class BannerExample extends Activity {

private static final String MY_SPACE_ID = “${PID}”;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Создание пользовательского размера контейнера
        Dimension dimension = new Dimension(421, 37);
        AdStaticView adView = new AdStaticView(this, dimension, MY_SPACE_ID);
        LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);

        // Размещение контейнера на экране
        layout.addView(adView); 

        // Загрузка баннеров
        adView.showBanners(new AdRequest.Builder().getRequest());
    }
}

Для создания контейнера с пользовательскими размерами средствами XML в качестве наименования размера требуется использовать значение custom.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0
Еще есть вопросы? Отправить запрос

Комментарии

На базе технологии Zendesk