Руководство по миграции на версию 6
Важно
Обязательно обновите версии используемых адаптеров на актуальные (Медиация Яндекса и адаптеры для сторонних медиационных сетей). Иначе возможны ошибки неправильной интеграции адаптеров и реклама не будет показана.
Баннеры
Класс YMAAdSize
переименован в YMABannerAdSize
. Удалены методы flexibleSizeWithCGSize:(CGSize)size
и fixedSizeWithCGSize:(CGSize)size
, ранее отмеченные как deprecated.
Используйте методы в зависимости от типа рекламного объявления:
Для создания адаптивного sticky-баннера — метод stickySizeWithContainerWidth:(CGFloat)width
.
Адаптивный sticky-баннер — небольшое, автоматически обновляемое рекламное объявление, которое располагается внизу или вверху экрана приложения.
Баннер не перекрывает основной контент приложения и часто используется в приложениях-играх.
Высота sticky-баннера определяется автоматически, адаптируясь под размер экрана устройства и не превышает 15% высоты экрана.
Важно
В адаптивном sticky-баннере с версии 6.0.0 появилось автообновление.
Если у вас ранее было реализовано автообновление для sticky-баннера, его следует отключить.
Для создания адаптивного inline-баннера — метод inlineSizeWithWidth:(CGFloat)width maxHeight:(CGFloat)height
.
Адаптивный inline-баннер — гибкий формат баннерной рекламы, обеспечивающий максимальную эффективность за счет оптимизации размера рекламы для каждого устройства.
Высота баннера подбирается автоматически и может достигать высоты экрана устройства.
Как правило, такой формат используется в приложениях-лентах или там, где допустимо обеспечить основной фокус на рекламе.
Для обратной совместимости вместо fixedSizeWithCGSize:(CGSize)size
был добавлен метод fixedSizeWithWidth:(CGFloat)width height:(CGFloat)height
, однако его использование не рекомендуется. Используйте stickySizeWithContainerWidth:(CGFloat)width
. В SDK 6.0.0 высота баннера рассчитывается автоматически и известна до отправки запроса рекламы. Эту высоту можно использовать для верстки экрана.
Удаление deprecated метода |
SDK 5
SDK 6
|
Удаление deprecated метода |
SDK 5
SDK 6 Используйте метод
Или метод
|
Переименование класса |
SDK 5
SDK 6
|
Переименование класса |
SDK 5
SDK 6
|
Реклама с вознаграждением
Был изменен подход к созданию и загрузке рекламы. Теперь есть объект-загрузчик YMARewardedAdLoader
, который занимается загрузкой рекламных объявлений и объект рекламы YMARewardedAd
, получаемый с помощью методов делегата загрузчика. Внутренняя логика по загрузке и отображению осталась прежней. Подробнее ознакомиться с новым апи можно в справочнике SDK.
SDK 5
final class RewardedAdViewController: UIViewController {
private lazy var rewardedAd: YMARewardedAd = {
let rewardedAd = YMARewardedAd(adUnitID: "R-M-XXXXX-YY")
rewardedAd.delegate = self
return rewardedAd
}()
func loadAd() {
rewardedAd.load()
}
func showAd() {
rewardedAd.present(from: self)
}
}
SDK 6
final class RewardedAdViewController: UIViewController {
private var rewardedAd: YMARewardedAd?
private lazy var rewardedAdLoader: YMARewardedAdLoader = {
let loader = YMARewardedAdLoader()
loader.delegate = self
return loader
}()
func loadAd() {
let configuration = YMAAdRequestConfiguration(adUnitID: "R-M-XXXXX-YY")
rewardedAdLoader.loadAd(with: configuration)
}
func showAd() {
rewardedAd?.show(from: self)
}
}
extension RewardedAdViewController: YMARewardedAdLoaderDelegate {
func rewardedAdLoader(_ adLoader: YMARewardedAdLoader, didLoad rewardedAd: YMARewardedAd) {
self.rewardedAd = rewardedAd
}
}
Межстраничная реклама
Был изменен подход к созданию и загрузке межстраничной рекламы. Теперь есть объект-загрузчик YMAInterstitialAdLoader
, который занимается загрузкой рекламных объявлений и объект рекламы YMAInterstitialAd
, получаемый с помощью методов делегата загрузчика. Внутренняя логика по загрузке и отображению осталась прежней. Подробнее ознакомиться с новым апи можно в справочнике SDK.
SDK 5
final class InterstitialAdViewController: UIViewController {
private lazy var interstitialAd: YMAInterstitialAd = {
let interstitialAd = YMAInterstitialAd(adUnitID: "R-M-XXXXX-YY")
interstitialAd.delegate = self
return interstitialAd
}()
func loadAd() {
interstitialAd.load()
}
func showAd() {
interstitialAd.present(from: self)
}
}
SDK 6
final class InterstitialAdViewController: UIViewController {
private var interstitialAd: YMAInterstitialAd?
private lazy var interstitialAdLoader: YMInterstitialAdLoader = {
let loader = YMInterstitialAdLoader()
loader.delegate = self
return loader
}()
func loadAd() {
let configuration = YMAAdRequestConfiguration(adUnitID: "R-M-XXXXX-YY")
interstitialAdLoader.loadAd(with: configuration)
}
func showAd() {
interstitialAd?.show(from: self)
}
}
extension InterstitialAdViewController: YMAInterstitialAdLoaderDelegate {
func interstitialAdLoader(_ adLoader: YMAInterstitialAdLoader, didLoad interstitialAd: YMAInterstitialAd) {
self.interstitialAd = interstitialAd
}
}
Полные примеры интеграции можно посмотреть здесь:
App Open Ad
Был добавлен новый формат рекламных объявлений — App Open Ad. Подробнее о нем можно узнать в разделе Реклама при открытии приложения.
Минимальная версия iOS
Для работы с Yandex Mobile Ads 6.0 требуется iOS 13 и выше. Если у вас более ранняя версия ОС, то необходимо обновить ее до iOS 13.
Медиация Яндекса
Важно
Обязательно обновите версии используемых адаптеров на актуальные (Медиация Яндекса и адаптеры для сторонних медиационных сетей). Иначе возможны ошибки неправильной интеграции адаптеров и реклама не будет показана.
Новые версии адаптеров
Актуальные версии адаптеров для медиации Яндекса (на момент выхода версии SDK 6.0.0):
- Digital Turbine (ex. AdColony): 4.9.0.5.
- AppLovin: 11.11.2.0.
- Chartboost: 9.4.0.0.
- Google: 10.9.0.0.
- InMobi: 10.5.5.1.
- IronSource: 7.4.0.0.
- Mintegral: 7.4.0.2.
- VK Реклама (ex. myTarget): 5.18.0.1.
- Start.io: 4.10.0.0.
- Unity Ads: 4.8.0.1.
Актуальные версии адаптеров для сторонних медиационных платформ (на момент выхода версии SDK 6.0.0):
- Google AdMob (ex. AdMob): 10.9.0.
- IronSource: 7.4.0.
Переименование адаптера Google AdMob (ex. AdMob)
Адаптеры AdMobYandexMobileAdsAdapters
были переименованы в GoogleYandexMobileAdsAdapters
. Если вы используете единую сборку медиации, ничего делать не нужно. В случае ручного подключения адаптеров необходимо внести правки в Podfile вашего проекта.
SDK 5
|
SDK 6
|