网络广告商的像素追踪是如何工作的?
创始人
2024-03-02 04:18:31
0

昨天,我和一名记者谈到了一个问题:广告商是如何在互联网上对人们进行追踪的?我们津津有味地查看了 Firefox 的开发者工具(虽然我不是一个互联网隐私专家,但至少还会使用开发者工具中的“network”标签页),从中我终于弄明白 像素追踪 tracking pixels 在实际中是如何工作的了。

问题:Facebook 怎么知道你逛了 Old Navy?

我时常听人们说起这种有些诡异的上网经历:你在线上浏览了一个商品,一天之后,竟然看到了同一款靴子(或者是别的什么你当时浏览的商品)的广告。这就是所谓的“再营销”,但它到底是如何实现的呢?

在本文中,我们来进行一个小实验,看看 Facebook 究竟是怎么知道你在线上浏览了什么商品的。这里使用 Facebook 作为示例,只是因为很容易找到使用了 Facebook 像素追踪技术的网站;其实,几乎所有互联网广告公司都会使用类似的追踪技术。

准备:允许第三方追踪器,同时关闭广告拦截器

我使用的浏览器是 Firefox,但是 Firefox 默认拦截了很多这种类型的追踪,所以需要修改 Firefox 的隐私设置,才能让这种追踪生效。

首先,我将隐私设置从默认设置(截图)修改为允许第三方追踪器的个性化设置(截图),然后禁用了一些平时运行的隐私保护扩展。

截图

截图

像素追踪:关键不在于 gif,而在于请求参数

像素追踪是网站用来追踪你的一个 1x1 大小的 gif。就其本身而言,一个小小的 1x1 gif 显然起不到什么作用。那么,像素追踪到底是如何进行追踪的?其中涉及两个方面:

  1. 通过使用像素追踪上的请求参数,网站可以添加额外的信息,比如你正在访问的页面。这样一来,请求的就不是 https://www.facebook.com/tr/(这个链接是一个 44 字节大小的 1x1 gif),而是 https://www.facebook.com/tr/?the_website_you're_on。(邮件营销人员会使用类似的技巧,通过为像素追踪指定一个独特的 URL,弄清楚你是否打开了某一封邮件。)
  2. 在发送该请求的同时,还发送了相应的 cookie。这样一来广告商就可以知道,访问 oldnavy.com 的这个人和在同一台电脑上使用 Facebook 的是同一个人。

Old Navy 网站上的 Facebook 像素追踪

为了对此进行验证,我在 Old Navy(GAP 旗下的一个服装品牌)网站上浏览了一个商品,相应的 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 值,因为其中有一些是我的登录 cookie)

下面对其进行拆解分析:

  1. 我的浏览器向如下 URL 发送了一个请求;
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
  1. 与该请求同时发送的,还有一个名为 fr 的 cookie,取值为
10oGXEcKfGekg67iy.AWVdJq5MG3VLYaNjz4MTNRaU1zg.Bd-kxt.KU.F36.0.0.Bd-kx6.

(估计是我的 Facebook 广告追踪 ID)

在所发送的像素追踪查询字符串里,有三个值得注意的地方:

  • 我当前访问的页面:https://oldnavy.gap.com/browse/product.do?pid=504753002&cid=1125694&pcid=1135640&vid=1&grid=pds_0_109_1#pdp-page-content
  • 引导我来到当前页面的上一级页面: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,猜猜看,我的浏览器发送给 Facebook 的 cookie 是什么?

不出所料,正是之前见过的 fr cookie:10oGXEcKfGekg67iy.AWVdJq5MG3VLYaNjz4MTNRaU1zg.Bd-kxt.KU.F36.0.0.Bd-kx6.。Facebook 现在一定知道我(Julia Evans,这个 Facebook 账号所关联的人)在几分钟之前访问了 Old Navy 网站,并且浏览了“男款短绒格子花呢大衣”,因为他们可以使用这个 cookie 将数据串联起来。

Facebook 用来追踪我访问了哪些网站的 cookie,属于所谓的“第三方 cookie”,因为 Old Navy 的网站使用它为一个第三方(即 facebook.com)确认我的身份。这和用来维持登录状态的“第一方 cookie”有所不同。

Safari 和 Firefox 默认都会拦截许多第三方 cookie(所以需要更改 Firefox 的隐私设置,才能够进行这个实验),而 Chrome 目前并不进行拦截(很可能是因为 Chrome 的所有者正是一个广告公司)。(LCTT 译注:Chrome 可以设置阻拦)

网站上的像素追踪有很多

如我所料,网站上的像素追踪有 很多。比如,wrangler.com 在我的浏览器里加载了来自不同域的 19 个不同的像素追踪。wrangler.com 上的像素追踪分别来自:ct.pinterest.comaf.monetate.netcsm.va.us.criteo.netgoogle-analytics.comdpm.demdex.netgoogle.caa.tribalfusion.comdata.photorank.mestats.g.doubleclick.netvfcorp.dl.sc.omtrdc.netib.adnxs.comidsync.rlcdn.comp.brsrvr.com,以及 adservice.google.com

Firefox 贴心地指出,如果使用 Firefox 的标准隐私设置,其中的大部分追踪器都会被拦截:

浏览器的重要性

浏览器之所以如此重要,是因为你的浏览器最终决定了发送你的什么信息、发送到哪些网站。Old Navy 网站上的 Javascript 可以请求你的浏览器向 Facebook 发送关于你的追踪信息,但浏览器可以拒绝执行。浏览器的决定可以是:“哈,我知道 facebook.com/tr/ 是一个像素追踪,我不想让我的用户被追踪,所以我不会发送这个请求”。

浏览器还可以允许用户对上述行为进行配置,方法包括更改浏览器设置,以及安装浏览器扩展(所以才会有如此多的隐私保护扩展)。

摸清其中原理,实为一件趣事

在我看来,弄清楚 cookie/像素追踪是怎么用于对你进行追踪的,实在是一件趣事(尽管有点吓人)。我之前大概明白其中的道理,但是并没有亲自查看过像素追踪上的 cookie,也没有看过发送的查询参数上究竟包含什么样的信息。

当然,明白了其中的原理,也就更容易降低被追踪的概率了。

可以采取的措施

为了尽量避免在互联网上被追踪,我采取了几种简单的措施:

  • 安装一个广告拦截器(比如 ublock origin 之类)。广告拦截器可以针对许多追踪器的域进行拦截。
  • 使用目前默认隐私保护强度更高的 Firefox/Safari,而不是 Chrome。
  • 使用 Facebook Container 这个 Firefox 扩展。该扩展针对 Facebook 进一步采取了防止追踪的措施。

虽然在互联网上被追踪的方式还有很多(尤其是在使用手机应用的时候,因为在这种情况下,你没有和像对浏览器一样的控制程度),但是能够理解这种追踪方法的工作原理,稍微减少一些被追踪的可能性,也总归是一件好事。


via: https://jvns.ca/blog/how-tracking-pixels-work/

作者:Julia Evans 选题:lujun9972 译者:chen-ni 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

临沂小饭店老板抖音拍个菜,...
本文作者:老杜145 文章转载自:知灼 (微信公众号) 这年头,老...
2025-07-11 23:12:50
一小饭店老板随手拍视频竟成...
山东临沂市的黄兰(化名)怎么也没想到,自己随手拍摄的一段菜品视频,...
2025-07-11 16:11:12
用AI做的短视频账号,已经...
操着一口流利英语的“战地记者”,正拿着自拍杆,声称自己在一千八百多...
2025-07-07 07:14:10
【IPO前哨】蓝色光标赴港...
A股上市的广告营销公司蓝色光标(300058.SZ),已向港交所提...
2025-06-27 22:14:06
科技巨头加速推进AI生成广...
据报道,Meta正深入探索AI生成广告技术,从而降低广告商制作广告...
2025-06-18 10:12:23
快手可灵AI与Lovart...
新榜讯 6月6日讯,快手可灵AI近期与设计领域的Lovart达成深...
2025-06-06 21:42:39

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...