Адаптивный баннер
Виды адаптивных баннеров
В Yandex Mobile Ads SDK есть три вида адаптивных баннеров:
|
Баннер |
Описание |
Когда использовать |
|
Sticky |
Баннер-липучка, который примыкает к краю экрана и появляется поверх других элементов. Устойчивый к прокрутке. |
Когда баннер должен «приклеиться» и находиться поверх контента даже при прокрутке. |
|
Inline |
Баннер, который встраивается как элемент UI — в списки, контент и т. д. |
Когда баннер должен быть частью контента: в ленте новостей, между постами, как элемент списка. |
|
Fixed |
Используется для закрепленных баннеров или когда пространство определено по высоте. |
Когда нужно простое статичное размещение баннера — например, под тулбаром или снизу. |
Все виды автоматически обновляют креатив каждые 60 секунд.
Совет
Чтобы установить свой период для автообновления, обратитесь к персональному менеджеру.
Программно виды отличаются лишь тем, как задается их размер. Примеры:
BannerAdSize.stickySize(withContainerWidth:)
BannerAdSize.inlineSize(withWidth:maxHeight:)
BannerAdSize.fixedSize(withWidth:height:)
Примечание
Пример работы всех типов форматов есть в демопроекте.
|
Сущность |
Описание |
|
|
Высота баннера должна:
Все размеры баннера должны передаваться строго в dp. |
|
|
Используйте:
|
Пример создания адаптивного баннера
import UIKit
import YandexMobileAds
class BannerViewController: UIViewController {
private let adUnitID = "ad-unit-ID" // Use R-M-XXXXXX-Y or "demo-banner-yandex" (look for the description below)
private lazy var adView: AdView = {
let adSize = BannerAdSize.inlineSize(withWidth: 320, maxHeight: 320)
let adView = AdView(adUnitID: adUnitID, adSize: adSize)
adView.delegate = self
adView.translatesAutoresizingMaskIntoConstraints = false
return adView
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
loadAd()
}
private func setupUI() {
view.addSubview(adView)
NSLayoutConstraint.activate([
adView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
adView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -20)
])
}
private func loadAd() {
print("[Banner] Loading ad...")
adView.loadAd()
}
}
// MARK: - AdViewDelegate
extension BannerViewController: AdViewDelegate {
func adViewDidLoad(_ adView: AdView) {
print("[Banner] adViewDidLoad")
}
func adViewDidFailLoading(_ adView: AdView, error: Error) {
print("[Banner] adViewDidFailLoading: \(error)")
}
func adViewDidClick(_ adView: AdView) {
print("[Banner] adViewDidClick")
}
func adView(_ adView: AdView, didTrackImpression impressionData: ImpressionData?) {
print("[Banner] didTrackImpression: \(impressionData?.rawData ?? "nil")")
}
func adViewWillLeaveApplication(_ adView: AdView) {
print("[Banner] adViewWillLeaveApplication")
}
func adView(_ adView: AdView, willPresentScreen viewController: UIViewController?) {
print("[Banner] willPresentScreen")
}
func adView(_ adView: AdView, didDismissScreen viewController: UIViewController?) {
print("[Banner] didDismissScreen")
}
}