AdMob - 跨多个 UIViewControllers 的单个横幅不断重新加载广告/展示次数增加

问题描述

我想在几个 UIViewController 之间共享单个横幅视图(GADBannerView/单个广告单元),同时保留展示次数。到目前为止,我采取了以下方法

在控制器之间导航时:

bannerView.removeFromSuperview() // so remove from current VC
appearingVC.view.addSubview(bannerView) // add to appearing VC

我的假设是,由于我“移动”了此视图 - 广告不会重新加载/展示次数不会增加(除非根据配置间隔重新加载广告)。

就 UIView 而言,这有效,但每次从当前 VC 中删除横幅并重新添加到出现的 VC 时 - 添加会自行重新加载。这随后会在它重新出现之前导致短暂的延迟,但也会增加展示次数

具体来说:第一次加载 UIViewController -> 横幅重新加载广告。假设我有带有 3 个控制器的 UITab 栏 -> 一旦所有 3 个控制器都加载完毕,在选项卡之间切换不会触发进一步的重新加载(除了基于预期间隔的重新加载)。最初从一个标签页切换到另一个标签页 -> 广告视图重新加载 :(

我只创建了一个强大的 GADBannerView 实例,并且只调用了一次 load(GADRequest())。 这让我认为 AdMob 有一些 UI 观察器并检测屏幕转换等...

  • 我的方法无效吗?
  • 是否应该为每个 UIViewController 创建单独的 adUnit?
  • 我可以将我的导航控制器嵌入到子容器中(即只将横幅固定在屏幕顶部),但我喜欢自由决定在哪里显示横幅

这种方法是基于谷歌博客的推荐 -> 但它并不像他们描述的那样工作: https://ads-developers.googleblog.com/2012/04/creating-gadbannerview-singleton-in.html

[更新] 来自谷歌讨论区:https://groups.google.com/g/google-admob-ads-sdk/c/yezx_TgP5x4/m/b-SleXVVAQAJ

我觉得 adMob 文档不够充分,而且在针对多个 SDK 版本的使用示例中有很多混淆。真的不清楚 adMob 在幕后做了什么:(

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)