Можно ли отправлять запросы на рекламу на стороне сервера, а не в браузере, используя безголовый браузер? - PullRequest
1 голос
/ 19 марта 2011

Мотивация этой идеи заключается в том, что запросы рекламы в браузерах часто бывают мучительно медленными и могут блокировать рендеринг страниц, не говоря уже о том, чтобы использовать поток JavaScript в браузере.Если страница загружает несколько объявлений, это ненадежно, блокируя сторонние звонки.Используя управляемый событиями автономный браузер на стороне сервера, можно ли выполнить эти запросы и сразу передать рекламные активы в браузер?В частности, будет ли это работать с doubleclick, чьи рекламные сети часто выполняют серию запросов, которые документируют теги сценария document.write, которые затем извлекают больше сценария, может загрузить флэш-файл SWF, который затем запрашивает дополнительные GIF-файлы?Это звучит немного похоже, но реклама - это дьявол, и если это удастся разгрузить с клиента, это значительно улучшит скорость сайтов, поскольку серверное решение может выполнять запросы на рекламу и обрабатывать javascript параллельно.

РЕДАКТИРОВАТЬ: Отвечая на @dthorpe:

Все хорошие моменты для рассмотрения.

Что касается задержки показа рекламы, решение на стороне сервера должно помочь по следующим причинам:

Во-первых, несколько запросов на рекламу могут выполняться параллельно.Хотя в браузере есть способы параллельной загрузки ресурсов, я не знаю хорошего решения, которое бы полностью блокировало (то есть как с точки зрения рендеринга страницы, так и с точки зрения события onload), если только вы не лениво загружаете все своиОбъявления.Я ищу способ загружать рекламу параллельно и неблокирующим образом, пока загружается остальная часть страницы.

Во-вторых, и, что более важно, загрузка объявлений с двойным кликом обычно включает загрузку нескольких промежуточных сценариев.,Javascript в браузере является однопоточным.Это прямо означает, что javascript моей страницы будет блокировать рекламный javascript, замедляя показ рекламы.JavaScript объявления, в свою очередь, заблокирует JavaScript моей страницы, замедляя мою страницу.У меня могут быть другие сторонние звонки в игре, для отслеживания или других целей.У меня также есть несколько объявлений на странице, все это помогает замедлить рендеринг страницы и выполнение JavaScript.Разгружая рекламу на сервер, JavaScript моей страницы не будет конкурировать с рекламой.Задержка, связанная с показом объявлений, будет зависеть от одного объявления (самого длинного), но на поведение загрузки одного объявления не будут влиять другие объявления или моя страница, и в результате теоретически это должно быть быстрее.

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

Мне известны различные ленивые механизмы загрузки, некоторые из которых включают iframes и некоторые, которые переопределяют document.write для поддержки отложенной загрузки, но ни один из них не дал удовлетворительных результатов, исключительно из-за последовательного поведения, препятствующего выполнению JavaScript.

Интересно, смогу ли я получить выгоду от загрузки рекламы на стороне сервера с помощью Java-апплетов в браузере и избежать ситуации с cookie / предварительной загрузкой, о которой вы упоминали?Я на самом деле рассматриваю эти несоответствующие подходы из-за серьезного ухудшения, которое мы наблюдаем в рекламе с двойным кликом.То, как эти объявления убивают скорость загрузки страницы, является настоящей мерзостью:)

Ответы [ 2 ]

3 голосов
/ 19 марта 2011

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

Возможно, вы могли бы захватить рекламу в браузере вашего сервера, чтобы «предварительно загрузить» ее от имени клиента, но без файлов cookie браузера клиента вам не хватило бы непрерывности и отслеживания, на которые в значительной степени полагаются рекламные сети. Объявления, выбранные для показа рекламными сетями, будут основаны на том, какие страницы просматривал браузер сервера от имени клиента, а не на том, что просматривал клиент.

Кроме того: Если загрузка рекламного контента блокирует рендеринг страниц в браузере клиента, как может ускорить рендеринг тех же страниц на вашем сервере? Ваш браузер сервера будет страдать от той же задержки сети и сценариев, что и браузер клиента, и клиент все еще будет сидеть там в ожидании «чего-то», но ничего не покажет, пока страница полностью не загрузится и не будет обработана в браузере сервера и передается на клиентский браузер? Перемещение проблемы «вверх по течению» ничего не решает.

Наконец: даже если ваши намерения могут быть благородными (для улучшения работы с клиентами), рекламные сети, скорее всего, сочтут вашу рекламу в браузере сервера «предзагрузчиком» мерзостью и нарушением условий обслуживания их рекламной сети именно потому, что это мешает с их способностью отслеживать активность просмотра фактического клиента.

0 голосов
/ 26 марта 2013

Использование java-плагина на стороне клиента, вероятно, приведет к еще большему расточению ресурсов клиентского компьютера, поскольку плагин Java должен загружаться в браузер, что часто может занять несколько секунд.

Имейте в виду, что с регулярностью Java-эксплойтов 0 дней в дикой природе (http://java -0day.com / ). Плагин Java рекомендуется отключать во всех веб-браузерах. Mac теперь поставляется с подключаемыми плагинами Java по умолчанию. Кроме того, на мобильных устройствах, таких как смартфоны и планшеты, не существует подключаемых модулей Java. Таким образом, вы не сможете доставлять рекламу никому, кроме браузеров настольных компьютеров, и, скорее всего, только тем настольным браузерам, которые используются вне корпоративных настроек.

Если отложенная загрузка объявлений неприемлема, вам, вероятно, придется принять время загрузки DoubleClick в том виде, в каком оно есть. Рекламные сети не будут любезно воспринимать вмешательство с точки зрения контракта, и если вы когда-либо планируете продавать свои рекламные ресурсы напрямую, вы столкнетесь с сопротивлением со стороны самих рекламодателей, когда они будут пытаться показывать модные мультимедийные объявления. (видео, расширяемая реклама, рекламные вставки и т. д.)

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

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

Снимаю шляпу перед вами за заботу о ваших конечных пользователях, хотя рекламные запросы DoubleClick могут сильно затормозить время загрузки страницы. Я хотел бы, чтобы кто-то пришел и предоставил способ отложить загрузку рекламы надежным и надежным способом.

...