#php #jquery #html #affiliate
#php #jquery #HTML #Аффилиат
Вопрос:
У меня есть красивый и элегантный веб-сайт, который загружается в два раза быстрее, пока, конечно, не будет включена баннерная реклама! Ожидание получения добавляет до 10 секунд к времени загрузки страницы, что для меня действительно расстраивает, поскольку я потратил годы на оптимизацию остальной части сайта.
Я пытался загружать рекламу через ajax или аналогичную с переменным успехом. Баннеры на основе flash и объявления, которые просто получают фрагмент html с сервера объявлений, работают нормально. Однако есть некоторые (я говорю о вас, PaddyPower), которые возвращают javascript и используют document.write() для добавления html-объявления в DOM. Реклама никогда не отображается.
Партнерский код:
<script type="text/javascript" src="someadserver.com/impression.aspx"></script>
Скрипт, возвращенный someadserver.com
document.write('Normal HTML code')
Это должно быть как-то связано с межсайтовыми сценариями и безопасностью, но я не эксперт в этом. Есть ли способ добиться того, чего я хочу?
Я не верю, что кэширование — это вариант, поскольку это приведет к искажению статистики показов / переходов.
Также изменение любого партнерского кода не является вариантом, поскольку это веб-сайт клиента, и мне нужно стабильное и работоспособное решение, которое не зависит от взлома рекламного кода.
—РЕДАКТИРОВАТЬ—
Я изменил свой класс advert, чтобы возвращать рекламный код, окруженный тегами <noscript>, и в то же время сохранять рекламный код в статическом элементе. Сразу после моего тега </body> я использую этот код здесь:
<?php foreach(Advert::getCachedAds() as $id => $code): ?>
<div class="advert <?php echo $id ?>" style="visibility:hidden;">
<?php echo $code ?>
</div>
<?php endforeach; ?>
<script type="text/javascript">
$(function(){
$('.adContainer').each(function(index, object){
var advert = $('div.' $(object).attr('id')).html();
$('div.' $(object).attr('id')).html('');
$(object).html(advert);
});
});
</script>
Это работает довольно хорошо и напоминает мне старые скрипты предварительной загрузки изображений, которые мы использовали во времена Netscape и коммутируемых подключений.
Комментарии:
1. Для ясности, вызывает ли реклама задержку загрузки остальной части содержимого вашей страницы или вас просто беспокоит общее время загрузки страницы?
2. @rdjs — Поскольку реклама является встроенной, все внешние ссылки должны быть разрешены, прежде чем можно будет отобразить следующий html. Я не возражаю, если внешний контент по-прежнему тихо загружается в фоновом режиме, пока основной контент виден.
3. Выглядит неплохо. Хотя упоминание о Netscape и коммутируемых соединениях бросило меня в холодный пот! 😉
Ответ №1:
Вы можете разместить разделы-плейсмены там, где вы хотите, чтобы размещалась ваша реклама, загружать рекламу после загрузки всего фактического контента, а затем перемещать загруженные объявления на место.
Это не поможет снизить общую скорость просмотра страницы, но позволит увидеть ваш фактический контент, не дожидаясь загрузки рекламы.
Комментарии:
1. Не уверен, кто ваш рекламный провайдер, но на этом сайте, похоже, задокументировано то, к чему я стремился с помощью Google ads semplicewebsites.com/google-ads
2. Конкретного поставщика рекламы нет, сайт представляет собой сборку WordPress, которая использует плагин Ad Manager. Клиент копирует и вставляет партнерский код с выбранных сайтов ставок, и я написал класс для извлечения партнерского кода и отображения в нужном месте. Эта идея может работать с небольшими изменениями. Я попробую это.