如何防止我网站路线上的广告拦截器?

How to prevent ad blocker on my site's routes?

在我的 React 网络应用程序(一个内容管理系统)中,我有一个 "Advertisers" 屏幕,用户可以在其中处理 "Advertiser" 实体。

此屏幕与我自己的服务器(同一域)上的端点交互,其中包含单词 "advertiser",例如

GET <domain>/advertiser/31 或者 GET <domain>/info?advertisers

问题是广告拦截器将我的路线识别为有害并阻止对这些路线的请求。

除了重命名我的端点之外,有没有办法克服它?

简答

对于内部应用程序,让您的用户为您网站的域禁用广告拦截器浏览器插件。对于面向 public 的网站,最实用的方法是将 <domain>/advertiser/31 重命名为 <domain>/vendor/31 之类的名称。

广告拦截器按 URL 模式过滤

假设您的 React 内容管理系统仅在企业内部网中使用,您应该对用户环境有一定的控制权。在广告拦截软件中明确包含将您的域列入白名单的说明。

广告拦截器有几种过滤广告的机制,其中之一是 URL 模式匹配。以流行的广告过滤列表EasyList为例。您可以看到 /advertises/* 等模式。如果您的 URL 匹配这些模式中的任何一个,它们将被阻止。