Ruadlist easylist что это
Ruadlist easylist что это
Подписки и настройка расширений
После установки выбранного расширения пользователи первым делом подключают подписки. Но очень немногие всерьёз задумываются о том, нужны ли им те или иные подписки, либо основывают свой выбор исходя из их названия.
EasyPrivacy, Fanboy’s Social, Malware Domains – ориентированы на глобальную сеть, но при этом почти не имеют частных (привязанных к определённому домену) правил для рунета. В результате расширение нагружается абсолютно напрасно, при этом зачастую не принося никаких дивидендов в виде реально нужных блокировок. Более того – основная масса ложных срабатываний, за исключением случаев использования дополнительных расширений, связана в рунете именно с этими подписками.
Поэтому прежде чем их подключать, необходимо понимать последствия их применения. Бывает так, что они действительно нужны, так как веб-сёрфинг предполагает частое посещение иностранных ресурсов, где они могут пригодиться, но это также и тянет за собой либо знание английского языка, либо умелое оперирование различными сервисами перевода. Тогда вопрос списывания с редакторами данных подписок и решения проблем ложных блокировок не представляется архисложным мероприятием. В противном случае, пользователь остаётся со своими проблемами один на один.
Совместное использование подписок RU AdList (+EasyList) с подписками Adguard категорически не рекомендуется. И не важно, о каком расширении идёт речь – uBO, Adguard или любом другом. Эти подписки, хоть и созданы на базе EasyList, эволюционируют параллельно и разный подход к конкретным блокировкам и исключениям при одновременном применении рано или поздно неизбежно приведёт к ложным блокировкам, поломанному функционалу, бесконечным загрузкам страниц, срабатываниям детектора или наоборот – к недостаточному скрытию.
Что касается настроек расширений, не имеющих отношений к подпискам, то тут нужно упомянуть uBlock Origin. Версии этого расширения, скаченные не из официального магазина, а с сайта автора, иногда встают с настройкой, когда отключен парсинг косметических фильтров, из-за чего правила скрытия могут не работать.
Решение проблем
Что делать, если вы столкнулись с незаблокированной рекламой, ложным срабатыванием или детектором адблока.
В первую очередь нужно обновить подписки и дополнительные средства блокирования (если таковые используются). Период автоматического обновления подписок в расширениях составляет порой около недели, а за это время только в подписке RU AdList правится/добавляется порядка 500 фильтров. Если в перечень регулярно посещаемых ресурсов входят те, что постоянно меняют вёрстку уходя от блокировки, то обновление подписок имеет смысл делать при каждом запуске браузера.
Как обновить подписки, некоторые примеры.
ABP для Firefox >
Кликнуть по иконке APB, выбрать в меню «Настройки фильтров» и в разделе «Подписки», кнопке «Действия», выбрать пункт «Обновить фильтры.»
ABP для Google Chrome/Safari >
Кликнуть по иконке APB, выбрать в меню «Настройки» и на вкладке «Список фильтров», нажать на кнопку «Обновить сейчас».
uBlock для Firefox/Google Chrome/Safari >
Кликнуть по иконке uBlock, в появившемся окне кликнуть по верхней панели (с надписью uBlock и номером версии) и на вкладке «Сторонние фильтры» нажать сначала на кнопку «Очистить кэши», а потом «Обновить сейчас».
AB для Google Chrome/Safari >
Кликнуть по иконке AB, выбрать в меню «Параметры» и на вкладке «Списки фильтров», нажать на кнопку «Обновить сейчас».
Если проблема не пропала, то далее у юзеров есть два пути. Первый – решить проблему лично для себя любимого, с помощью собственных, либо чужих знаний (спросить на форуме?). Второй – создать предпосылки для того, чтобы проблема решилась для всех, уведомив о ней редакторов подписки.
Пользователи других сочетаний браузер + блокер могут обратится на официальный форум, воспользовавшись следующими указаниями.
Но так как скрывать пустые места, оставшиеся от баннеров в шапках сайтов и прочих местах всё-таки нужно, был создан пакет стилей RU AdList CSS Fixes. В нём реализовано не только скрытие пустых мест, но и разблокировка прокрутки, социальных и трейдинговых замков и многое другое.
Для работы со скриптами был создан пакет скриптов RU AdList JS Fixes. Он отличается от всех встроенных в блокирующие расширения механизмов тем, что скрипты не просто переопределяются, а работают в полном объеме.
Оба пакета, RU AdList CSS Fixes и RU AdList JS Fixes гарантированно совместимы с подпиской RU AdList (+EasyList) независимо от того, в каком расширении она применяется.
Абсолютно любой вопрос по теме можно задать на официальном форуме подписки в топике О том, о сём.
Вариант 1, базовый:
EasyList (основная подписка)
RU AdList (он же RUS: RU AdList)
Adblock Warning Removal List (он же Антиадблок)
+ RU AdList Fixes
Такой набор предназначен для блокировки в основном сторонней рекламы.
Пилим Adblock
Стратегия
Итак, Адблок… Но здесь я буду говорить не столько о блокировке рекламы, сколько об оптимизации и правильном использовании этого интересного своей универсальностью дополнения. Не отношусь к тем, кого раздражает сама реклама — меня раздражает способ ее доставки. Точнее, меня раздражает вот что:
— утяжеление страниц и усложнение процесса их загрузки, как следствие — замедление ее;
— рост трафика (в корпоративной среде);
— шпионские скрипты, сбор личной информации;
— когда при загруженном HTML документе я еще не вижу страницы из-за задержек с подгрузкой какой-то пакости с левых серверов;
— появление процесса plugin-container, кушающего память в объемах, соизмеримых с самим браузером.
Помимо, собственно, рекламы данные проблемы создают в не меньшем объеме различные счетчики и «социальные виджеты» (новое зло, о котором веб 1.0 не знал), ведь страницы даже без рекламы содержат несколько скриптов счетчиков, а для каждой кнопки типа «мне нравится» каждой соцсети грузится свой скрипт! Потому моя стратегия будет в корне отличаться от стратегии создателей стандартных подписок для Adblock:
1) главное — не устранить рекламу, цель — уменьшение времени загрузки страниц, потребления памяти, трафика и т.п. — оптимизация «от машины«, поэтому фокус внимания — на скрипты и флэш, а просто скрывать элементы директивой ## — интересно меньше всего,
2) принцип Парето-эффективности: 20% правил блокируют 80% нежелательного контента,
3) (следствие п.1 и п.2) универсальные правила, насколько это возможно!
4) сайты, на которые я не хожу / неактуальные в Этой Стране — пусть себе содержат кучу нежелательного контента, я категорически не хочу, чтобы при запросе каждого элемента с часто посещаемого сайта мой центральный процессор пробегал по мегабайту правил, которые никогда не сработают (или сработают раз в год).
Исследование
Адблок (исследованию подверглась версия для firefox) представляет из себя упакованный xpi (не распаковывается при установке), весящий 786 кб. Большая часть из этого архива (468 кб в сжатом виде, 1,3 Мб в распакованном) приходится на локализации, которые (ненужные) легко удалить из xpi тем же 7-zip. (Забегая вперед: сокращения потребления памяти в результате этой процедуры обнаружено не было, так же не повлияла и распаковка аддона).
Правила блокировки хранятся в папке профиля ФФ, в подпапке adblockplus или аналогичной по названию аддона (прочие настройки аддона хранятся в стандартном «реестре настроек» браузера). Заглянув туда, я обнаружил 2 огромных файла — INI и CSS, вместе весящих около 1,8 Мб (это «открытие» и стало причиной настоящего исследования). Понятно, что даром такие объемы (особенно CSS!) не обойдутся, даже если бы наш браузер был написан на чистом ассемблере. Чтобы понять, насколько именно Адблок обременителен для системы, были проведены замеры потребления памяти с последними, на момент написания статьи, версиями аддонов семейства Adblock в разных конфигурациях: без подписок, с подпиской против счетчиков (cnt), и 3 подписками — дефолтным RuAdlist+Easylist, BitBlock против виджетов соцсетей и cnt против счетчиков. Замечу, что RuAdlist+Easylist составляет в последней конфигурации около 90% объема файлов, поэтому последняя колонка справедлива и для установленного по дефолту без каких-либо дополнительных действий Adblock Plus.
Потребление памяти браузером Firefox 17.0.1 (в мегабайтах) с разными аддонами семейства Adblock
подписки | 0 | 1(cnt) | 3(ruad+easy,bitblock,cnt) |
---|---|---|---|
adblock lite 1.4.3 | |||
blank | 58 | 58 | 68 |
yandex.ru | 73 | 73 | 139 |
прирост | 15 | 15 | 71 |
adblock edge 2.0.2 | |||
blank | 56 | 57 | 119 |
yandex.ru | 73 | 69 | 129 |
прирост | 17 | 12 | 10 |
adblock plus 2.2.1 | |||
blank | 56 | 57 | 116 |
yandex.ru | 70 | 69 | 128 |
прирост | 14 | 12 | 12 |
Что видно из таблицы (кроме того, что результаты, в целом, озадачивают): изначальные предположения об оптимизированности и легковесности, на практике подтверждаются с точностью до наоборот: самый обычный, мэйнстримовый Adblock plus оказывается самым экономным, а lite-версия, несмотря на своё название, потребляет памяти больше всех, и, кроме того, заметно замедляет прорисовку тяжелых страниц, вроде поиска изображений в Яндексе.
Почему так получается? Всё дело в версиях Adblock plus, явившихся основой альтернативных аддонов — все они более старые, а новые — лучше оптимизированы (нечасто встречающееся явление в мире ПО). В версиях 1.x использовался кэш правил в виде javascript-файла, это решение оказалось неудачным в плане производительности и от него отказались.
Заглянем внутрь XPI. В chrome/locale лежат локализации для всевозможных языков, упомянутые выше. Наибольший интерес представляет папка defaults. Модификацией файла prefs.js можно автоматизировать выставление Адблоку всех настроек что удобно при массовом развертывании. Синтаксис стандартный — как у настроек самого браузера. Рекомендуются следующие настройки:
pref(«extensions.adblockplus.savestats», false);
pref(«extensions.adblockplus.hideContributeButton», true);
pref(«extensions.adblockplus.patternsbackups», 2);
pref(«extensions.adblockplus.subscriptions_exceptionsurl», «»); //обнуляем урл белого списка «приемлемой рекламы»
pref(«extensions.adblockplus.subscriptions_exceptionscheckbox», false); // бесполезно: не отключает подписку приемлемой рекламы, а только показывает белый список явно как подписку вместо галки
(Подробнее об этих и других параметрах в prefs.js читайте здесь: adblockplus.org/ru/preferences)
К сожалению, параметры аддона нельзя заранее задать в файле настроек самого браузера (например, как в моей предыдущей статье) — при первой загрузке аддона, он перезаписывает все заранее заданные параметры на дефолтные. Задача решается только подкладыванием измененного prefs.js обратно в XPI.
Свои правила игры
Стандартные подписки не только тяжеловесны, они не блокируют тяжелые и злоупотребляющие шпионажем скрипты google analytics, которые есть практически на каждом сайте, а значит — вручную хоть одно правило, но придется писать. А если писать одно — то почему бы (зная рег. выражения) и не все?
Правила было удобно сгруппировать по темам: в случае нарушения юзабилити страниц легче локализовать проблему, отключая правила поблочно. В основу нижеприведенных списков легли как готовые подписки, так и собственные наработки в области «анти-баннерных» правил для Squid. Интерфейс Адблока хорошо дружит с буфером обмена — позволяет копировать выделенные правила в виде текстовых строк или вставлять скопированный текст в виде правил.
Безопасный серфинг в интернете
или Мой браузер — моя крепость
Предлагаемая конфигурация системы Windows и браузера Google Chrome призвана сделать серфинг в интернете максимально чистым и безопасным, свободным от рекламы, отслеживания и различных видов атак. В статье идет речь о версии браузера 87.0.4280.88, актуальной на момент последней редакции.
Статья рассчитана на более продвинутых пользователей, которые понимают, для чего именно они делают то или иное изменение. Поэтому не все из предлагаемых советов можно (нужно) применять в конкретном случае.
1. DNS-шифрование и фильтрация
DNS-сервер — это «записная книжка», в которой доменному имени сайта (например, aganin.org ) соответствует его IP-адрес (например, 185.93.108.104). К DNS-серверу ваш браузер обращается всякий раз, когда получает команду перехода по некоторому доменному имени (или ссылке).
Ваш провайдер тоже имеет свой сервер DNS, которым вы пользуетесь по умолчанию. Как правило, DNS-сервер провайдера является самым быстрым.
Но нас интересует прежде всего безопасность, поэтому нам нужен сервер DNS, шифрующий DNS-запросы (например, DNS-over-HTTPS ), и который, желательно, имеет черные списки рекламных, фишинговых и прочих вредоносных доменов. Я предпочитаю пользоваться одним из следующих вариантов:
Cloudflare DNS
Поддерживается политика «без логов». Одинн из самых быстрых DNS. Фильтрации нет (но фильтрацию DNS-запросов мы организуем позже).
Пропишите эту пару IP-адресов в роутер, или в настройки соединения Windows.
Cloudflare DNS+WARP
На мой взгляд, это более предпочтительный вариант, чем предыдущий, поскольку он обеспечивает шифрование и трафика и DNS-запросов, и, как бонус, обход большинства блокировок (хотя он для этого и не предназначен).
В настройках выберите один из трех вариантов шифрования DNS-запросов (DNS Protocol): DNS-over-HTTPS, DNS-over-TLS или DNS-over-WARP. Семейный фильтр можно отключить. В дальнейшем программа будет стоять в автозапуске.
WARP не скрывает ваш реальный IP-адрес.
Google Public DNS
Быстрый, логи есть, фильтрации нет.
OpenDNS
Логи есть, фильтрации нет.
AdGuard DNS
Поддерживается политика «без логов». Блокирует системы отслеживания, рекламы, известные фишинговые и другие опасные домены.
Quad9
Логи есть. Блокирует известные фишинговые и другие опасные домены.
CleanBrowsing
Логи есть. Блокирует взрослый контент. Подходит родителям, школам, религиозным организациям и т.п.
OpennicDNS
Добавляем их адреса в программу DNS Benchmark :
Узнав таким образом DNS-сервера с самым малым временем отклика и выкинув нерабочие, прописываем их в роутер или настройки соединения Windows.
Не лишним было бы раз в полгода обновлять список альтернативных DNS-серверов, проверяя их в программе DNSBenchmark, выбрасывая нерабочие и включая наиболее быстрые из них.
Включение DNS-over-HTTPS в браузере Chrome
Традиционно DNS-запросы отправляются на DNS-сервер в виде открытого текста. Любой может видеть, к каким веб-сайтам вы подключаетесь. Чтобы ваши DNS-запросы оставались не доступными для стороннего наблюдателя (например, провайдера), вы должны использовать сервер, который поддерживает безопасную передачу DNS, например DNS-over-HTTPS. Список этих серверов приведен выше.
Включение DNSSEC в браузере Chrome
DNSSEC позволяет пользователю или приложению или рекурсивному распознавателю понять, что ответ на их DNS-запрос — это то, чем он и является. Другими словами, DNSSEC подтверждает подлинность и целостность (хотя и не конфиденциальность) ответа от DNS-сервера.
2. Очистка системы
3. Уборка мусора
4. Установка расширений безопасности
uBlock Origin
Блокировщик рекламы (и не только) по черным спискам (подпискам).
Это дополнение блокирует практически всю рекламу, кнопки соцсетей, счетчики и прочее, потребляя при этом мало памяти, и после его установки можно «вздохнуть свободно» в безрекламном интернете. Черные списки обновляются автоматически. По умолчанию установлен набор фильтров, но его можно модифицировать.
Вкладка «Списки фильтров»
Здесь предлагается мой личный список фильтров. Для других пользователей, возможно, он будет другим.
Базовый фильтр AdGuard
Представляет из себя основной фильтр Easy list + английский фильтр AdGuard.
Easylist — это основной список фильтров, который удаляет большую часть рекламы с веб-страниц, включая нежелательные рамки, изображения и объекты. Это самый популярный список, используемый многими блокировщиками рекламы.
RU Adlist
RU Adlist является региональным дополнением к фильтру Easylist.
RU Adlist + CSS Fixes для uBlock Origin
Комбинированная версия списков фильтров RU Adlist против рекламы и экспериментального списка косметических стилей CSS Fixes. На данный момент нормально работает только в uBlock Origin.
RU Adlist: Counters
Дополнение к RuAdlist. Блокирует малополезные для пользователей сети Интернет ресурсы, предназначенные для сбора статистики о посещаемости сайтов и параметрах компьютеров посетителей. Ранее они были в основном списке, но были выделены в отдельный.
RU Adlist: BitBlock + Fanboy’s General
Дополнение к RuAdlist. Подписка для блокировки элементов соцсетей (типа кнопок «Мне нравится» и пр.) и скрытия лишних элементов сайтов (таких, как линеечки-счетчики и юзербары в подписях пользователей на форумах; интеграция с социальными сетями и некоторыми сервисами вроде Google Translate (за исключением возможности логина через соцсети); чатики, встроенные в морду форумов; внешние новостные информеры; и прочий подобный мусор, который не относится к основному содержимому сайта.
Cписок фильтров содержит практически целиком Fanboy’s Annoyance list (и входящий туда Fanboy-Social соответственно), за исключением некоторых правил для англоязычных сайтов. В связи с тем, что фильтры Fanboy не всегда корректно работают в рунете, в BitBlock содержатся правила для нейтрализации ложных скрытий и блокировок, возникающих при работе фильтров Fanboy.
AdGuard Russian filter
Фильтр для блокировки рекламы на сайтах на русском языке. Изначально за основу был взят RuAdlist, затем развивался самостоятельно и в данный момент содержит в том числе фильтры, отсутствующие в RuAdlist.
EasyPrivacy
EasyPrivacy — это дополнительный список фильтров, который полностью удаляет все формы отслеживания со страниц, тем самым защищая ваши личные данные.
Adblock Warning Removal list
Cкрывает сообщения, предупреждающие об использовании блокирующих расширений и предлагающие их отключить.
Aaklist (Anti-Adblock Killer)
Совместно с пользовательским скриптом Anti-Adblock Killer блокирует большую часть anti-adblock скриптов.
I don’t care about cookies
Набор фильтров, скрывающих всплывающие окошки и уведомления на многих сайтах, предлагающие ознакомиться с политикой cookie-файлов.
uBlock Filters Plus
Для блокировки всплывающих окон и некоторых других неприятных вещей.
Владка «Мои фильтры»
Для блокировки визуального мусора на YouTube можно скопировать и вставить на вкладке «Мои фильтры»:
AdBlock: особенности работы и продвинутые методы блокировки
Привет, Хабр! Часто по работе сталкиваюсь с вопросами вроде: как же работают блокировщики рекламы?
Хочу поделиться с вами некоторыми интересными, но порой сомнительными решениями, которые можно встретить в работе расширений, и обсудить в комментариях работу блокировщиков.
В своей статье расскажу о самых интересных и необычных решениях по блокировке рекламы с помощью JavaScript’a и не только. Также посмотрим на новые направления разработки блокировщиков и куда все движется.
Статья будет полезна прежде всего веб-разработчикам, так как пользователи с блокировщиками могут столкнуться с проблемами на их проектах. А также тем, кто в данный момент ими пользуется, для более глубокого понимания работы.
Рынок блокировщиков
На данный момент самыми популярными решениями являются различные браузерные расширения, однако ими все не заканчивается. На картинке указаны основные, хотя, например, в Chrome Web Store можно найти еще сотню других.
В некоторых мобильных браузерах есть специальные опции для включения блокировки (например, Opera), некоторые изначально работают как браузеры – со встроенным блокировщиком рекламы и отслеживания (AdBlock Browser, Brave).
В некоторых мобильных браузерах есть специальные опции для включения блокировки (например, Opera), некоторые изначально работают как браузеры – со встроенным блокировщиком рекламы и отслеживания (AdBlock Browser, Brave).
Отдельным списком можно выделить следующие инструменты:
VPN серверы с функцией блокировки рекламы;
DNS серверы с блокировкой рекламы
мобильные операторы с услугами блокировки рекламы.
Браузерные расширения
Многие представляют, как работают браузерные расширения, у блокировщиков тот же принцип. Подробнее почитать про устройство расширений под Chrome.
Перейдем к общей схеме работы расширения на примере AdBlock Plus.
Почти все блокировщики основаны на списках фильтрации, это такие файлы https://easylist-downloads.adblockplus.org/ruadlist+easylist.txt, которые содержат список правил для фильтрации контента на определенных сайтах. Также в них есть общая часть, которая относится к фильтрации на всех ресурсах, так что вы ненароком тоже можете случайно попасть под фильтрацию одного из общих фильтров (которые работают на всех сайтах).
Например, вы создали на своем сайте какой-то
На основе этих файлов и происходит вся фильтрация контента сайта. Изменениями в этих списках занимаются конкретные форумы и модераторы (например: RuAdList https://forums.lanik.us/viewforum.php?f=102), некоторые можно найти и на github’e https://github.com/abp-filters/abp-filters-anti-cv.
Как читать/писать фильтры
Для общего понимания стоит разобрать, как выглядят типичные фильтры. Слева указывается блокируемый адрес, а справа, после разделителя, идут особые параметры: какие запросы блокировать и на каком домене это нужно делать. Подробнее можно почитать здесь.
С помощью подобных фильтров можно заблокировать почти любой, загружаемый на странице ресурс. Среди которых могут быть:
Блокировка с помощью JavaScript
Давайте рассмотрим на примере:
Фильтр на примере: localhost#$#hide-if-shadow-contains /MyAds/
На живом примере мы видим, что блокировщик успешно справился с задачей блокировки закрытого Shadow DOM на основании его внутреннего контента.
Фильтр: localhost#$#abort-on-property-read Object.prototype.testMethod
В данном примере рассмотрено создание типичного класса, который прогнали, например, через Babel.
X-Path
Возможно, некоторые уже сталкивались с языком запросов X-Path, но немногие знают, что его можно применять в вебе (зачастую он используется парсерами страниц). Тут отличный справочник, если кого-то заинтересовало.
В браузере также существует особое API для исполнения следующих выражений, что позволяет блокировщикам избирательнее выбирать элементы для блокировки.
Perceptual Image Hash
Еще одно интересное направление работы – это работа с изображениями, так как во многих рекламных объявлениях можно встретить одинаковые картинки с логотипом рекламной сети, по этим картинкам зачастую можно найти расположение всего объявления и целиком заблокировать.
Алгоритм примерно следующий:
Нормализуем размер картинки под общий пресет;
Разделяем картинку на I1, I2 … In не перекрывающихся блоков, где N – кол-во блоков, равных длине финальной hash bit строки;
Зашифровываем I1, … In блоки с помощью секретного ключа K в новую последовательность блоков;
Для каждого этого блока вычисляем его среднее M1….Mn, а затем вычисляем общее среднее Md = median(Mi), где I = 1…N;
Создаем 64-битный хэш на основании того, находится значение выше или ниже среднего (подробнее).
Давайте рассмотрим на примере этих двух изображений:
Img#1
Img#2
Если мы сравним 2 хэша, получившиеся из двух изображений, то увидим, что дистанция Хэмминга между этими хэшами равна 3, что означает схожесть изображений.
Часть кода фильтра hide-if-contains-image-hash из AdBlock Plus.
На этом примере мы можем видеть, что блокировщик проходится по всем картинкам и ищет среди них похожие на рекламу, что позволит найти похожую даже если по url об этом догадаться нельзя.
DNS фильтрация
Для начала напомню, что DNS позволяет нам, кроме всего прочего, по имени хоста получить IP адрес.
DNS фильтрация работает в том случае, если вы укажете в качестве DNS адресов для вашего устройства, например адреса AdGuard’a. Далее AdGuard по своему усмотрению предоставляет для обычных доменных имен их реальные IP адреса, а для рекламных – IP адреса, которые возвращают заглушки.
Минус в том, что они пропускают все или ничего, зато DNS серверы можно установить прямо на свой роутер и убрать часть рекламы со всех устройств (или получить проблемы со всеми сайтами/приложениями, которые начнут некорректно работать). Ну и конечно никто не может гарантировать, что данные ваших посещений никто не сольет.
HTTPS фильтрация
Итак, есть еще один тип блокирования, когда вы устанавливаете к себе на устройство специальное приложение (например AdGuard). И взамен получаете рутовый сертификат AdGuard к себе на устройство, который позволяет перехватывать ваш HTTPS трафик еще до того, как он попал в браузер и вырезать оттуда рекламу. (А может и не только рекламу).
Как по мне, способ очень экстремальный и экстравагантный, доверять кому-то весь свой трафик я не готов.
Нейронные сети для блокирования рекламы GCNN
Ну и конечно куда уж в 2021 году без Machine Learning в вебе. Сразу оговорюсь, что разбираюсь в теме на уровне новичка и эксперты в комментариях, надеюсь, меня если что поправят.
Итак, в качестве входных данных для нейронной сети выступает часть DOM модели исходного веб-сайта.
Например возьмем следующую простую DOM структуру.
Начнем с верхнего HTML элемента и вычислим все его соседние элементы. В последствии необходимо будет пройтись по всем элементам.
Затем нам необходимо составить вектор фич для каждого элемента. В качестве примера можно использовать любые свойства элементов. Например, мы обозначили, что элемент с типом div обозначается числом 29 и т.д. Тоже самое повторяет с названиями атрибутов у элементов, возможно, их размерами и т.д.
Затем с помощью любого подходящего алгоритма, например, вычисление среднего или поиск максимума, получаем среднее по выборке соседних векторов фич элементов.
После этого полученные значения попадают в обученную нейронную сеть, которая на входе имеет количество нейронов, соответствующее размерности вектора после получения среднего. Может иметь любое количество скрытых слоев, и на выходе иметь несколько коэффициентов, которые нам пока ни о чем не говорят.
Но конечно же, вся мощь открывается после того, как мы создадим несколько подобных слоев. Это необходимо, чтобы наша нейронная сеть ориентировалась не только на первых соседей заданного элемента, но и смотрела глубже, в зависимости от того, как мы хотим ее обучить.
На втором слое в нашем примере, будет происходить все то же самое, за исключением того, что входом для сети будут коэффициенты, полученные на первом слое.
В конце концов, мы должны получить какой-то конечный коэффициент, позволяющий нам говорить о наличие или отсутствии в данном элементе рекламы.
AdGraph
AdGraph – это такой необычный набор патчей для Chromium в движок Blink и JavaScript движок V8, которые позволяют на основе загружаемых ресурсов выстраивать граф зависимостей на основе трех слоев HTML, HTTP и JavaScript.
Общая схема работа
Затем AdGraph, с помощью натренированной нейронной сети Random Forest, классифицирует граф. В качестве исходной информации для обучения были использованы фильтры блокировки, о которых мы говорили ранее.
Подробнее можно посмотреть тут:
Вместо итогов
Пользоваться блокировщиками или нет – личное дело каждого пользователя. Про себя скажу, что не пользовался и не пользуюсь, а сталкиваюсь с этим в основном по работе в департаменте рекламных технологий.
Для всех тех, кто пользуется, считаю полезным знать и понимать как ваши инструменты работают. Для остальной части аудитории если вы занимаетесь веб-разработкой, то вы скорее всего не раз и не два столкнетесь с проблемами пользователей на ваших проектах при включенном блокировщике рекламы.