Баннеры Android


Инициализация

Для показа баннеров форматов 320x50, 300x250 и 728x90 и Adaptive в своем приложении необходимо создать экземпляр класса MyTargetView. MyTargetView - визуальный компонент, наследник ViewGroup, который должен быть добавлен на экран приложения.

После создания экземпляра ему необходимо установить ваш slotId.

По умолчанию устанавливается адаптивный формат баннера. При этом баннер автоматически растягивается по ширине экрана с сохранением пропорций, а высота будет не менее 50dip, но не более 15% от высоты экрана. Система сама следит за изменением размеров экрана/переворотом и изменяет размер баннера соответственно.

Есть возможность переустановить свойство adSize. В этом случае SDK перестанет отслеживать изменения ориентации устройства и менять размеры адаптивного баннера. В этом случае при использовании баннеров адаптивного размера необходимо самостоятельно отслеживать изменения

private MyTargetView adView;
 
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout);
 
    // Включение режима отладки
    // MyTargetView.setDebugMode(true);
 
 
    // Создаем экземпляр MyTargetView
    adView = new MyTargetView(this);
     
    // Задаём id слота
    adView.setSlotId(YOUR_SLOT_ID);
 
    // опционально: если не задать размер, то будет использоваться адаптивный формат
    adView.setAdSize(AdSize.ADSIZE_320x50);
}

Загрузка и показ рекламных объявлений

Созданный и настроенный экземпляр MyTargetView необходимо добавить на экран приложения. Для получения уведомлений (таких как успешная загрузка данных или ошибка загрузки, клик по рекламному объявлению) необходимо создать экземпляр MyTargetView.MyTargetViewListener и установить его в качестве слушателя событий, после чего можно запустить загрузку данных. После успешной загрузки данных можно запустить показ рекламных объявлений.
private MyTargetView adView;
 
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout);
 
 
    RelativeLayout layout = (RelativeLayout) findViewById(R.id.activityLayout);
 
    // Создаем экземпляр MyTargetView
    adView = new MyTargetView(this);
     
    // Устанавливаем id слота
    adView.setSlotId(YOUR_SLOT_ID);
 
    // Устанавливаем LayoutParams
    adViewLayoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    adViewLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    adView.setLayoutParams(adViewLayoutParams);
     
    // Устанавливаем слушатель событий
    adView.setListener(new MyTargetView.MyTargetViewListener()
    {
        @Override
        public void onLoad(MyTargetView myTargetView)
        {
            // Данные успешно загружены, запускаем показ объявлений
            layout.addView(adView);
        }
 
        @Override
        public void onNoAd(String reason, MyTargetView myTargetView)
        {  
        }
 
 
        @Override
        public void onShow(MyTargetView myTargetView)
        {
        }
 
        @Override
        public void onClick(MyTargetView myTargetView)
        {
        }
    });
     
    // Запускаем загрузку данных
    adView.load();
}
     
@Override
protected void onDestroy()
{
    if (adView != null) adView.destroy();
    super.onDestroy();
}

Установка MyTargetView в xml

Имеется возможность установить MyTargetView как элемента в layout xml.
<com.my.target.ads.MyTargetView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/view_ad"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:myTarget_isRefreshAd="false"  // отключение ротации баннеров
    app:myTarget_adSize="banner_320x50" // указание формата, воможные значения: banner_320x50, banner_30x250, banner_728x90, adaptive
    app:myTarget_slotId="7250"> // номер слота
</com.my.target.ads.MyTargetView>

Ротация

Рекламные объявления ротируются каждые 60 секунд. Вы можете отключить автоматическую ротацию объявлений при инициализации экземпляра MyTargetView. Ротируются только баннеры форматов 320х50 и 728x90, баннеры 300х250 не ротируются.
// Выключение автоматической ротации баннеров
adView.setRefreshAd(false);
Баннер 320x50

Медиация с другими рекламными SDK

Для баннеров поддерживается медиация с Admob SDK и Mopub SDK.

Admob

Admob официально поддерживает медиацию myTarget. Чтобы настроить показ баннеров myTarget при помощи SDK Admob, нужно сделать следующее:

  1. Настроить группу медиации в настройках рекламного блока AdMob Пожалуйста, ознакомьтесь с полной версией инструкции
    https://developers.google.com/admob/android/mediation/mytarget#step_2_configure_mediation_settings_for_your_admob_ad_unit
  2. Импортировать myTarget SDK и адаптер. Никакого дополнительного кода писать не нужно
  3. Протестировать интеграцию

Медиация Mopub

Настройка медиации осуществляется на сайте http://www.mopub.com/

Для создания сети медиации, нужно зайти в раздел Networks и добавить Custom Native Network, где необходимо задать следующие поля:
Поле
Значение
CUSTOM EVENT CLASS
com.my.target.ads.mediation.MyTargetMopubCustomEventBanner
CUSTOM EVENT CLASS DATA
{"slotId":"<your slot id>"}
Настройка параметров

Задание размера

myTarget SDK поддерживает форматы 320х50, 300х250 и 728х90. Они перечислены в интерфейсе MyTargetView.AdSize:
moPubView = new MoPubView(this);
         
Map<String, Object> localExtras = new HashMap<>();
...
localExtras.put("mytarget_adsize", MyTargetView.AdSize.BANNER_320x50);
 
moPubView.setLocalExtras(localExtras);
Вам помогла эта статья?
Да
Нет