像素追踪是如何工作的
昨天我花费一些时间告诉记者广告商是如何在互联网上追踪人们的。我们一起研究Firefox的开发者工具(我不是一个网络隐私专家,但我知道怎么用开发者工具中的network选项卡)并且我学习到了如何一些关于如何在实践中跟踪像素的知识。
问题:Fackbook如何得知你是老顾客?
我经常听说这种有点令人毛骨悚然的经历:你在网上看一个商品,一天后就会看到关于那个商品的广告。着就是所谓的“重定向”,但是它是如何实现的呢?
在这篇文章中我们将通过一些实验看看FaceBook是如何精准的知道你在网上看过哪些商品的!在这篇文章中以Fackbook为例,只是因为很容易找到带有FaceBook跟踪像素的网站。当然,网络上其它广告商都在用这种跟踪技术。
设置: 允许第三方追踪器,关闭广告拦截插件
我用的火狐浏览器,默认情况下Firefox会拦截这种追踪。所以我需要修改我的火狐浏览器的隐私设置让追踪能生效。
我更改我的隐私设置为自定义,允许第三方追踪内容。我还禁用了一些我常用的隐私保护扩展插件。
跟踪像素:不是通过gif图,而是URL+查询参数
网站用一个1x1像素的gif图片来跟踪你。显然,一个这么小的1x1 的gif图不能干这么多事情。那么跟踪像素是如何跟踪你的呢? 有两种方法:
- 网站在追踪像素上用**URL和query parameters(查询参数)**添加额外的信息,比如你访问页面的URL。因此不仅仅是向
https://www.fackbook.com/tr/
(这是一个44byte大小的 1x1 gif图)发起请求,请求看起来应该是这样https://www.facebook.com/tr/?the_website_your're_on
。(电子邮件营销人员用同样的技巧标记你是否打开过邮件,同过给每个追踪像素一个唯一的URL) - 网站发送带有cookies的跟踪像素,这样他们就知道访问
oldnavy.com
和在同一台电脑上使用Fackbook的是否是同一个人。
FackBook在Old Navy网站上的追踪像素
为了验证这一点,我查看了Old Navy网站上的一个产品,它的URL是:https://oldnavy.gap.com/browse/product.do?pid=504753002&cid=1125694&pcid=1135640&vid=1&grid=pds_0_109_1(一个 男士长大衣)。
当我访问这个链接时,这个页面上运行的Javascript向facebook.com
发送一个请求,在开发者工具中看起来是这样的:(我删除了一些cookie值,因为这些值是我登录用的cookies:) )
让我们看看发生了什么:
- 我的浏览器发送请求给
https://www.facebook.com/tr/?id=937725046402747&ev=PageView&dl=https%3A%2F%2Foldnavy.gap.com%2Fbrowse%2Fproduct.do%3Fpid%3D504753002%26cid%3D1125694%26pcid%3Dxxxxxx0%26vid%3D1%26grid%3Dpds_0_109_1%23pdp-page-content&rl=https%3A%2F%2Foldnavy.gap.com%2Fbrowse%2Fcategory.do%3Fcid%3D1135640%26mlink%3D5155%2Cm_mts_a&if=false&ts=1576684838096&sw=1920&sh=1080&v=2.9.15&r=stable&a=tmtealium&ec=0&o=30&fbp=fb.1.1576684798512.1946041422&it=15xxxxxxxxxx4&coo=false&rqm=GET
- 在这个请求中,发送一个名为
fr
的cookie,它的值被设置为:10oGXEcKfGekg67iy.AWVdJq5MG3VLYaNjz4MTNRaU1zg.Bd-kxt.KU.F36.0.0.Bd-kx6.
( 我猜是我的Facebook广告追踪ID)
因此,在被发送的跟踪像素请求中最值得注意的3点是:
- 我访问页面: https://oldnavy.gap.com/browse/product.do?pid=504753002&cid=1125694&pcid=1135640&vid=1&grid=pds_0_109_1#pdp-page-content
- 将我引荐到这个页面的页面(referr):https://oldnavy.gap.com/browse/category.do?cid=1135640&mlink=5155,m_mts_a
- 一个标识我身份的cookie:
10oGXEcKfGekg67iy.AWVdJq5MG3VLYaNjz4MTNRaU1zg.Bd-kxt.KU.F36.0.0.Bd-kx6.
现在让我们来访问Facebook!
接下来,让我们来访问我用来登录上一个网站的Facebook,我的浏览器将向Facebook返送什么cookies?
不出所料,叫fr
的cookie和之前一样:10oGXEcKfGekg67iy.AWVdJq5MG3VLYaNjz4MTNRaU1zg.Bd-kxt.KU.F36.0.0.Bd-kx6.
.
现在Faceb肯定知道我(Julia Evans, 拥有这个faceb账号的人)几分钟前访问过Old Navy网站并且浏览过"Soft-Brushed Plaid Topcoat for Men"(男士长大衣), 因为他们用这个cookie标识来匹配数据
这些cookies是第三方cookies
Facebook 用来跟踪我们访问了哪些网站的fr
cookie被叫做"第三方cookie"(third party cookie),因为Old Navy网站正在用它向第三方(facebook.com)确认我的身份. 与第一方Cookies(first-party cookies)不同,后者用于让你登录.
Safari和Firefox浏览器默认的会拦截第三方cookies(这就是为什么我必须更改Firefox的隐私设置才能让这个实验成功), 而Chrome不会拦截(大概是为了google旗下的广告公司方便)
网站有很多跟踪像素
如我所料, 网站有跟多跟踪像素. 例如, wrangler.com
在我的浏览器中加载了19个来自不同域名的跟踪像素.
wrangler.com
网站上的跟踪像素来自: ct.pinterest.com
, af.monetate.net
, csm.va.us.criteo.net
, google-analytics.com
, dpm.demdex.net
, google.ca
,a.tribalfusion.com
, data.photorank.me
, stats.g.doubleclick.net
, vfcorp.dl.sc.omtrdc.net
, ib.adnxs.com
, idsync.rlcdn.com
, p.brsrvr.com
, 和 adservice.google.com
.
对于大多数追踪器,火狐浏览器的默认隐私设置会帮我们屏蔽掉它们。
为什么浏览器很重要
因为你浏览器拥有将信息发送到哪个站点的最终决定权.
Old Navy网站上的Javascript要求浏览器将跟踪信息发送到Facebook,但你的浏览器不一定非要这么做(最终决定权在浏览器手里), 浏览器可以决定 “哦,我知道 facebook.com/tr
是一个跟踪像素, 我不想让我的用户被跟踪, 我不会发送这个请求”.
它可以通过浏览器设置或者安装浏览器扩展改变行为, 这就是为什么有那么多隐私扩展插件。
了解它如何工作很有趣
我认为了解Cookies/tracking pixels(跟踪像素)如何在实践中跟踪你很有趣, 即使它有点惊悚!
我之前知道它怎么工作, 但没有实际观察过跟踪像素上的cookies或者她的查询参数(query parameters)上到底发送了什么信息。
而且如果你知道了它是如何工作的, 会更容易找到减少被跟踪的方法,更好的保护自己的隐私。
你能做什么
我通过做一些事减少在互联网被跟踪的次数:
- 安装一个广告拦截器(像 ublock origin或其它软件), 它会拦截很多跟踪器的域名
- 用 Firefox 或者 Safari浏览器代替Chrome
- 使用 Firefox扩展 facebook Container, 它会采取额外的步骤阻止Faceb追踪你
在互联网上还有很多途径会被跟踪(例如当你使用手机 App时, 你不能像浏览器那样控制它), 但我很乐意理解一种跟踪方法是如何工作的, 并且我认为被少跟踪一点总是好的.