我正在运行一个使用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
expansion_embed.js从http://googleads.g.doubleclick.net/pagead/ads请求广告。 requestet url包含许多参数。
现在,每当广告 出现时,prev_fmts
参数的值为468x60
。如果广告无法加载,则此参数的值为486x60%2C468x60
。
导致此参数发生变化的原因是什么?此更改是否可能导致400错误请求错误?
答案 0 :(得分:61)
您只需要等待,当您第一次实施Adsense时,它会给出此错误。直到第二天早上,Adsense才开始展示广告。我实施了他们的自适应广告类型。
答案 1 :(得分:4)
当我第一次在我的网站上添加adsense代码时,我也遇到了同样的错误。在我的情况下,它在重新加载页面后开始工作。
答案 2 :(得分:3)
我遇到了同样的问题,经过一些研究,我发现这是Google Adsens和AJAX网站之间不兼容的问题。
在Google论坛中查看Google's announcement和这些two threads。
我试图人为地破坏prev_fmts
参数,但我找不到通过混淆的JS的方法。无论如何,我想这样做会违反Google Adsense TOS。
答案 3 :(得分:1)
Adblock阻止了广告。我启用了网站来解决它。
答案 4 :(得分:0)
如果您自动投放广告,则只需替换
data-ad-slot="ad_slot"由
enable_page_level_ads=true
为我工作。