广告拦截器w / Segment.io

时间:2016-03-14 19:44:28

标签: analytics

我正在考虑将segment.io用于我的几个客户端第三方API需求,但我对广告拦截器有点担心。

我的应用没有广告,但我会为产品分析和错误跟踪做很多事件跟踪。

Segment.io提供了一个很好的一体化解决方案,但是如果它被阻止了,我的所有鸡蛋都在那个篮子里,那么,好吧,我不会留下任何鸡蛋,或者那个成语结束了。

所以我的问题是:有没有办法整合不易受广告拦截影响的多用途事件跟踪(segment.io,keen.io等)?

我的应用程序主要是无服务器,使用Firebase + AWS Lambda设置,因此我尝试考虑某种后端解决方案,但到目前为止还没有重要的想法。

ETA:我不打算跟踪广告拦截用户或侵犯任何人的信任。我的问题是关于与用户身份无关的事件跟踪,以及这是否可能在一个可能被广告拦截的一体化事件跟踪库中。

3 个答案:

答案 0 :(得分:4)

首先,我通常认为这种阻止是"隐私"阻止而不是广告。因此,与Adblock相比,它更可能是Ghostery或uBlock Origin。

尽管大多数网站使用的分析都是良性的(提高转换率,捕获浏览器异常等),但许多人担心的是它允许第三方分析网站(包括细分市场等)跟踪多个网站上的用户。现在大多数这些分析网站对此不感兴趣,但比抱歉更安全吗?

希望对您的所有网络应用程序进行分析的道德规范远远超过"隐私良好,跟踪不良"而且我不认为这是它的论坛,所以我会给你一个技术答案。请注意,您的免责声明不希望跟踪广告拦截用户"不是真的有效。如果您的目标是收集有关它们的分析,那么这仍然基本上是跟踪。否则只需使用托管解决方案,并意识到可能有10-20%的用户无法为您提供分析。

坏消息:基本上每个"托管"分析解决方案已经或将在阻止列表中。他们的API主机不仅被直接阻止,而且还根据您可能尝试包含的JS文件的名称放置了块。

好消息:如果您通过自己的API中继事件,则可以解决此问题,而您可能已经使用的AWS API网关是完美的。

这有多个步骤。

步骤1:分析提供商需要提供完全捆绑/构建的JS文件选项。如果他们要求您从他们自己的服务器动态提取脚本,那么它甚至会在下载之前被阻止。

步骤2:重命名捆绑的脚本,使其不会触发任何基于文件名的块,例如从mixpanel.umd.js重命名为mp.js,并将其添加到您的服务器。

步骤3:创建一个API网关,将事件转发回"更正" API(例如api.analyticshost.com)。如果您通过正确的标头和URL参数,您实际上只能使用AWS API网关执行此操作(不需要lambda)。

步骤4:初始化库以使用API​​主机而不是默认主机。

这样做的结果是(a)浏览器不再需要从分析提供商的CDN动态提取分析,而是从服务器获取分析,并且(b)浏览器将其发送到您的API然后转发给分析提供商。

答案 1 :(得分:0)

收集分析数据时,细分市场还提供服务器端跟踪库。当您想要收集某些类型的事件的度量标准时,这可能会非常有用,这些事件可能会被客户端上的用户阻止。最简单的是,Segment有一个HTTP Source,但也支持许多流行的语言。 https://segment.com/docs/connections/sources/catalog/#server

经典示例是订单完成事件,该事件通常在将事务提交到数据库后在您的服务器中发生。无论浏览器配置如何,都可以从服务器发送此事件并进行跟踪。

尽管如此,请确保您尊重用户的同意管理设置。

答案 2 :(得分:0)

在接受的答案中已经提到了很多有效的观点,我会提到一些技术注意事项,以尽量减少广告拦截器对跟踪工具(Segment、Google Tag Manager 等)的影响:

  • server-side tracking 开发。广告拦截器无法拦截服务器上的任何内容。但是,这通常很棘手且非常定制,Segment 也提供了 some examples
  • 使用托管的 client-side proxy 解决方案,例如 DataUnlocker。这很棒,而且不需要很多代码更改。
  • 使用自托管的开源解决方案来代理 Google Analytics 和 Google Tag Manager,例如 thisthis。我相信这些解决方案也可以扩展到支持 Segment。