Уведомление для пользователей AdBlock (почти готовое решение)

Автор Vanok, 30 августа 2015, 11:41:32

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Vanok

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

И так, для начала нам понадобится мод Custom <head> and <body> scripts. Можно обойтись и без него, но тогда нам вручную придется прописывать в загрузку скрипты, а с этим дополнением можно легко включить/выключить нужный код в head сайта и добавить дополнительный код.

Далее мы воспользуемся уже имеющейся наработкой от Цукерберг позвонит позвонит, но внесем в нее некоторые доработки. Смысл оригинального скрипта достаточно прост: есть файл advert.js с простейшим кодом, который установленный AdBlock должен заблокировать, и есть дополнительный код, выводящий блок с текстом. Если файл заблокирован, выводится один текст, если нет - другой. Меня такой вариант не устроил, поэтому я решил допилить скрипт.

Первая часть (файл advert.js) осталась той же. Приведу ее сюда, чтобы вам отдельно ничего не качать:
window.ab = false;Файл можно назвать и иначе, но не забывайте, что AdBlock реагирует на его название, а не содержание, а поэтому имя должно указывать на рекламу - ad, advert, banner и т.п.

А вот далее начинается шаманство. Нам необходимо прописать ссылку на advert.js в шапку сайта и код вызова блока в его тело. Если вы поставили мод, о котором я говорил выше, то просто заходим в "конфигурацию - настройки модов - <head> and <body> scripts" и в вписываем в первый блок следующую информацию:

1. Где  Insert the "before </head> code here:
<script src="путь до скрипта/advert.js"></script>Для удобства можно скопировать скрипт в соответствующую папку темы по умолчанию - /Themes/default/scripts

2. Где Insert the "before </body> code here:
<div id="result"></div>
    <script src="advert.js"></script>
    <script>
        if (!('ab' in window)) { window.ab = true; }
        var result = document.getElementById('result');
        if (window.ab == true) {
            result.innerHTML = '<div class="noadb">СЮДА пишем текст</div>';
        }
    </script>
Это и есть моя доработка (код отличается от оригинального). Данный скрипт выводит сообщение только в том случае, если скрипт заблокирован (т.е. если сработал AdBlock) и ничего не выводит если блокиратор отключен или его нет.

Разберем немного подробнее:
<div id="result"></div> - это код, который отвечает за вывод собственно блока. Если его не вставить, система работать не будет (так что не обращайте внимание на то, что див внутри пустой, главное здесь - это его id)
<script src="advert.js"></script> - собственно, данная часть и делает запрос к нашему файлу. Здесь полный адрес указывать уже не надо - просто пишем advert.js
result.innerHTML = '<div class="noadb">СЮДА пишем текст</div>'; - часть, где мы указываем сам текст сообщения. Можно просто текстом, можно в HTML,

Но это еще не все. Теперь нам надо оформить сообщение. Как мог заметить опытный вебмастер, для этого во второй скрипт я прописал div с классом "noadb". Теперь нам надо этот класс создать. В этих целях логично воспользоваться index.css соответствующей темы (для темы по умолчанию: Themes/default/css).

Сам код стиля
.noadb {background: #D6CFB3 repeat scroll 0% 0%; position: fixed; padding: 8px; bottom:0px; border: 2px dotted; border-bottom:0} Это уже сугубо для примера. Думаю, не надо объяснять, что каждый сам может настроить вывод сообщения. В моем случае "плашка" с предупреждением выводится в нижней части экрана и остается к ней привязана при прокрутке. Таким образом, само сообщение пользоваться сайтом не мешает, но внимание к себе привлекает. Его пример я представил в аттаче к данному посту.

Система проверялась на Firefox и Chrome, каких-то поломок сайта ("вывиха" дизайна), связанных с внедрением системы я не заметил. Включен Adblock - есть сообщение, выключен или не установлен - нет и его, и каких-либо намеков на то, что здесь что-то должно быть. Единственный важный момент: если до кучи у пользователя еще и сркипты отключены, то тут уже без разницы есть адблок или нет - сообщение выводиться не будет все равно.

gorbi

А как решить более простую задачу - оценить процент захода на форум с эдблок?

Yarik

А зачем это делать?Не пойму совершенно...Поставил юзер бананорезку,не хочет он видеть рекламу - зачем ему что-то навязывать?
Это его право и его свобода....

gorbi

Цитата: Stalker от 07 октября 2015, 18:57:46А зачем это делать?Не пойму совершенно...Поставил юзер бананорезку,не хочет он видеть рекламу - зачем ему что-то навязывать?
Это его право и его свобода....
В баннерорезке есть список исключений и можно попытаться убедить человека, что у сайта должен быть источник дохода. По крайней мере, это не хуже, чем просить донейт.

Yarik

Всё равно не понимаю...Это уже немного принудиловкой пахнет ИМХО...
Я форум создавал не строя иллюзий,и знал что нужно будет башлять.И не отказываюсь от этого.Есть реклама,но я не навязываю её.

gorbi

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

В конце концов можете придумать какой-то другой сценарий на базе этого функционала.

Yarik

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

gorbi

Заставить - плохое слово, людям нужно объяснять ) В конце концов, если форум нравится, то реклама не такая уж и большая плата за развитие форума. Естественно, если с рекламой не перебор.

Yarik

Реклама стоит как подспорье а не основной источник дохода.Просмотрел кто-то - капнуло что-то и да хрен с ним,глядиш что-то и накапает.Не глянули ну и...хрен с ним.Смысла кого-то что-то принуждать смотреть и хоть как-то навязывать эти просмотры я не вижу.ИМХО - это только вспугнёт.
Знаете как бывает,напоролся я на сайт - а он на юкозе...Каждое движение по страницам - это закрывание как минимум трёх баннеров.Меня хватило на две страницы,на третьей закрыл накуй этот сайт.Ибо бесит это всё.

gorbi

Это понятно, должна быть мера и уважение к читателю. Это первично