I am running a website that uses AJAX requests and history.pushState for navigation.
The requested content code contains Google's asynchronus AdSense code:
<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>
The head tag contains the adsbygoogle.js:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
This setup is working for one dynamically loaded pageview. After that, ads don't show up anymore. The error console shows:
400 (Bad Request) in expansion_embed.js:188
The expansion_embed.js requests the ad from http://googleads.g.doubleclick.net/pagead/ads. The requestet url contains lots of parameters.
Now, every time the ad does show up, the prev_fmts
parameter has a value of 468x60
. If the ad fails to load, this parameter's value is 486x60%2C468x60
.
What is causing this parameter to change? Is it possible that this change is causing the 400 Bad Request errors?
You just need to wait, when you first implement Adsense it will give this error. It took until next morning for Adsense to start displaying ads. I implemented their Responsive ad type.