2016-03-14 36 views
1

我正在考虑使用segment.io来处理我的几个客户端第三方API需求,但我有点担心广告拦截器。Adblocker w Segment.io

我的应用程序没有广告,但我为产品分析以及错误跟踪做了大量的事件跟踪。

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

所以我的问题是:有没有一种方法来集成多用途的事件跟踪(segment.io,keen.io等),这是不容易的广告拦截?

我的应用大多是无服务器的,使用Firebase + AWS Lambda设置,所以我试图想出一些后端解决方案,但目前为止还没有大的想法。

ETA:我不想跟踪阻止用户或违反任何人的信任。我的问题是关于与用户身份无关的事件跟踪,以及在可能被广告拦截的一体化事件跟踪库中是否可行。

+0

如果有人不想被追踪,不要试图解决它。您不仅会损害您的用户的信任,而且由于用户掌控着客户端系统,因此总会有阻止追踪的方法。 –

+0

谢谢。不过,我担心的是,用户为了不被追踪,将会禁止我跟踪其他事物的能力,例如错误或分析不会附加到用户的身份。简单的答案是使用单独的库来处理与非身份有关的事情,但我希望有一种方法可以像段一样使用一体化功能,而不是使用adblock hamstring所有事件跟踪,身份相关或不。 – Brandon

回答

4

首先,我通常认为这种阻止是“隐私”阻止而不是广告。所以,而不是Adblock它更可能是Ghostery或uBlock起源。尽管大多数网站使用的分析都是良性的(提高了转换率,捕捉浏览器异常等),但许多人担心的是它允许第三方分析网站(包括细分市场等)在多个网站上跟踪用户。现在大多数这些分析网站都是不感兴趣,但比对不起更安全?

希望对所有webapp使用情况进行分析的道德规范比“隐私好,跟踪不好”的细微差别更大,我不认为这是它的论坛,所以我会为您提供技术答案。请注意,您不想“追踪广告拦截用户”的声明并不真正有效。如果您的目标是收集关于它们的分析,那还是基本上是跟踪。否则,只需使用托管解决方案,并意识到可能有10-20%的用户不会为您提供分析。

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

好消息:如果您通过自己的API中继事件,则可以解决此问题,并且您可能已经使用的AWS API Gateway对此非常合适。

有多个步骤。

步骤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

太好了,谢谢你的详细解答。你是对的:'隐私'与'广告'阻止者 - 我做了一些更多的研究,发现uBlock阻止段的lib,但adblocker不(默认配置)。但是如果这个数字增长了10-20%,那么类似于你所概述的东西可能会成为更重要的系统(例如Sentry异常监控)的重要后备。 – Brandon

+1

虽然我只是提出这个数字 - 它完全取决于用户群的类型。对于纯消费者来说,这将是低百分比。而如果它是针对开发人员的SaaS产品,则它可以轻松增长超过10-20%。还要注意,隐私拦截器还会阻止异常跟踪器,如sentry,rollbar,trackjs等。因此,最糟糕的情况是(a)阻止您的分析原因和异常/问题,并且(b)您甚至没有注意到它是例外跟踪也会丢失。这就是我期待接力的原因。 – rgareth

+0

@Brandon你在哪里读取uBlock块段lib? –