我正在使用Google移动广告SDK在iOS应用中获取展示广告。当应用加载时,我打三个电话来抓取三个展示广告。但有时,(并非总是!),当我查看Charles的流量时,我发现有多个过度的广告调用。
这个电话类似于:
GADBannerView
- (void)loadRequest:(GADRequest *)request;
在查尔斯,我正在寻找电话:
http://pubads.g.doubleclick.net:80
行为似乎是完全随机的,因为有一天一切都会正常工作(Xcode广告调用方法和Charles中看到的调用之间的一对一对应关系),第二天会有更多的调用查尔斯可以算得上。
这是预期的吗? SDK可以在某些条件下代表自己进行调用吗?
答案 0 :(得分:2)
这个问题有点老了,但万一其他人遇到这个......
小心调整广告视图的frame
。我们发现此评论隐藏在AdMob sdk中,暗示使用它来更改视图的大小(而不是调整视图的框架)。
文件:
Add-ons/DoubleClick/DFPBannerView.h
段:
/// Use this function to resize the banner view without launching a new ad request.
- (void)resize:(GADAdSize)size;
另一条暗示在没有显式调用loadRequest的情况下创建广告请求的评论位于GADBannerView.h,第60-65行:
// Required to set this banner view to a proper size. Never create your own
// GADAdSize directly. Use one of the predefined standard ad sizes
// (such as kGADAdSizeBanner), or create one using the GADAdSizeFromCGSize
// method. If not using mediation, then changing the adSize after an ad has
// been shown will cause a new request (for an ad of the new size) to be sent.
// If using mediation, then a new request may not be sent.
在使用横幅视图执行一些实验后,似乎任何设置视图框架的调用(即使仅用于X / Y位置更新,而不是宽度/高度修改)都可能导致这些自动请求触发。这也可能适用于设备轮换期间发生的任何大小调整。
更新:
在使用自动布局时,我甚至遇到了这个问题,自动布局正在做的事情是触发单独的广告请求(有时并不总是如此)。我通过将广告视图粘贴在容器视图(然后具有自动布局)中来修复此问题...位杂乱,但到目前为止似乎正在运行。
希望这有帮助。