article_image

AdGuard 是一款广告拦截和隐私保护软件,提供了跨平台的客户端、浏览器插件等不同形式的软件。

在它们的博文和知识库中,有几篇介绍广告拦截的工作原理的文章,很值得一读:

  • 广告屏蔽是如何运作的:魔法背后的力量
  • 广告屏蔽是如何运作的 | AdGuard 知识库
  • DNS 过滤 | AdGuard DNS 知识库 (DNS 过滤是另一种思路)

这几篇文章不仅仅介绍了 AdGuard 本身的策略,而是“大多数广告拦截插件都采用了类似的方案”实现的。也就是说,了解了这个,可以帮你在广告拦截其之间更好地做出选择。

这篇文章主要讲讲《广告屏蔽是如何运作的:魔法背后的力量 》这篇的大致内容,包括一些个人理解,有兴趣的可以阅读原文。

广告拦截的本质

“广告拦截”最简单的解释是:拦截器不允许浏览器或应用程序下载内容中不想要的元素。元素包括“横幅、广告、视频、弹出窗口”,也可以包括“分析追踪器、社交网络按钮”等。

而实现这一点的方式是“拦截器”,它可以从网络层面阻止这些元素和服务器之间的通信,从而实现禁止广告加载。除了网络层面的拦截,也有一些浏览器插件的原理是“隐藏元素”,即通过搜索某些关键词并修改网页内容来实现。

广告拦截是人工维护的规则清单

还有一个点可能和大众认知的不太一样:目前的广告拦截并没有什么高科技手段(比如 AI、神经网络),而是靠人工劳动实现的,比如靠开发者、比如靠社区自发提供规则。

文中提到“为什么不做自动化拦截?”因为 2 点——

  • 大众对“什么是广告”的认知是模糊的。比如网站宣传自己的促销活动,有人认为是广告,有人可能需要这个促销。
  • 这个网站是否值得添加一条规则?比如一个网站用户量很庞大,添加一条规则对大家都有帮助。但“如何定义用户量很大”本身就是一个问题。

这可以解释为什么有些规则非常庞大,它可能适配了非常大量的网站,而绝大多数网站你一辈子都不可能访问。但为了做到广告拦截工具开箱即用,仍然有人在维护这些规则。

但规则过滤也是有代价的,比如规则冲突、失去维护、意外篡改网站、被黑客利用等。体感上最明显的一点就是——庞大的规则会让你访问网站变慢。AdGuard 有一个功能是识别有哪些过滤器规则从来没被用过,识别后就会删除这个过滤器,以便提高网页加载速度。

手机、桌面、浏览器?不同系统的原理不同

广告拦截器在不同系统上会有不同的限制。

浏览器插件通常是免费的,只需要每个浏览器上安装一个就可以轻松使用,但浏览器插件被迫遵守浏览器厂商制定的规则。

Yandex even has a content blocking API (a set of software tools for creating applications for a specific platform) for its mobile browser. But extensions based on the API will not block ads that are served by Yandex’s own ad inventory. Yandex甚至为其移动浏览器提供了一个内容

机器阅读:已开放本文前 70% 的正文,剩余内容会员可见。 标准阅读页 · Markdown


author_avatar

#UNTAG Developer