private MyTargetView adView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем экземпляр MyTargetView
adView = new MyTargetView(this);
// Задаём id слота
adView.setSlotId(YOUR_SLOT_ID);
// опционально: если не задать размер, то будет использоваться адаптивный формат
adView.setAdSize(AdSize.ADSIZE_320x50);
}
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();
}
<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>
// Выключение автоматической ротации баннеров
adView.setRefreshAd(false);
private InterstitialAd ad;
private void initAd()
{
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем экземпляр InterstitialAd
ad = new InterstitialAd(YOUR_SLOT_ID, this);
}
private InterstitialAd ad;
private void initAd()
{
// Создаем экземпляр InterstitialAd
ad = new InterstitialAd(YOUR_SLOT_ID, this);
// Устанавливаем слушатель событий
interstitialAd.setListener(new InterstitialAd.InterstitialAdListener()
{
@Override
public void onLoad(InterstitialAd ad)
{
}
@Override
public void onNoAd(String reason, InterstitialAd ad)
{
}
@Override
public void onClick(InterstitialAd ad)
{
}
@Override
public void onDisplay(InterstitialAd ad)
{
}
@Override
public void onDismiss(InterstitialAd ad)
{
}
@Override
public void onVideoCompleted(InterstitialAd ad)
{
}
});
// Запускаем загрузку данных
ad.load();
}
@Override
public void onLoad(InterstitialAd ad)
{
// Запускаем показ
// в отдельном Activity
ad.show();
}
private RewardedAd ad;
private void initAd()
{
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем экземпляр RewardedAd
ad = new RewardedAd(YOUR_SLOT_ID, this);
}
private RewardedAd ad;
private void initAd()
{
// Создаем экземпляр RewardedAd
ad = new RewardedAd(YOUR_SLOT_ID, this);
// Устанавливаем слушатель событий
ad.setListener(new RewardedAd.RewardedAdListener()
{
@Override
public void onLoad(RewardedAd ad)
{
}
@Override
public void onNoAd(String reason, RewardedAd ad)
{
}
@Override
public void onClick(RewardedAd ad)
{
}
@Override
public void onDisplay(RewardedAd ad)
{
}
@Override
public void onDismiss(RewardedAd ad)
{
}
@Override
void onReward(@NonNull Reward reward, @NonNull RewardedAd ad)
{
}
});
// Запускаем загрузку данных
ad.load();
}
@Override
public void onLoad(RewardedAd ad)
{
// Запускаем показ
ad.show();
}
Reward.type
private NativeAd ad;
private void initAd()
{
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем экземпляр NativeAd
ad = new NativeAd(YOUR_SLOT_ID, this);
}
private NativeAd ad;
private void initAd()
{
// Создаем экземпляр NativeAd
ad = new NativeAd(YOUR_SLOT_ID, this);
// Устанавливаем слушатель событий
ad.setListener(new NativeAd.NativeAdListener()
{
@Override
public void onLoad(NativePromoBanner banner, NativeAd ad)
{
}
@Override
public void onNoAd(String reason, NativeAd ad)
{
}
@Override
public void onClick(NativeAd ad)
{
}
@Override
public void onShow(NativeAd ad)
{
}
@Override
public void onVideoPlay(NativeAd ad)
{
}
@Override
public void onVideoPause(NativeAd ad)
{
}
@Override
public void onVideoComplete(NativeAd ad)
{
}
});
// Запускаем загрузку данных
ad.load();
}
ad.setCachePolicy(CachePolicy.NONE);
ad.load();
ad.setMediaListener(new NativeAdMediaListener() {
@Override
public void onIconLoad(@NonNull NativeAd ad)
{
// уведомление об успешной загрузке иконки
}
@Override
public void onImageLoad(@NonNull NativeAd ad)
{
// уведомление об успешной загрузке основного изображения
}
});
ad.load();
@Override
public void onLoad(NativePromoBanner banner, NativeAd ad)
{
// Заголовок рекламного объявления
String title = banner.getTitle();
// Основной текст
String description = banner.getDescription();
// Возрастное ограничение. Может быть null
String ageRestrictions = banner.getAgeRestrictions();
// Дисклеймер. Может быть null
String disclaimer = banner.getDisclaimer();
// Текст метки "Реклама"
String advertisingLabel = banner.getAdvertisingLabel();
// Иконка
ImageData icon = banner.getIcon();
// Текст действия для кнопки
String ctaText = banner.getCtaText();
// Свойства, доступные только для объявлений, рекламирующих приложения
if (banner.getNavigationType().equals(NavigationType.STORE))
{
// Рейтинг приложения (0-5)
float rating = banner.getRating();
// Количество оценок
int votes = banner.getVotes();
// Категория приложения
String category = banner.getCategory();
// Подкатегория приложения
String subcategory = banner.getSubcategory();
}
// Свойства, доступные только для объявлений, рекламирующих сайты
else if (banner.getNavigationType().equals(NavigationType.WEB))
{
//Домен сайта
String domain = banner.getDomain();
}
// Пример заполнения визуального компонента
Context context = YourActivity.this;
LinearLayout adViewLayout = new LinearLayout(context);
adViewLayout.setId(R.id.nativeads_ad_view);
TextView titleView = new TextView(context);
titleView.setId(R.id.nativeads_title);
titleView.setText(title);
adViewLayout.addView(titleView);
TextView descriptionView = new TextView(context);
descriptionView.setId(R.id.nativeads_description);
titleView.setText(description);
adViewLayout.addView(descriptionView);
Button btn = new Button(context);
btn.setId(R.id.nativeads_call_to_action);
btn.setText(ctaText);
adViewLayout.addView(btn);
// Создаем MediaAdView
MediaAdView mediaView = NativeViewsFactory.getMediaAdView(context);
mediaView.setId(R.id.nativeads_media_view);
// Создаем IconAdView
IconAdView iconView = new IconAdView(context);
mediaView.setId(R.id.nativeads_icon);
adViewLayout.addView(mediaView);
adViewLayout.addView(iconView);
// Создаём контейнер для креатива
NativeAdContainer nativeAdContainer = new NativeAdContainer(context);
// Добавляем рекламный креатив в контейнер
nativeAdContainer.addView(adViewLayout);
// Регистрируем визуальный компонент
ad.registerView(nativeAdContainer);
// Добавляем на экран
mainLayout.addView(nativeAdContainer, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
...
ad.setAdChoicesPlacement(AdChoicesPlacement.TOP_RIGHT);
ad.load();
...
NativeAdChoicesView myAdChoicesView = createMyAdChoicesView(); // создание своей NativeAdChoicesView
myAdChoicesView.setImageBitmap(bitmap);
myAdChoicesView.setImageDrawable(drawable);
...
...
ad.setAdChoicesPlacement(AdChoicesPlacement.MANUAL);
ad.load();
...
ad.setAdChoicesPlacement(AdChoicesPlacement.DRAWING_MANUAL);
ad.load();
...
customAdChoicesView.setOnClickListener(v->{
ad.handleAdChoicesClick(context)
})
//получение иконки адчойсов через переменную
ad.getBanner().getAdChoicesIcon();
...
//получение иконки адчойсов через слушатель
ad.setAdChoicesListener(new NativeAd.NativeAdChoicesListener() {
@Override
public void onAdChoicesIconLoad(@Nullable ImageData imageData, boolean success, @NonNull NativeAd ad)
{
customAdChoicesView.setImageBitmap(imageData.getBitmap)
}
});
MenuFactory menuFactory = new MenuFactory()
{
@Override
@NonNull public Menu createMenu()
{
return new Menu()
{
@Override
public void setListener(@Nullable Listener listener)
{
//слушатель, у которого нужно вызвать метод onActionClick(menuAction) при нажатии на тот элемент UI, который был отрисован с соответствующим заголовком menuAction
}
@Override
public void addAction(@NonNull MenuAction menuAction)
{
// это объект который содержит в себе заголовок и тип опции адчойсов, эти объекты нужно нужно использовать при отрисовке
}
@Override
public void present(@NonNull Context context)
{
// данный метод вызывается когда необходимо отобразить опции адчойсов с теми menuAction, которые были ранее получены из метода addAction()
}
@Override
public void dismiss()
{
// данный метод вызывается когда необходимо закрыть отрисовку опций адчойсов
}
};
}
};
...
ad = new NativeAd(YOUR_SLOT_ID, menuFactory, this);
ad.load();
NativeAd.NativeAdChoicesOptionListener adChoicesOptionListener = new NativeAd.NativeAdChoicesOptionListener()
{
@Override
public boolean shouldCloseAutomatically()
{
return false;
}
@Override
public void onCloseAutomatically(@NonNull NativeBannerAd ad)
{
}
@Override
public void closeIfAutomaticallyDisabled(@NonNull NativeBannerAd ad)
{
}
};
ad.setAdChoicesOptionListener(adChoicesOptionListener);
@Override
public void onLoad(NativePromoBanner banner, NativeAd ad)
{
...
...
...
// Создаем массив кликабельных визуальных компонентов, заголовка и кнопки призыва к действию
ArrayList<View> clickableViews = new ArrayList<>();
clickableViews.add(titleView);
clickableViews.add(btn);
// Регистрируем визуальный компонент, с кликабельными заголовком и кнопкой призыва к действию
ad.registerView(adViewLayout, clickableViews);
// Добавляем на экран
mainLayout.addView(adViewLayout, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
public void onLoad(NativePromoBanner banner, NativeAd ad)
{
// Создаем визуальный компонент
NativeAdView nativeAdView = NativeViewsFactory.getNativeAdView(ad, YourActivity.this);
// Доступные для настройки внутренние визуальные компоненты
TextView advLabelView = nativeAdView.getAdvertisingTextView();
TextView ageRestrictionView = nativeAdView.getAgeRestrictionTextView();
TextView disclaimerView = nativeAdView.getDisclaimerTextView();
TextView titleView = nativeAdView.getTitleTextView();
TextView descriptionView = nativeAdView.getDescriptionTextView();
Button ctaBtn = nativeAdView.getCtaButtonView();
TextView votesView = nativeAdView.getVotesTextView();
StarsRatingView starsRatingView = nativeAdView.getStarsRatingView();
TextView domainView = nativeAdView.getDomainOrCategoryTextView();
MediaAdView mediaView = nativeAdView.getMediaAdView();
IconAdView iconView = nativeAdView.getIconImageView();
// Создаём контейнер для креатива
NativeAdContainer nativeAdContainer = new NativeAdContainer(context);
// Добавляем рекламный креатив в контейнер
nativeAdContainer.addView(nativeAdView);
// Регистрируем визуальный компонент
ad.registerView(nativeAdContainer);
// Добавляем на экран
mainLayout.addView(nativeAdContainer, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем NativeAdLoader
NativeAdLoader nativeAdLoader = NativeAdLoader.newLoader(YOUR_SLOT_ID, COUNT, this);
// Устанавливаем OnLoad коллбек и загружаем баннеры
nativeAdLoader.setOnLoad(new OnLoad()
{
@Override
public void onLoad(@NonNull List<NativeAd> ads)
{
for (NativeAd ad : ads)
{
// Устанавливаем слушатель событий
ad.setListener(nativeAdListener);
NativePromoBanner promoBanner = ad.getBanner();
// Код, аналогичный методу onLoad интерфейса NativeAdListener
}
}
}).load();
private NativeBannerAd ad;
private void initAd()
{
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем экземпляр NativeBannerAd
ad = new NativeBannerAd(YOUR_SLOT_ID, this);
}
private NativeBannerAd ad;
private void initAd()
{
// Создаем экземпляр NativeBannerAd
ad = new NativeBannerAd(YOUR_SLOT_ID, this);
// Устанавливаем слушатель событий
ad.setListener(new NativeBannerAd.NativeBannerAdListener()
{
@Override
public void onLoad(NativeBanner banner, NativeBannerAd ad)
{
}
@Override
public void onNoAd(String reason, NativeBannerAd ad)
{
}
@Override
public void onClick(NativeBannerAd ad)
{
}
@Override
public void onShow(NativeBannerAd ad)
{
}
});
// Запускаем загрузку данных
ad.load();
}
ad.setCachePolicy(CachePolicy.NONE);
ad.load();
ad.setMediaListener(new NativeBannerAdMediaListener() {
@Override
public void onIconLoad(@NonNull NativeBannerAd ad)
{
// уведомление об успешной загрузке иконки
}
});
ad.load();
@Override
public void onLoad(NativeBanner banner, NativeBannerAd ad)
{
// Заголовок рекламного объявления
String title = banner.getTitle();
// Возрастное ограничение. Может быть null
String ageRestrictions = banner.getAgeRestrictions();
// Дисклеймер. Может быть null
String disclaimer = banner.getDisclaimer();
// Текст метки "Реклама"
String advertisingLabel = banner.getAdvertisingLabel();
// Иконка
ImageData icon = banner.getIcon();
// Текст действия для кнопки
String ctaText = banner.getCtaText();
// Свойства, доступные только для объявлений, рекламирующих приложения
if (banner.getNavigationType().equals(NavigationType.STORE))
{
// Рейтинг приложения (0-5)
float rating = banner.getRating();
// Количество оценок
int votes = banner.getVotes();
}
// Свойства, доступные только для объявлений, рекламирующих сайты
else if (banner.getNavigationType().equals(NavigationType.WEB))
{
//Домен сайта
String domain = banner.getDomain();
}
// Пример заполнения визуального компонента
Context context = YourActivity.this;
LinearLayout adViewLayout = new LinearLayout(context);
adViewLayout.setId(R.id.nativeads_ad_view);
TextView titleView = new TextView(context);
titleView.setId(R.id.nativeads_title);
titleView.setText(title);
adViewLayout.addView(titleView);
Button btn = new Button(context);
btn.setId(R.id.nativeads_call_to_action);
btn.setText(ctaText);
adViewLayout.addView(btn);
// Компонент показа иконки
IconAdView iconView = new IconAdView(context);
mediaView.setId(R.id.nativeads_icon);
adViewLayout.addView(iconView);
// Создаём контейнер для креатива
NativeAdContainer nativeAdContainer = new NativeAdContainer(context);
// Добавляем рекламный креатив в контейнер
nativeAdContainer.addView(adViewLayout);
// Регистрируем визуальный компонент
ad.registerView(adViewLayout);
// Добавляем на экран
mainLayout.addView(nativeAdContainer, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
...
ad.setAdChoicesPlacement(AdChoicesPlacement.TOP_RIGHT);
ad.load();
...
NativeAdChoicesView myAdChoicesView = createMyAdChoicesView(); // создание своей NativeAdChoicesView
myAdChoicesView.setImageBitmap(bitmap);
myAdChoicesView.setImageDrawable(drawable);
...
...
ad.setAdChoicesPlacement(AdChoicesPlacement.MANUAL);
ad.load();
...
ad.setAdChoicesPlacement(AdChoicesPlacement.DRAWING_MANUAL);
ad.load();
...
customAdChoicesView.setOnClickListener(v->{
ad.handleAdChoicesClick(context)
})
//получение иконки адчойсов через переменную
ad.getBanner().getAdChoicesIcon();
...
//получение иконки адчойсов через слушатель
ad.setAdChoicesListener(new NativeBannerAd.NativeBannerAdChoicesListener() {
@Override
public void onAdChoicesIconLoad(@Nullable ImageData imageData, boolean success, @NonNull NativeAd ad)
{
customAdChoicesView.setImageBitmap(imageData.getBitmap)
}
});
MenuFactory menuFactory = new MenuFactory()
{
@Override
@NonNull public Menu createMenu()
{
return new Menu()
{
@Override
public void setListener(@Nullable Listener listener)
{
//слушатель, у которого нужно вызвать метод onActionClick(menuAction) при нажатии на тот элемент UI, который был отрисован с соответствующим заголовком menuAction
}
@Override
public void addAction(@NonNull MenuAction menuAction)
{
// это объект который содержит в себе заголовок и тип опции адчойсов, эти объекты нужно нужно использовать при отрисовке
}
@Override
public void present(@NonNull Context context)
{
// данный метод вызывается когда необходимо отобразить опции адчойсов с теми menuAction, которые были ранее получены из метода addAction()
}
@Override
public void dismiss()
{
// данный метод вызывается когда необходимо закрыть отрисовку опций адчойсов
}
};
}
};
...
ad = new NativeBannerAd(YOUR_SLOT_ID, menuFactory, this);
ad.load();
NativeBannerAd.NativeBannerAdChoicesOptionListener adChoicesOptionListener = new NativeBannerAd.NativeBannerAdChoicesOptionListener()
{
@Override
public boolean shouldCloseAutomatically()
{
return false;
}
@Override
public void onCloseAutomatically(@NonNull NativeBannerAd ad)
{
}
@Override
public void closeIfAutomaticallyDisabled(@NonNull NativeBannerAd ad)
{
}
};
ad.setAdChoicesOptionListener(adChoicesOptionListener);
@Override
public void onLoad(NativeBanner banner, NativeBannerAd ad)
{
...
...
...
// Создаем массив кликабельных визуальных компонентов, заголовка и кнопки призыва к действию
ArrayList<View> clickableViews = new ArrayList<>();
clickableViews.add(titleView);
clickableViews.add(btn);
// Регистрируем визуальный компонент, с кликабельными заголовком и кнопкой призыва к действию
ad.registerView(adViewLayout, clickableViews);
// Добавляем на экран
mainLayout.addView(adViewLayout, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
public void onLoad(NativeBanner banner, NativeBannerAd ad)
{
// Создаем визуальный компонент
NativeBannerAdView nativeBannerAdView = NativeViewsFactory.getNativeBannerAdView(YourActivity.this);
nativeBannerAdView.setupView(banner);
// Доступные для настройки внутренние визуальные компоненты
TextView advLabelView = nativeBannerAdView.getAdvertisingTextView();
TextView ageRestrictionView = nativeBannerAdView.getAgeRestrictionTextView();
TextView disclaimerView = nativeBannerAdView.getDisclaimerTextView();
TextView titleView = nativeBannerAdView.getTitleTextView();
Button ctaBtn = nativeBannerAdView.getCtaButtonView();
TextView votesView = nativeBannerAdView.getVotesTextView();
StarsRatingView starsRatingView = nativeBannerAdView.getStarsRatingView();
TextView domainView = nativeBannerAdView.getDomainOrCategoryTextView();
IconAdView iconView = nativeBannerAdView.getIconImageView();
// Создаём контейнер для креатива
NativeAdContainer nativeAdContainer = new NativeAdContainer(context);
// Добавляем рекламный креатив в контейнер
nativeAdContainer.addView(nativeBannerAdView);
// Регистрируем визуальный компонент
ad.registerView(nativeAdContainer);
// Добавляем на экран
mainLayout.addView(nativeAdContainer, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем NativeBannerAdLoader
NativeBannerAdLoader nativeBannerAdLoader = NativeBannerAdLoader.newLoader(YOUR_SLOT_ID, COUNT, this);
// Устанавливаем OnLoad коллбек и загружаем баннеры
nativeBannerAdLoader.setOnLoad(new OnLoad()
{
@Override
public void onLoad(@NonNull List<NativeBannerAd> ads)
{
for (NativeBannerAd ad : ads)
{
// Устанавливаем слушатель событий
ad.setListener(nativeBannerAdListener);
NativeBanner banner = ad.getBanner();
// Код, аналогичный методу onLoad интерфейса NativeAdListener
}
}
}).load();
private InstreamAd ad;
private void initAd()
{
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем экземпляр InstreamAd
ad = new InstreamAd(YOUR_SLOT_ID, this);
}
private InstreamAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAd
ad = new InstreamAd(YOUR_SLOT_ID, this);
// Устанавливаем плеер
ad.setPlayer(YOUR_PLAYER);
}
customAdChoicesView.setOnClickListener(v->
{
ad.handleAdChoicesClick(context)
})
MenuFactory menuFactory = new MenuFactory()
{
@Override
@NonNull public Menu createMenu()
{
return new Menu()
{
@Override
public void setListener(@Nullable Listener listener)
{
//слушатель, у которого нужно вызвать метод onActionClick(menuAction) при нажатии на тот элемент UI, который был отрисован с соответствующим заголовком menuAction
}
@Override
public void addAction(@NonNull MenuAction menuAction)
{
// это объект который содержит в себе заголовок и тип опции адчойсов, эти объекты нужно нужно использовать при отрисовке
}
@Override
public void present(@NonNull Context context)
{
// данный метод вызывается когда необходимо отобразить опции адчойсов с теми menuAction, которые были ранее получены из метода addAction()
}
@Override
public void dismiss()
{
// данный метод вызывается когда необходимо закрыть отрисовку опций адчойсов
}
};
}
};
...
ad = new InstreamAd(YOUR_SLOT_ID, menuFactory, this);
ad.load();
float getAdVideoDuration();
float getAdVideoPosition();
void setAdPlayerListener(AdPlayerListener listener);
View getView();
void setVolume(float volume);
void playAdVideo(Uri uri, int width, int height);
void pauseAdVideo();
void resumeAdVideo();
void stopAdVideo();
void onAdVideoStarted();
void onAdVideoPaused();
void onAdVideoResumed();
void onAdVideoStopped();
void onAdVideoError(String message);
void onAdVideoCompleted();
void onVolumeChanged(float volume);
private InstreamAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAd
ad = new InstreamAd(YOUR_SLOT_ID, this);
// Устанавливаем плеер SDK
// В качестве параметра можно передать false, если хотим использовать стандартный плеер Android SDK вместо ExoPlayer
ad.useDefaultPlayer();
// Добавляем плеер на экран
layout.addView(ad.getPlayer().getView());
}
private InstreamAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAd
ad = new InstreamAd(YOUR_SLOT_ID, this);
// Устанавливаем слушатель событий
ad.setListener(new InstreamAd.InstreamAdListener()
{
@Override
public void onLoad(InstreamAd instreamAd)
{
// Данные успешно загружены
}
@Override
public void onNoAd(String reason, InstreamAd instreamAd)
{
// Данные не получены
}
@Override
public void onError(String reason, InstreamAd ad)
{
// При проигрывании рекламного видео произошла ошибка
}
@Override
public void onBannerStart(InstreamAd ad, InstreamAd.InstreamAdBanner instreamAdBanner)
{
// Началось проигрывание рекламного видео
}
@Override
public void onBannerPause(InstreamAd ad, InstreamAd.InstreamAdBanner instreamAdBanner)
{
// Проигрывание рекламного видео приостановлено
}
@Override
public void onBannerResume(InstreamAd ad, InstreamAd.InstreamAdBanner instreamAdBanner)
{
// Проигрывание рекламного видео возобновлено
}
@Override
public void onBannerComplete(InstreamAd ad, InstreamAd.InstreamAdBanner instreamAdBanner)
{
// Проигрывание рекламного видео завершено
}
@Override
public void onBannerTimeLeftChange(float timeLeft, float duration, InstreamAd ad)
{
// Вызывается многократно во время воспроизведения рекламного видео, используется для обновления таймера до окончания показа рекламного видео
}
@Override
public void onComplete(String section, InstreamAd ad)
{
// Проигрывание всех рекламных видео в рекламной секции завершено
}
@Override
public void onBannerShouldClose()
{
// Вызывается когда проигрывание рекламы должно быть завершено разработчиком самостоятельно. Пример: ad.skip()
}
});
// Запускаем загрузку данных
ad.load();
}
// Перед началом показа основного видео
ad.startPreroll();
// После показа основного видео
ad.startPostroll();
private InstreamAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAd
ad = new InstreamAd(YOUR_SLOT_ID, this);
// Устанавливаем позиции на первой и пятой секунде видео
ad.configureMidpoints(videoDuration, new float[]{1f,5f});
// или в процентах, на 10% и 50% видео
// ad.configureMidpointsPercents(videoDuration, new float[]{10f,50f});
// Устанавливаем слушатель событий
ad.setListener(new InstreamAd.InstreamAdListener()
{
@Override
public void onLoad(InstreamAd instreamAd)
{
// Данные успешно загружены
// Массив позиций (в секундах), доступных для показа midroll секции
adPositions = ad.getMidPoints();
}
...
});
// Запускаем загрузку данных
ad.load();
}
// Видео доигралось до 5-й секунды и для неё есть позиция в массиве adPositions
ad.startMidroll(adPositions[1]);
public final float duration;
public final boolean allowClose;
public final float allowCloseDelay;
public final int videoWidth;
public final int videoHeight;
public String ctaText;
public boolean hasAdChoices;
public String advertisingLabel;
public ImageData adChoicesIcon;
private void onAdClick()
{
ad.handleClick();
}
public void pause()
public void resume()
public void stop()
public void skip()
public void skipBanner()
public void setVolume(float volume)
public void setLoadingTimeout(int loadingTimeout)
private InstreamAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAd
ad = new InstreamAd(YOUR_SLOT_ID, this);
// Получаем экземпляр дополнительных параметров CustomParams
CustomParams customParams = ad.getCustomParams();
// Задаем возраст
customParams.setAge(25);
// Задаем пол
customParams.setGender(CustomParams.Gender.MALE);
}
private InstreamAudioAd ad;
private void initAd()
{
// Включение режима отладки
// MyTargetManager.setDebugMode(true);
// Создаем экземпляр InstreamAudioAd
ad = new InstreamAudioAd(YOUR_SLOT_ID, this);
}
private InstreamAudioAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAudioAd
ad = new InstreamAudioAd(YOUR_SLOT_ID, this);
// Устанавливаем плеер
ad.setPlayer(YOUR_PLAYER);
}
float getAdAudioDuration();
float getAdAudioPosition();
void setAdPlayerListener(AdPlayerListener listener);
Context getCurrentContext();
void setVolume(float volume);
void playAdAudio(Uri uri);
void pauseAdAudio();
void resumeAdAudio();
void stopAdAudio();
void onAdAudioStarted();
void onAdAudioPaused();
void onAdAudioResumed();
void onAdAudioStopped();
void onAdAudioError(String message);
void onAdAudioCompleted();
void onVolumeChanged(float volume);
private InstreamAudioAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAudioAd
ad = new InstreamAudioAd(YOUR_SLOT_ID, this);
// Устанавливаем слушатель событий
ad.setListener(new InstreamAudioAd.InstreamAudioAdListener()
{
@Override
public void onLoad(InstreamAudioAd ad)
{
// Данные успешно загружены
}
@Override
public void onNoAd(String reason, InstreamAudioAd ad)
{
// Данные не получены
}
@Override
public void onError(String reason, InstreamAudioAd ad)
{
// При проигрывании рекламного аудио произошла ошибка
}
@Override
public void onBannerStart(InstreamAudioAd ad, InstreamAudioAd.InstreamAudioAdBanner banner)
{
// Началось проигрывание рекламного аудио
}
@Override
public void onBannerComplete(InstreamAudioAd ad, InstreamAudioAd.InstreamAudioAdBanner banner)
{
// Проигрывание рекламного аудио завершено
}
@Override
public void onBannerTimeLeftChange(float timeLeft, float duration, InstreamAudioAd ad)
{
// Вызывается многократно во время воспроизведения рекламного аудио, используется для обновления таймера до окончания показа рекламного аудио
}
@Override
public void onComplete(String section, InstreamAudioAd ad)
{
// Проигрывание всех рекламных аудио в рекламной секции завершено
}
});
// Запускаем загрузку данных
ad.load();
}
// Перед началом проигрывания основного аудио
ad.startPreroll();
// После проигрывания основного аудио
ad.startPostroll();
private InstreamAudioAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAudioAd
ad = new InstreamAudioAd(YOUR_SLOT_ID, this);
// Устанавливаем позиции на первой и пятой секунде аудио
ad.configureMidpoints(videoDuration, new float[]{1f,5f});
// или в процентах, на 10% и 50% аудио
// ad.configureMidpointsPercents(audioDuration, new float[]{10f,50f});
// Устанавливаем слушатель событий
ad.setListener(new InstreamAudioAd.InstreamAudioAdListener()
{
@Override
public void onLoad(InstreamAudioAd ad)
{
// Данные успешно загружены
// Массив позиций (в секундах), доступных для проигрывания midroll секции
adPositions = ad.getMidPoints();
}
...
});
// Запускаем загрузку данных
ad.load();
}
// Аудио доигралось до 5-й секунды и для неё есть позиция в массиве adPositions
ad.startMidroll(adPositions[1]);
float getDuration();
boolean isAllowSeek();
boolean isAllowSkip();
boolean isAllowTrackChange();
List<InstreamAdCompanionBanner> getInstreamAdCompanionBanners();
String getAdText();
private void onCompanionAdShow(InstreamAdCompanionBanner companionBanner)
{
ad.handleCompanionShow(companionBanner);
}
private void onCompanionAdClick(InstreamAdCompanionBanner companionBanner)
{
// Обработка клика в контексте текущей активности
ad.handleCompanionClick(companionBanner, context);
// Обработка клика в контексте, который был передан при создании рекламного экземпляра
// ad.handleCompanionClick(companionBanner);
}
public void pause()
public void resume()
public void stop()
public void skip()
public void skipBanner()
public void setVolume(float volume)
public void setLoadingTimeout(int loadingTimeout)
private InstreamAudioAd ad;
private void initAd()
{
// Создаем экземпляр InstreamAudioAd
ad = new InstreamAudioAd(YOUR_SLOT_ID, this);
// Получаем экземпляр дополнительных параметров CustomParams
CustomParams customParams = ad.getCustomParams();
// Задаем возраст
customParams.setAge(25);
// Задаем пол
customParams.setGender(CustomParams.Gender.MALE);
}
@Override
public void onLoad(NativeAd ad)
{
NativePromoBanner banner = ad.getBanner();
// ...
// ...
// Список карточек
List<NativePromoCard> cards = banner.getCards();
// Пример заполнения визуального компонента
// ...
// ...
if (cards.isEmpty())
{
// Создаем MediaAdView
MediaAdView mediaView = NativeViewsFactory.getMediaAdView(context);
adViewLayout.addView(mediaView);
}
else
{
// Создаем PromoCardRecyclerView
PromoCardRecyclerView promoCardRecyclerView = NativeViewsFactory.getPromoCardRecyclerView(context);
// Устанавливаем адаптер
promoCardRecyclerView.setPromoCardAdapter(new PromoCardRecyclerView.PromoCardAdapter(cards)
{
@Override
public PromoCardView getPromoCardView()
{
return new CardView(context);
}
});
adViewLayout.addView(promoCardRecyclerView);
}
// Регистрируем визуальный компонент
ad.registerView(adViewLayout);
// Добавляем на экран
mainLayout.addView(adViewLayout, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
// Пример класса для показа одной карточки
private static class CardView extends LinearLayout implements PromoCardView
{
private MediaAdView mediaAdView;
private TextView titleTextView;
private TextView descriptionTextView;
private Button ctaButton;
public CardView(Context context)
{
super(context);
mediaAdView = NativeViewsFactory.getMediaAdView(context);
titleTextView = new TextView(context);
descriptionTextView = new TextView(context);
ctaButton = new Button(context);
addView(mediaAdView);
addView(titleTextView);
addView(descriptionTextView);
addView(ctaButton);
}
@Override
public MediaAdView getMediaAdView()
{
return mediaAdView;
}
@Override
public TextView getTitleTextView()
{
return titleTextView;
}
@Override
public TextView getDescriptionTextView()
{
return descriptionTextView;
}
@Override
public Button getCtaButton()
{
return ctaButton;
}
@Override
public View getView()
{
return this;
}
}