Так я пытаюсь колдовать с вызовом адсенса, а не с его делами в фрейме. В изображениях 32Kb иллюстраций текущего положения дел. На графике (2) видно, что кэш работает, но речь о новом посетителе и полученном им первом впечатлении от сайта. А он тормозит - на графике (1) заметная задержка 0.5 сек. на получение и запуск show_ads.js (только запуск, он потом еще будет делать свои запросы к гуглу). Попытаюсь провести аналогию, сравним работу со скриптами и картинками (оба с т.з. браузера являются удаленными ресурсами, механизм их обработки браузером различается, тем не менее):
Знаний и вправду не хватает, чтобы понимать невозможности. Наличие ограничителя со стороны Google "1 страница = 3 скрипта" логично, чтобы не создавались сайты для накрутки с сотнями баннеров, но я и не собираюсь обходить это ограничение, мне надо "1 страница = 3 запуска одного запрошенного скрипта", все равно они потом асинхронно сделают запросы к Google и потенциальная попытка "1 страница = 100 запусков одного запрошенного скрипта" будет зарегистрирована.
Думаю, многие замечают синхронность запроса к show_ads.js - визуально, на секунду браузер приостанавливает рендеринг страницы, и перестает работать скролл. Жаль, что его можно вызывать только синхронно. А если на странице 4 баннера? Стоит ли вызвать show_ads.js один раз, а далее 4 раза показать его в разных местах страницы - каждый раз в iframe по-идее асинхронно подгрузится уникальное объявление. Такой трюк правилами разрешен? Вопрос именно в сокращении количества дополнительных HTTP-запросов браузера к сайту - классический bottleneck в случае классической LAMP-архитектуры без AJAX.
Интересная информация! А ссылку можно на подробности? С точки зрения гугла, я сейчас 4 раза подряд запрашиваю рекламный скрипт с одинаковыми идентификаторами, когда мой браузер парсит полученную с сайта страницу. Время первого запроса скрипта значения по идее иметь не должно - гугл ничего ведь не знает о том, когда пользователь вообще запросил саму страницу. Я должен минимизировать время между последующими запросами? И как это соотносится к размещению в начале кода - мне в идеале надо прямо в <head> 4 раза подряд, что-ли, запросить show_ads.js?
Логично. В PHP-коде, который собирает страницу, реклама показывается так (несколько блоков внутри <body>, между ними много логики, верстки):
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Добавил перед ним, исходя из прочитанных выше ссылок, код (перед каждым блоком):
<script type="text/javascript">
google_enable_async = "true";
Сохранил как отдельный .php-файл, и сделал замеры (общее время, включая onload) в Firebug, вкладка Сеть.
В обоих случаях скрипты загружались последовательно и затронули в сумме все периоды временной шкалы (статья http://www.softwareishard.com/blog/firebug/firebug-net-panel-timings/).
Разница по времени загрузки страницы в пределах погрешности, и даже не в пользу варианта с явно заданной опцией google_enable_async = true
Думаю, эта опция (асинхронность) работает по-умолчанию.
Вопросы..
1) Народ, у кого ads "создают задержку" - каким инструментом вы ее можете показать явно (не на уровне ощущений)?
2) Насколько правильно конфигурировать adsense в отдельном <script>-тэге, разве такие переменные попадут в область видимости скрипта show_ads.js?
Спасибо.