koutsenko

Рейтинг
0
Регистрация
19.01.2013
edka:
Адсенс грузиться в фрейме, поэтому особо не поколдуешь :)

Так я пытаюсь колдовать с вызовом адсенса, а не с его делами в фрейме. В изображениях 32Kb иллюстраций текущего положения дел. На графике (2) видно, что кэш работает, но речь о новом посетителе и полученном им первом впечатлении от сайта. А он тормозит - на графике (1) заметная задержка 0.5 сек. на получение и запуск show_ads.js (только запуск, он потом еще будет делать свои запросы к гуглу). Попытаюсь провести аналогию, сравним работу со скриптами и картинками (оба с т.з. браузера являются удаленными ресурсами, механизм их обработки браузером различается, тем не менее):

  • График (3) - последовательный запрос 7 разных картинок с одного хоста и их одновременная загрузка - работает быстро (с CSS-спрайтами мы условимся считать, что незнакомы)
  • График (1) - последовательный запрос 3 одинаковых скриптов с одного хоста и их последовательная загрузка - в сравнении очевидно, что очень неоптимально, технически возможно ли иначе?
babnicks:


ps: и еще, создайте простенький JS скрипт содержащий document.write и повызывайте его всякими разными способами, а то есть четкое ощущение того, что вы не до конца понимаете как браузеры выполняют JS...

pss: кстате 4 раза нельзя вызывать show_ads.js для одной страницы... улетите в бан... максимум 3

Знаний и вправду не хватает, чтобы понимать невозможности. Наличие ограничителя со стороны Google "1 страница = 3 скрипта" логично, чтобы не создавались сайты для накрутки с сотнями баннеров, но я и не собираюсь обходить это ограничение, мне надо "1 страница = 3 запуска одного запрошенного скрипта", все равно они потом асинхронно сделают запросы к Google и потенциальная попытка "1 страница = 100 запусков одного запрошенного скрипта" будет зарегистрирована.

gif fb1.gif
gif fb2.gif
gif fb3.gif
babnicks:

2. Скрипт show_ads.js создает iframe с самим рекламным блоком, который ВСЕГДА грузится асинхронно ибо он iframe.

Вобщем не парьтесь, адсенс еще никому сайт особо не тормозил...

Думаю, многие замечают синхронность запроса к show_ads.js - визуально, на секунду браузер приостанавливает рендеринг страницы, и перестает работать скролл. Жаль, что его можно вызывать только синхронно. А если на странице 4 баннера? Стоит ли вызвать show_ads.js один раз, а далее 4 раза показать его в разных местах страницы - каждый раз в iframe по-идее асинхронно подгрузится уникальное объявление. Такой трюк правилами разрешен? Вопрос именно в сокращении количества дополнительных HTTP-запросов браузера к сайту - классический bottleneck в случае классической LAMP-архитектуры без AJAX.

babnicks:

Мало того, влияет порядок вызова рекламных блоков. Для получения большей цены за клик необходимо чтобы блоки с максимальным CTR стояли в коде (именно в коде, а не визуально на странице) выше остальных блоков (эта информация из "первых рук", от адсенс-аналитика самого гугла), так как торги за права разместиться на вашей странице начинаются в момент первого запроса на получение рекламного блока.

Интересная информация! А ссылку можно на подробности? С точки зрения гугла, я сейчас 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";

</script>

Сохранил как отдельный .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?

Спасибо.