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?