2013-10-02 35 views
33

Sto eseguendo un sito Web che utilizza richieste AJAX e history.pushState per la navigazione.400 Richiesta errata con Google AdSense

Il codice contenuto richiesto contiene codice asincrono AdSense di 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> 

Il tag head contiene i adsbygoogle.js:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> 

Questa messa a punto sta lavorando per una visualizzazione di pagina caricata dinamicamente. Successivamente, gli annunci non vengono più visualizzati. La console di errore mostra:

400 (Bad Request) in expansion_embed.js:188 

I expansion_embed.js chiede l'annuncio da http://googleads.g.doubleclick.net/pagead/ads. L'URL del richiedente contiene molti parametri.

Ora, ogni volta che viene visualizzato l'annuncio , il parametro prev_fmts ha un valore di 468x60. Se l'annuncio non riesce a caricare, il valore di questo parametro è 486x60%2C468x60.

Che cosa sta causando la modifica di questo parametro? È possibile che questo cambiamento stia causando i 400 errori di richiesta errata?

+0

inserisci il codice pertinente da empansion_embed –

+0

expansion_embed.js è uno script miniato ospitato da google. È un po 'complicato trovare il codice pertinente. – user276289

+0

è possibile che il tuo selettore 'adsbygoogle' stia selezionando più di 1 elemento? –

risposta

2

Ho avuto lo stesso problema e, dopo alcune ricerche, ho notato che si tratta di un problema di incompatibilità tra Google Adsens e i siti AJAX.

Vedere Google's announcement e questi twothreads nei forum di Google.

Ho provato a manipolare artificialmente il parametro prev_fmts, ma non sono riuscito a trovare la strada attraverso il JS offuscato. Ad ogni modo, immagino che fare questo vada contro Google Adsense TOS.

3

Avevo anche lo stesso errore quando ho aggiunto il codice di adsense la prima volta nel mio sito web. Nel mio caso, ha iniziato a funzionare semplicemente dopo aver ricaricato la pagina.

+2

Nel mio caso, ha iniziato a lavorare dopo il ricaricamento di circa 5 volte – Pathros

47

Hai solo bisogno di aspettare, quando si implementa per la prima volta Adsense darà questo errore. Ci sono voluti fino al mattino dopo per Adsense per iniziare a visualizzare annunci. Ho implementato il loro tipo di annuncio Responsive.

+2

Ci sono voluti circa un'ora per me. Strano che ci sia un ritardo! –

+4

ciò che è strano è 400 invece di qualsiasi altra cosa e nessun avviso nel pannello di controllo di AdSense. – AndreiMotinga

+1

@AndreiMotinga sì, ecco come rollano –

1

Adblock ha bloccato gli annunci. Ho abilitato il sito a risolverlo.

+1

AdBlock blocca davvero le pubblicità ma con diversi codice di errore. L'errore 400 è diverso e si verifica ancora con AdBlock disabilitato. Ho dovuto aspettare ~ 15 minuti, e il problema era sparito. – err

Problemi correlati