Баннер
Баннерная реклама - это классические статические баннеры, которые обычно располагаются в нижней или верхней части экрана. Appodeal поддерживает традиционные баннеры 320x50, планшетные баннеры 728x90 и "smart" баннеры, которые подстраиваются под размер и ориентацию устройства.
Вы можете использовать наше демо приложение в качестве примера по интеграции.
Отображение баннера в определенном месте экрана
Чтобы отобразить баннер, вам нужно вызвать следующий код в activity:
- Kotlin
- Java
Appodeal.show(this, Appodeal.BANNER) // Display banner with last position or bottom position of the screen
Appodeal.show(this, Appodeal.BANNER_BOTTOM) // Display banner at the bottom of the screen
Appodeal.show(this, Appodeal.BANNER_TOP) // Display banner at the top of the screen
Appodeal.show(this, Appodeal.BANNER_LEFT) // Display banner at the left of the screen
Appodeal.show(this, Appodeal.BANNER_RIGHT) // Display banner at the right of the screen
Appodeal.show(this, Appodeal.BANNER); // Display banner with last position or bottom position of the screen
Appodeal.show(this, Appodeal.BANNER_BOTTOM); // Display banner at the bottom of the screen
Appodeal.show(this, Appodeal.BANNER_TOP); // Display banner at the top of the screen
Appodeal.show(this, Appodeal.BANNER_LEFT); // Display banner at the left of the screen
Appodeal.show(this, Appodeal.BANNER_RIGHT); // Display banner at the right of the screen
Метод возвращает boolean значение, указывающее, был ли передан вызов метода show соответствующему SDK.
BannerView
должен находиться на вершине иерархии и не может перекрываться другими представлениями.Отображение баннера в указанном View в файле макета
- Добавьте
com.appodeal.ads.BannerView
в ваш layout файл:
<com.appodeal.ads.BannerView
android:id="@+id/appodealBannerView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
- Установите view id перед инициализацией SDK:
- Kotlin
- Java
Appodeal.setBannerViewId(R.id.appodealBannerView)
Appodeal.setBannerViewId(R.id.appodealBannerView);
- Теперь можно показать баннер в указанном view (убедитесь, что нужный view находится на экране):
- Kotlin
- Java
Appodeal.show(this, Appodeal.BANNER_VIEW)
Appodeal.show(this, Appodeal.BANNER_VIEW);
BannerView
должен находиться на вершине иерархии и не может перекрываться другими представлениями.Показ рекламы в программно созданном View
- Создайте и добавьте
com.appodeal.ads.BannerView
в ваш root view:
- Kotlin
- Java
val adView = Appodeal.getBannerView(this)
rootLayout.addView(adView)
BannerView adView = Appodeal.getBannerView(this);
rootLayout.addView(adView);
- Теперь можно показать баннер в указанном view (убедитесь, что нужный view находится на экране):
- Kotlin
- Java
Appodeal.show(this, Appodeal.BANNER_VIEW)
Appodeal.show(this, Appodeal.BANNER_VIEW);
BannerView
должен находиться на вершине иерархии и не может перекрываться другими представлениями.Проверка загруженной рекламы
Вы можете проверить статус загрузки перед показом. Этот метод возвращает boolean значение, указывающее, загружен ли баннер.
- Kotlin
- Java
Appodeal.isLoaded(Appodeal.BANNER)
Appodeal.isLoaded(Appodeal.BANNER);
Показ рекламы с плейсментом
Appodeal SDK позволяет помечать каждый показ указанным плейсментом. Для использования плейсментов вам необходимо сначала их создать в Appodeal Dashboard. Подробнее о плейсментах.
- Kotlin
- Java
Appodeal.show(this, Appodeal.BANNER, "yourPlacementName")
Appodeal.show(this, Appodeal.BANNER, "yourPlacementName");
Если загруженное объявление не может быть показано для определенного плейсмента, ничего не будет показано. Если автоматическое кеширование включено, SDK начнет кэшировать другое объявление, что может повлиять на display rate. Чтобы сохранить загруженное объявление для использования в будущем (например, для другого места размещения), перед вызовом метода show проверьте, можно ли показывать объявление:
- Kotlin
- Java
if (Appodeal.canShow(Appodeal.BANNER, "yourPlacementName")) {
Appodeal.show(this, Appodeal.BANNER, "yourPlacementName")
}
if (Appodeal.canShow(Appodeal.BANNER, "yourPlacementName")) {
Appodeal.show(this, Appodeal.BANNER, "yourPlacementName");
}
Вы можете настроить логику показа для каждого плейсмента.
Если у вас нет плейсментов, или вы вызовете метод Appodeal.show
с плейсментом, которого не
существует, показ будет помечен с использованием default
плейсмента, и будут
применены его настройки.
Настройки плейсментов влияют ТОЛЬКО на представление рекламы, но не на загрузку или кеширование.
Методы обратного вызова
- Kotlin
- Java
Appodeal.setBannerCallbacks(object : BannerCallbacks {
override fun onBannerLoaded(height: Int, isPrecache: Boolean) {
// Called when banner is loaded
}
override fun onBannerFailedToLoad() {
// Called when banner failed to load
}
override fun onBannerShown() {
// Called when banner is shown
}
override fun onBannerShowFailed() {
// Called when banner show failed
}
override fun onBannerClicked() {
// Called when banner is clicked
}
override fun onBannerExpired() {
// Called when banner is expired
}
})
Appodeal.setBannerCallbacks(new BannerCallbacks() {
@Override
public void onBannerLoaded(int height, boolean isPrecache) {
// Called when banner is loaded
}
@Override
public void onBannerFailedToLoad() {
// Called when banner failed to load
}
@Override
public void onBannerShown() {
// Called when banner is shown
}
@Override
public void onBannerShowFailed() {
// Called when banner show failed
}
@Override
public void onBannerClicked() {
// Called when banner is clicked
}
@Override
public void onBannerExpired() {
// Called when banner is expired
}
});
Вcе callback методы вызываются в главном потоке
Ручное кеширование рекламы
По умолчанию автоматическое кэширование включено: Appodeal SDK начинает загружать баннер сразу после вызова метода инициализации.
Следующая полноэкранная реклама начинает загружаться сразу после вызова метода show.
Чтобы отключить автоматическое кеширование для баннеров, вызовите следующий код до инициализации SDK:
- Kotlin
- Java
Appodeal.setAutoCache(Appodeal.BANNER, false)
Appodeal.setAutoCache(Appodeal.BANNER, false);
To cache banner use:
- Kotlin
- Java
Appodeal.cache(this, Appodeal.BANNER)
Appodeal.cache(this, Appodeal.BANNER);
Более подробную информацию о ручном кешировании рекламы вы можете найти в нашем FAQ.
Проверка инициализации
Чтобы проверить, инициализирован ли баннер, вы можете использовать метод:
- Kotlin
- Java
Appodeal.isInitialized(Appodeal.BANNER)
Appodeal.isInitialized(Appodeal.BANNER);
Возвращает true
, если баннер был проинициализирован.
Проверка типа кеширования
Чтобы проверить, включено ли автоматическое кеширование для баннеров, вы можете использовать метод:
- Kotlin
- Java
Appodeal.isAutoCacheEnabled(Appodeal.BANNER)
Appodeal.isAutoCacheEnabled(Appodeal.BANNER);
Возвращает true
, если автоматическое кеширование включено для баннеров.
Получение прогнозируемого eCPM
Для того чтобы получить прогнозируемый eCPM для баннера для следующего блока в очереди на опрос, вы можете использовать метод:
- Kotlin
- Java
Appodeal.getPredictedEcpm(Appodeal.BANNER)
Appodeal.getPredictedEcpm(Appodeal.BANNER);
Обработка состояния "onPaused" в Activity
Мы будем автоматически обрабатывать состояние паузы и возобновления для уже отображаемых баннеров в activity, в котором они были отображены, однако мы не восстанавливаем отображаемые баннеры после восстановления activity (например: изменения ориентации), и мы не показываем баннеры во вновь созданных activity.
Для показа рекламы во вновь созданной Activity просто вызовите метод Appodeal.show()
, если необходимо:
- Kotlin
- Java
override fun onResume() {
super.onResume()
Appodeal.show(this, Appodeal.BANNER)
}
@Override
public void onResume() {
super.onResume();
Appodeal.show(this, Appodeal.BANNER);
}
Это поведение можно изменить, вызвав
Appodeal.setSharedAdsInstanceAcrossActivities(true)
(Узнать больше: Логика одного экземпляра баннера для всех activity)
Скрытие рекламы
- Kotlin
- Java
Appodeal.hide(this, Appodeal.BANNER)
Appodeal.hide(this, Appodeal.BANNER);
Удаление рекламы
Если вы хотите скрыть баннер во всех activity и очистить память, вызовите код ниже:
- Kotlin
- Java
Appodeal.destroy(Appodeal.BANNER)
Appodeal.destroy(Appodeal.BANNER);
Включение планшетных 728x90 баннеров
Чтобы включить баннеры размером 728x90, воспользуйтесь следующим методом:
- Kotlin
- Java
Appodeal.set728x90Banners(true)
Appodeal.set728x90Banners(true);
Метод работает, если размер вашего устройства превышает 7 дюймов
Логика одного экземпляра баннера для всех activity
Appodeal SDK связывает Banner/MREC
с activity, которое было передано в метод Appodeal.show
.
Чтобы вам было проще управлять логикой отображения View объявлений во всех activities, мы добавили новый метод в Appodeal класс:
- Kotlin
- Java
Appodeal.setSharedAdsInstanceAcrossActivities(sharedAdsInstanceAcrossActivities: Boolean)
Appodeal.setSharedAdsInstanceAcrossActivities(boolean sharedAdsInstanceAcrossActivities);
- Когда этот метод используется с параметром
true
, SDK будет показыватьMREC
во всех новых activities без вызова дополнительного кода с вашей стороны. - Если вы хотите контролировать отображение banner самостоятельно, вы можете передавать параметр
false
.предупреждениеВ случае передачи параметра
false
, будьте осторожны с изменением ориентации или переходом к новой activity,Banner/MREC
не будет отображаться автоматически, так как он был привязан к предыдущей activity. Если вы хотите скрытьBanner/MREC
, вам нужно вызвать методAppodeal.hide()
с параметром activity, к которому был привязанBanner/MREC
.
Вы так же можете проверить текущее состояние этой логики:
- Kotlin
- Java
Appodeal.isSharedAdsInstanceAcrossActivities()
Appodeal.isSharedAdsInstanceAcrossActivities();
Shared View Ads Instance Across Activities отключена по умолчанию
Отключение анимации обновления баннера
Чтобы отключить анимацию обновления баннера, используйте:
- Kotlin
- Java
Appodeal.setBannerAnimation(false)
Appodeal.setBannerAnimation(false);
Анимация включена по умолчанию.
Отключение смарт баннеров
Смарт баннеры - это баннерная реклама, которая автоматически подстраивается под размер экрана. Их использование помогает справиться с растущей фрагментацией размеров экрана на различных устройствах.
Чтобы отключить их, воспользуйтесь следующим методом:
- Kotlin
- Java
Appodeal.setSmartBanners(false)
Appodeal.setSmartBanners(false);
Смарт баннеры включены по умолчанию.
Отслеживание показа
Вы всегда можете проверить в логах, был ли отслежен показ и видна ли ваша реклама.
В случае успешного отслеживания показов вы увидите лог Banner [Notify Shown].
- Log
Appodeal com.example.app D Banner [Notify Shown]