Видеообъявление AdMob в GADBannerView продолжает использовать ЦП после изменения вкладки в UITabBarController
Моя настройка:
Есть UITabBarController
, На первой вкладке - есть UINavigationController
с UITableViewController
в качестве корневого viewcontroller.
В таблице UITableViewController
одна из клеток содержит GADBannerView
В ячейку с bannerView я загружаю объявление так:
var bannerView: GADBannerView = GADBannerView()
......
bannerView?.adUnitID = "<my adUnitId>"
bannerView?.adSize = kGADAdSizeMediumRectangle
let request = GADRequest()
request.contentURL = "<my site>"
bannerView?.load(request)
Проблема:
Я заметил, что если объявление содержит видео / анимацию - после переключения между вкладками - загрузка процессора все еще остается высокой и остается на 15-20% постоянной нагрузки (до тех пор, пока вы не убьете приложение).
Фактическая реклама выглядит так:
Пара замечаний:
- если вместо видеообъявления - есть статическое графическое объявление - нет проблем. Для меня эта проблема выглядит так, как будто есть некоторая "анимация паузы", которая не вызывается для видеообъявлений.
- происходит как на iOS11, так и на iOS12
func adViewDidReceiveAd(_ bannerView: GADBannerView)
не вызывается, т.е. фреймворк знает, что рекламы больше нет на экране
Вот как выглядят процессы (после перехода на другую вкладку без рекламы):
Версия AdMob:
"Firebase/AdMob", "~> 5.15.0 " (из кокоапод)
Любые предложения очень приветствуются.
0 ответов
Я столкнулся с той же проблемой и решил ее, удалив баннер каждый раз, когда реклама уходит с экрана, добавьте (повторно) добавьте ее, если она снова появится. Это может произойти в трех случаях:
- Ячейка прокручивается за пределы видимой области. Реализовано в:
tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)
- Перейдите в подвид. Реализовано в:
viewWillDisappear
- Приложение переходит в фоновый режим. Добавить наблюдателя для
appDidEnterBackground