Каков наилучший способ ленивой загрузки объявлений с двойным кликом, использующих document.write? - PullRequest
9 голосов
/ 02 января 2011

Объявления, запрошенные с помощью двойного клика, часто обслуживаются из сети поставщика рекламы, которая возвращает JavaScript, который в свою очередь выполняет document.write для размещения рекламы на странице.Использование document.write требует, чтобы документ был открыт, подразумевая, что страница не достигла document.complete.Это мешает отложенной или ленивой загрузке рекламного контента.Поместить такой код внизу страницы полезно, но этого недостаточно для того, чтобы сократить время, необходимое для загрузки страницы.Являются ли «дружественные фреймы» лучшими у нас?Есть ли другая альтернатива, например, умный способ переопределить document.write, который сохраняет правильное место в dom?

Сторонние объявления используют document.write, чтобы добавить сценарий и контент в «текущее» местоположение встр.Владелец страницы не имеет контроля над рекламными сценариями и не может указать целевой элемент отображения.Рекламный сценарий рассчитывает писать и отображать в той позиции документа, где он вызывается, поэтому неясно, как правильно расположить объявление с помощью отложенной динамической загрузки сценария.Ленивая загрузка скрипта в контекст проста, но сторонний контент, отображаемый на месте с помощью document.write, не так легко достичь.

Ответы [ 7 ]

3 голосов
/ 24 октября 2012

postscribe.js от krux, как продемонстрировано на конференции разработчиков HTML5.

http://krux.github.com/postscribe/doc/postscribe.html https://npmjs.org/package/postscribe

2 голосов
/ 28 апреля 2011

Я привыкла рендерить рекламу внизу страницы в скрытом div и перемещать ее с помощью javascript.

примерно так, где вы хотите разместить свои объявления:

<div id="destid" style="width:350px; heigh: 200px"></div>

и в конце страницы:

<div style="display:none">   
    <script type="text/javascript"> 
    document.write("<div id='srcid'>");
    //your doubleclickcode
    document.write("</div>");
    </script>
<script type="text/javascript"> 
    $("#srcid").appendTo("#destid");
</script>
</div>
2 голосов
/ 17 февраля 2011

Я дам вам другое решение без использования iframe. Смотри http://github.com/shenjunru/LazyWrite

Это поможет вам отложить document.write ()

2 голосов
/ 13 января 2011

ОК, поэтому есть два основных способа отображения рекламы на экране.

  1. Использование Javascript include и некоторых переменных.
  2. Использование iFrame, который вы размещаете на странице.

И, честно говоря, Javascript обычно просто отображает iFrame. Рекламные сети хотят, чтобы iFrame b / c давал им простую возможность удалять файлы cookie ( видел этот пользователь в других местах сети ), а также легко отбрасывать пиксели показа ( метод подсчета этого страница была обработана ).

Итак, вот ваш лучший выбор.

  1. Определите URL-адрес iFrame, который отображается. Некоторые сети сообщат вам об этом напрямую, если вы спросите.
  2. Поместите iFrame на свой холст / html с соответствующим размером (, например, 728x90 ), но укажите на известный URL-адрес на вашем домене, который будет пустым. (или имеет цвет фона, соответствующий вашей странице).
  3. Добавьте JavaScript, который обновляет SRC iFrame в соответствующее время.

iframe.src = 'myurl?'; iframe.reload();

Это должно быть все, что вам нужно сделать. Настройте его так, чтобы все остальное загружалось, а затем загружайте рекламные кадры в последний раз.

Обратите внимание, что это может повлиять на ваш доход от рекламы. Это зависит от опыта пользователя, но если реклама не загружается до тех пор, пока пользователь не прокрутит их с экрана, вы не будете получать клики или зарабатывать деньги.

Кроме того, следите за эффективностью рекламной сети. Я знаю, что эти парни имеют довольно хорошее время отклика, но есть много рекламных сетей, и иногда даже большие парни имеют дерьмовое время отклика.

1 голос
/ 16 февраля 2012

Так что, кажется, существует стандартное формирование вокруг этого, называемого дружественного фрейма (FIF). Это похоже на взлом, но я чувствую себя лучше, когда за ним стоит IAB.

Вот документация от IAB: http://www.iab.net/media/file/rich_media_ajax_best_practices.pdf

Это сработало для меня, и хотя вы динамически записываете js в iframe, оно все же позволяло мультимедийной рекламе расширяться за пределы своего пространства.

1 голос
/ 13 января 2011

Метод iframe будет работать нормально, если вы не размещаете мультимедийную рекламу. Это тип объявлений, которые обычно основаны на флеш-памяти и в некоторых случаях выходят за пределы своего контейнера. При использовании iframes мультимедийная реклама ограничена контейнером (iframe).

Лучший способ разместить все возможные объявления - использовать метод сценария.

0 голосов
/ 13 марта 2015

Я решил проблему с помощью iframe.Я заменил тег script на iframe, который указывает на простую страницу на моем сервере, содержащую тег script.

Я заменил тег

<script src="ad provider's url containing document.write()" type="text/javascript">
</script>

на

<iframe src="adpage.htm" style="border:none;width:...height:..."></iframe>

adpage.htm просто содержит:

<html><head></head>
<body style="margin:0px;">
<script src="ad provider's url containing document.write()" type="text/javascript">
</script>
</body></html>
...