2013-10-02 4 views
33

Я запускаю веб-сайт, который использует запросы AJAX и history.pushState для навигации.400 Плохой запрос с Google AdSense

Запрашиваемый содержание код содержит asynchronus AdSense 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> 

головка тег содержит 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. URL-адрес запроса содержит множество параметров.

Теперь, каждый раз, когда появляется объявление , параметр prev_fmts имеет значение 468x60. Если объявление не загружается, значение этого параметра равно 486x60%2C468x60.

Что вызывает изменение этого параметра? Возможно ли, что это изменение вызывает ошибки 400 Bad Request?

+0

отправить соответствующий код от empansion_embed –

+0

expand_embed.js - это миниатюрный скрипт, который размещен google. Немного сложно найти соответствующий код. – user276289

+0

Возможно ли, что ваш селектор 'adsbygoogle' выбирает более 1 элемента? –

ответ

2

У меня была такая же проблема, и после некоторых исследований я видел, что это проблема несовместимости между Google Adsens и сайтами AJAX.

См. Google's announcement и эти twothreads в форумах Google.

Я попытался искусственно калечить параметр prev_fmts, но я не смог найти свой путь через обфускацию JS. Во всяком случае, я думаю, что это будет идти против Google Adsense TOS.

3

У меня также была такая же ошибка, когда я впервые добавил код AdSense на моем сайте. В моем случае он начал работать просто после перезагрузки страницы.

+2

В моем случае он начал работать после перезагрузки примерно 5 раз – Pathros

47

Вам просто нужно подождать, когда вы впервые примените Adsense, это даст эту ошибку. На следующее утро Adsense начал показывать рекламу. Я применил их тип адаптивного объявления.

+2

Взял около часа для меня. Странно, что есть задержка! –

+4

что странно - это 400, а не что-то еще, и никаких предупреждений на панели инструментов AdSense. – AndreiMotinga

+1

@AndreiMotinga да, вот как они катаются –

1

Adblock блокировал рекламу. Я разрешил сайт решить его.

+1

AdBlock действительно блокирует рекламу, но с разными код ошибки. Ошибка 400 отличается и по-прежнему происходит с отключенным AdBlock. Я должен был ждать ~ 15 минут, и проблема исчезла. – err

Смежные вопросы