Как стать автором
Обновить

Комментарии 10

хорошее предложение, я тоже практикую схожий подход. Подключаю рекламу через специальную функцию. Тут можно пример приблизительно посмотреть как это делается
http://fullajax.ru/examples/addscript.ht…
Смотреть на Примеры динамической загрузки сложных скриптов (Google Adsense и Google Map)
Если загружать таким образом скрипты да и в добавок использовать Flash Storage (скрипты попадают в клиентское хранилище) тогда вообще чудно получается.
Спасибо, очень толково написано, мы сейчас столкнулись с подобной ситуацией.
Вся проблема в том, что если не использовать document.write, то контент страницы будет прыгать, потом что он загрузится быстрее, чем реклама. Соответственно, когда подгрузится реклама, она отодвинет контент, что совсем некрасиво.

Если использовать фиксированные форматы, то проблемы нет, но для резиновых блоков, как у Яндекс, ничего, кроме document.write использовать нельзя.
Более того, правильно настроенные и быстроотвечающие сервера не создают больших задержек при загрузке страниц.
что значит "резиновые блоки"?
У Яндекса есть вертикальный, горизонтальный, плоский и фиксированный форматы. Все их них, кроме последнего, занимают столько места, сколько надо для конкретного рекламного блока, т.е. зависят от количества объявлений и их размера. Размеры таких блоков заранее узнать никак нельзя, соответственно, загружать и отрисовывать рекламу надо непосредственно во время загрузки страницы.
у Яндекса есть ограничение на длину объявления. Исходя из него можно вычислить максимальный размер блока — этого в ряда случаев вполне достаточно
Вы не знаете куда он будет вставлен, может быть колонка будет 100 пикселей шириной, а может 200.
Вы не знаете какое придет объявление - большое и маленькое и сколько в нем строк текста.
Вы знаете только, что заголовок максимум 33 символа, текст - 75, а урл - 255.

Примерные расчеты все равно ни к чему не приведут, контент будет продолжать прыгать. А любой владелец сайта лучше согласится на пол-секундную задержку, чем на прыгающие блоки.
насчет прыгающих блоков — я согласен. Просто в реальности всегда известно, куда будет вставлен рекламный блок и его максимальные размеры. Если такой уровень приближения достаточен, то оптимизацию можно производить. Если нет, тогда только уповать на то, что Яндекс выпустит API
Хмм... Интересно... Я собсно недавно тоже думал на эту тему... К чему я пришёл...
1. Загружаем страничку без рекламы
2. Через window.onload загружаем рекламу в скрытые блоки (display:none).
3. Плавно их открываем (Пользуюсь mootools new FX.Slide(blockId, {duration:1000}).slideId()).

При этом мы получаем
1. Не прыгающее, а плавно открывающееся рекламу (гламурно так сказать :))
2. Гораздо быстрее загружаемую страничку
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.