Одной из основных функций AdGuard является блокировка рекламы на интернет-сайтах. В этой статье мы детально опишем, как именно AdGuard фильтрует рекламу.
Работа AdGuard основана на использовании различных рекламных фильтров, задающих правила, основываясь на которых программа удаляет рекламу. AdGuard может использовать множество различных рекламных фильтров. Часть из них мы создаем самостоятельно (подоробнее о них вы можете узнать на этой странице), часть фильтров создается энтузиастами.
Механизм удаления рекламы зависит от того, какой продукт вы используете. Браузерные расширения полагаются на те возможности, которые предоставляют им сами браузеры. AdGuard для Windows, macOS или Android работает независимо от вашего браузера, на основе совершенно другого алгоритма фильтрации. Ниже мы опишем все этапы фильтрации рекламы, которые использует AdGuard.
Перед тем как страница будет получена браузером, AdGuard обрабатывает ее код, удаляя элементы в соответствии с рекламными фильтрами. Таким образом браузер не узнает о том, что на странице вообще были эти элементы, и не будет пытаться их подгрузить.
Этот механизм используется только в AdGuard для Windows, macOS и Android (при включенном высоком качестве фильтрации). Дело в том, что возможности браузерных расширений ограничены, и они не могут изменять код страницы до того, как ее обработает браузер.
Браузер подгружает на страницу все необходимые элементы, основываясь на полученном коде. AdGuard, основываясь на правилах фильтрации, может заблокировать загрузку рекламных элементов, например, баннеров или флэш-объектов.
Не вся реклама может быть заблокирована на первых двух этапах. Иногда встречается такая реклама, которая внедряется в страницу динамически, с помощью Javascript, и не требует подгрузки дополнительных элементов, которые мы могли бы заблокировать.
CSS - это специальный язык, используемый для оформления веб-страниц. Стиль отображения элементов веб-страницы можно задавать с помощью правил. Под стилем мы понимаем цвет, шрифт, расположение, и даже видимость элемента. Именно это нас и интересует — мы же хотим скрыть баннер от ваших глаз. Javascript - это также специальный язык, который позволяет динамически изменять любой элемент на странице.
Этот этап применяется только браузерными расширениями. Необходимость в нем обусловлена тем, что первый этап обработки (фильтрация кода страницы) для них недоступен. Во время постобработки браузерное расширение удаляет с веб-страницы все элементы, загрузка которых была заблокирована. Если мы не будем их удалять, вы можете увидеть на странице недогруженные элементы, например "битые" изображения.
Все рекламные фильтры создаются вручную, основываясь на жалобах пользователей на рекламу. Вы можете отправить нам жалобу на рекламу с помощью самой программы, или написать об этом на нашем форуме.