使用 Google AdSense 的 400 错误请求
Posted
技术标签:
【中文标题】使用 Google AdSense 的 400 错误请求【英文标题】:400 Bad Request with Google AdSense 【发布时间】:2013-10-08 23:16:20 【问题描述】:我正在运行一个使用 AJAX 请求和 history.pushState 进行导航的网站。
请求的内容代码包含 Google 的异步 AdSense 代码:
<ins class="adsbygoogle"
style="display:inline-block;width:468px;height:60px"
data-ad-client="ca-pub-xxxxx"
data-ad-slot="xxxxxx"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push();
</script>
head 标签包含 adsbygoogle.js:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
此设置适用于一个动态加载的网页浏览。之后,广告不再出现。错误控制台显示:
400 (Bad Request) in expansion_embed.js:188
expand_embed.js 从http://googleads.g.doubleclick.net/pagead/ads 请求广告。 requestet url 包含很多参数。
现在,每次广告确实出现时,prev_fmts
参数的值都是 468x60
。如果广告加载失败,该参数的值为486x60%2C468x60
。
是什么导致这个参数改变?此更改是否可能导致 400 Bad Request 错误?
【问题讨论】:
从empansion_embed贴出相关代码 expansion_embed.js 是一个由谷歌托管的缩小脚本。找到相关代码有点棘手。 您的选择器adsbygoogle
是否可能选择了多个元素?
同样的问题,所有广告都加载了,但只有一个,我不知道为什么 btw 广告尺寸相同
在对我的网站进行大量更改后,我从 Google AdSense 收到了大量此类错误。我清除了 Chrome 中的缓存,然后一切都消失了。
【参考方案1】:
我遇到了同样的问题,经过一番研究,我发现这是 Google Adsens 和 AJAX 网站不兼容的问题。
在 Google 的论坛中查看 Google's announcement 和这些 two threads。
我试图人为地破坏 prev_fmts
参数,但我无法通过混淆的 JS 找到方法。无论如何,我想这样做会违反 Google Adsense TOS。
【讨论】:
【参考方案2】:当我第一次在我的网站中添加 adsense 代码时,我也遇到了同样的错误。就我而言,它只是在重新加载页面后开始工作。
【讨论】:
就我而言,它在重新加载大约 5 次后开始工作【参考方案3】:您只需要等待,当您第一次实施 Adsense 时,它会给出此错误。 Adsense 直到第二天早上才开始展示广告。我实施了他们的响应式广告类型。
【讨论】:
我花了大约一个小时。奇怪的是有延迟! 奇怪的是 400 而不是其他任何东西,而且 AdSense 控制面板中没有任何警告。 @AndreiMotinga 是的,他们就是这样滚动 是的,花了 1 小时 现在我只花了大约 15 分钟,这比一个小时或更长的时间要好得多,但还是很蹩脚......【参考方案4】:Adblock 阻止了广告。我启用了网站来解决它。
【讨论】:
AdBlock 确实屏蔽了广告,但错误代码不同。错误 400 是不同的,并且在禁用 AdBlock 时仍然会发生。我不得不等待大约 15 分钟,问题就消失了。 这解决了我的问题。谢谢 不。使用 net::ERR_BLOCKED_BY_CLIENT 或其他任何东西来阻止广告块,但它不能使用 400。以上是关于使用 Google AdSense 的 400 错误请求的主要内容,如果未能解决你的问题,请参考以下文章
如何将 OAuth 与 Google AdWords / AdSense API 一起使用?