Рендеринг рекламы в iFrame с последующим перемещением в главное окно
У меня есть набор объявлений, которые написаны document.write
потому что это единственное, что будет делать рекламодатель.
Я видел, как другие сайты перезагружали рекламу на странице, если пользователь некоторое время сидит там (что-то, что я, возможно, захочу сделать в будущем). Поэтому я поиграл с загрузкой рекламы в iFrame, а затем переместил ее в главное окно. Это, казалось, работало довольно хорошо, пока не показывалось объявление Google, которое само по себе находится в iframe внутри iframe. Можно ли их правильно вытащить / переместить рекламу Google по всей странице?
Это то, что у меня есть в настоящее время, и это работает для всего, кроме рекламы в фрейме.
$().ready(function(){
$('#iframe').load(function(){
var middle_ad_contents = $('#iframe').contents().find('#middle_ad').html();
$('#ad_middle').html(middle_ad_contents);
});
});
[редактировать]
После дальнейшего расследования... похоже, что перезагрузка объявлений Google может противоречить условиям обслуживания, возможно, я не должен этого делать?
[править 2]
Перезагрузка всей страницы на самом деле не вариант (и некий ход движения).
Смысл состоял в том, чтобы, возможно, вращать объявления, но больше, чтобы они не блокировали загрузку страниц, потому что сервер X, который обслуживается через сервер Y, который обслуживается через сервер Z, работает медленно / не отвечает. Казалось бы, iframe - лучшее решение, потому что тогда я могу отложить document.writes, которые имеют глубину 2 или 3 уровня, до конца страницы без их уничтожения всей страницы как document.write
после загрузки страницы === document.replaceTheWholeDOM
, Существует также, возможно, вариант монетизации контента ajaxy/ другого iframed (дрожание) с помощью этого метода.
2 ответа
Лучший способ сделать это, вероятно, использовать document.write
замена. Есть несколько вариантов на выбор, но вот один: https://github.com/eligrey/async-document-write
Это заменит глобальную функцию document.write на функцию, которую можно использовать даже после загрузки страницы.
Это может не только противоречить условиям предоставления услуг, но и снизить ценность рекламы для рекламодателя и создать неуклюжий элемент в пользовательском интерфейсе.
Подумайте об этом с точки зрения пользовательского интерфейса... вы находитесь на сайте, концентрируясь на чем-то, а затем все мигает. Ваше внимание идет от того, на чем вы концентрировались, чтобы выяснить, что только что произошло. Не берите в голову, только щелчок баннера. Далее..... сейчас, где я был?
Для рекламодателя, что если вы заметите объявление и собираетесь нажать на него, и BOOM, оно изменится. И что теперь, ты можешь вернуться? Если нет, вы просто потеряли доход. Пользователи тратят секунды на многих страницах, поэтому, если у вас не получится невероятно "липкий" веб-сайт, сколько рекламы действительно получит рекламодатель? Помните, что Google поощряет сайты AdWord за переходы по ссылкам, не основываясь на показанном объеме, что может фактически повредить вашему CTR.
Если вы полны решимости сделать это, я думаю, что я бы подумал о том, чтобы напасть на него, разместив рекламный сервер напрямую, как он предназначен для dom, а затем использовать таймер на основе javascript для асинхронного пинга по рекламному серверу и снова сказать ему перерисовать желаемый div. Я бы избегал iFrames, как чумы, потому что они просто не дружат в эпоху простых манипуляций с Dom.
Или вы можете просто использовать подход MSNBC и обновлять всю страницу каждые X минут. Это ужасный шаблон пользовательского интерфейса, но он достиг бы вашей цели и, вероятно, согнул (но не сломал) TOS.