在UITabBarController中更改标签后,GADBannerView中的AdMob视频广告将继续使用CPU

时间:2019-01-03 16:14:42

标签: ios swift admob gadbannerview googlemobileads

我的设置:

有一个UITabBarController。在第一个标签中-有一个UINavigationController作为根视图控制器的UITableViewController

UITableViewController表中,一个单元格包含一个GADBannerView

在bannerView的单元格中,我这样加载广告:

    var bannerView: GADBannerView = GADBannerView()
    ......
    bannerView?.adUnitID = "<my adUnitId>"
    bannerView?.adSize = kGADAdSizeMediumRectangle

    let request = GADRequest()
    request.contentURL = "<my site>"
    bannerView?.load(request)

问题:

我注意到,如果广告包含视频/动画-在两个标签之间切换后- CPU使用率仍然很高,并且永远保持15-20%的负载(直到您杀死应用)。

实际广告如下:

enter image description here

一些观察:

  • 如果不是视频广告,而是静态图片广告,则没有问题。对我来说,这个问题看起来好像有一些“暂停动画”没有被视频广告调用。
  • 发生在iOS11和iOS12上
  • func adViewDidReceiveAd(_ bannerView: GADBannerView)不会被调用,即框架知道广告不再显示在屏幕上

这是过程的外观(切换到另一个无广告的标签后): enter image description here

AdMob的版本:

'Firebase / AdMob','〜> 5.15.0 '(来自可可足类)

任何建议都非常受欢迎。

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,并通过在每次广告离开屏幕时都删除横幅来解决此问题,然后添加(重新)添加它(如果它再次可见)。这可能在三种情况下发生:

  1. 单元格滚动到可见区域之外。 实施于:

tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)

  1. 导航到子视图。 实施于:

viewWillDisappear

  1. 应用进入后台 为appDidEnterBackground
  2. 添加观察者