Как показать рекламу при переходе по внешней ссылке на сайте?

Есть сайт, на котором я публикую бесплатные материалы для скачивания. Материалы размещаются в Мэйл Облаке. Возникла идея показывать рекламу пользователям, которые переходят по таким внешним ссылкам.

Реклама на моем сайте выводится с помощью плагина FlatPM. На момент написания статьи у плагина не было функции показа рекламы при переходе по внешним ссылкам. Я обращался к разработчику по этому поводу и он обещал внедрить данную возможность в будущем.

В интернете нашел бесплатное решение, которым решил поделиться на блоге. Подробнее опишу идею скрипта.

Код представляет собой страницу с сообщением о переходе на другой сайт, с вопросом о подтверждении перехода, и предоставляет пользователю две опции: подтвердить переход или вернуться на предыдущую страницу. Данная страница создается стандартным способом в админ панели WordPress.

  • Национальные домены — кириллица, латиница и д.р.
  • Популярные протоколы: ftp, http, https, и другие…
  • Если не задан протокол добавляет http
  • Seo: удерживает поисковых ботов
  • Поддерживает все браузеры включая IE6 и выше
  • Универсален, подходит для всех: ucoz сайты, динамичные, статичные сайты
  • Валидный код
  • Блокировка фишинговой страницы при target=_blank
<!-- html, javascript -->
<meta name="robots" content="none" />
<noscript><meta http-equiv="refresh" content="0; url=/"></noscript> <!-- если выключена поддержка скриптов  -->
<script type="text/javascript">
	window.opener = null; // fix control target="_blank"
	if(window.location.search != '') {
		var referUrl = decodeURI(window.location.search.substr(1) + location.hash);
		referUrl = (referUrl.indexOf('://') == -1) ? 'http://' + referUrl : referUrl;
		// хост
		var parser = document.createElement('a');
		parser.href = referUrl;
		var referHostname = parser.hostname;
	} else { 
		window.location.href = '/'; 
	}
	function redirect(referUrl) {
		window.location.href = referUrl;
	}
</script>

Далее между тегами body добавляем код:

<!-- html, javascript -->
<div style="text-align:center;">
    Вы собираетесь перейти на другой сайт <b><script type="text/javascript">document.write(referHostname);</script></b><br>подтвердите
</div>

<div style="text-align:center; margin-top:5%; font-weight:bold">
    <a href="javascript:redirect(referUrl);" onclick="redirect(referUrl);" style="cursor:pointer; display:inline-block; border:1px dashed #E4E4E4; padding:10px;">
        ДА, перейти
    </a>
    <a href="javascript:close();" style="cursor:pointer; display:inline-block; border:1px dashed #E4E4E4; padding:10px; margin-left:50px;">
        НЕТ, вернуться
    </a>
</div>

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

Этот код выполняет следующие задачи:

  1. В секции head:
  • Устанавливается мета-тег «robots» с атрибутом «content» равным «none», что означает, что поисковые системы не должны индексировать эту страницу.
  • В случае, если поддержка JavaScript отключена, используется элемент noscript для перенаправления пользователя на главную страницу «/».
  1. В секции body:
  • Выводится сообщение о том, что пользователь собирается перейти на другой сайт, и имя этого сайта (значение переменной referHostname) будет отображаться жирным шрифтом.
  • Создаются две ссылки: «ДА, перейти» и «НЕТ, вернуться». При нажатии на «ДА, перейти» будет вызвана функция redirect(referUrl), которая перенаправит пользователя на указанный в переменной referUrl сайт. При нажатии на «НЕТ, вернуться» будет вызвана функция close(), которая выполняет не определенный здесь код.

Правельно было бы, шифровать uri адрес переадресуемого сайта, чтобы ваш же сервер случайным образом не обрабатывал его. Если все же обрабатывает и при переадресации выдает http ошибку 404, удалите в начале переадресуемой строки http://. Скрипт сам добавит этот протокол при переадресации. Убедиться в этом поможет переменная document.write(referUrl);

SeoKardinal
Мы будем рады и вашему мнению

Оставьте отзыв

SeoKardinal
Logo