J'exécute un site Web qui utilise AJAX requêtes et history.pushState pour la navigation.
Le code de contenu demandé contient le code asynchrone AdSense de Google:
<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>
La balise head contient le adsbygoogle.js:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
Cette configuration fonctionne pour une page vue chargée dynamiquement. Après cela, les annonces n'apparaissent plus. La console d'erreur affiche:
400 (Bad Request) in expansion_embed.js:188
Le fichier expansion_embed.js demande l'annonce à http://googleads.g.doubleclick.net/pagead/ads . L'URL de la requête contient de nombreux paramètres.
Maintenant, chaque fois que l'annonce apparaît, le prev_fmts
le paramètre a la valeur 468x60
. Si l'annonce ne se charge pas, la valeur de ce paramètre est 486x60%2C468x60
.
Qu'est-ce qui fait changer ce paramètre? Est-il possible que cette modification provoque les 400 erreurs de demande incorrecte?
Vous avez juste besoin d'attendre, lorsque vous implémentez Adsense pour la première fois, cela donnera cette erreur. Il a fallu attendre le lendemain matin pour qu'Adsense commence à diffuser des annonces. J'ai implémenté leur type d'annonce responsive.
J'obtenais également la même erreur lorsque j'ai ajouté du code adsense pour la première fois sur mon site Web. Dans mon cas, cela a commencé à fonctionner simplement après le rechargement de la page.
J'ai eu le même problème, et après quelques recherches, j'ai vu que c'était un problème d'incompatibilité entre Google Adsens et AJAX sites.
Voir l'annonce de Google et ces deuxdiscussions dans les forums de Google.
J'ai essayé de réduire artificiellement le prev_fmts
paramètre, mais je n'ai pas pu trouver mon chemin à travers le JS obscurci. Quoi qu'il en soit, je suppose que cela irait à l'encontre de Google Adsense TOS.
Adblock bloquait les annonces. J'ai activé le site pour le résoudre.
Si vous avez activé les annonces automatiques, vous remplacez simplement
data-ad-slot = "ad_slot"
enable_page_level_ads = true
Travailler pour moi.