谷歌分析默认收集哪些数据?

18

我尝试确定默认的 Google Analytics 脚本实际收集了哪些数据。这似乎是一个简单的问题,但事实证明并没有明确的答案。

我知道它们(例如)收集 IP 地址、屏幕分辨率、操作系统等等... 但我并没有找到一个完整的列表。我也有一个可收集的所有可能的维度和指标的清单,但不适用于“默认”分析脚本。

我要求列出由 Google Analytics 默认收集的所有数据清单。


1
最好的方法是将GA放在测试网页上,并玩弄和探索报告。 GA不断变化,因此“收集哪些数据”的列表仍在增长。我怀疑您实际上也不会找到一个收集了什么的清单。您可能会找到一个入门级别的列表,但不会找到完整的列表。 - nyuen
1
我已经做过了。更明确地说:我不是在搜索GA提供的结果(它们对此有很好的洞察力:Dimensions&Metrics)。我正在搜索用于计算这些数据的信息。例如:IP地址(可以匿名化,因此没有隐私问题),屏幕分辨率,操作系统,URL,颜色深度,引荐者等。在安全方面,我们尽量只收集我们需要维护客户隐私的信息。因此,为了实现这一点并获得数据清单,需要这些信息。 - Schuiram
3个回答

12
“……识别默认脚本实际收集了哪些数据……我也有一个可以收集的所有可能维度和指标列表。”
“需要明确的是,GA收集的信息比他们与分析消费者分享的要多。虽然他们的客户端脚本可能允许收集其他数据(如自定义查询字符串参数),但他们收集的大部分数据似乎在每个站点上都相似,无论分析用户选择消费什么(除了一些配置项,如“anonymizeIp”)。”
谷歌的政策巧妙地措辞,表明开启“广告功能”并不会改变他们使用GA所收集的内容,除了可能会有一个新的cookie存在:
“通过启用广告功能,您可以使Google Analytics通过Google广告cookie和标识符收集有关您的流量的数据。”
“了解GA收集的内容(即使您没有要求)尤其重要,因为GDPR是否真正合规(包括IP地址、cookie标识符和GPS位置作为“个人数据”)存在模糊性。”
“查看源代码”
“Google Analytics是一个不断发展的目标,但在某个时间点拍摄泄露给Google Analytics的客户端和浏览器的识别信息具有价值。”

尽管有点过时,但这项分析是使用手动反混淆的Google Analytics JavaScript文件完成的,快照日期为2018年3月27日。

1. Document和Window对象中可用的数据

在分析JS中要查找的一些关键对象:DOCUMENT, WINDOW, NAVIGATOR, SCREEN, LOCATION

以下是GA使用的项目(不一定意味着这些数据以原始形式发送回Google)。

Data Utilized         |   Code Snippet
-------------         |   ------------
Url                   |   LOCATION.protocol + "//" + LOCATION.hostname + LOCATION.pathname + LOCATION.search
ReferringPage         |   DOCUMENT.referrer
PageTitle             |   DOCUMENT.title
HowLongIsPageVisible  |   DOCUMENT.visibilityState .. DOCUMENT,"visibilitychange"
DocumentSize          |   DOCUMENT.documentElement  .clientWidth && .clientHeight
ScreenResolution      |   SCREEN.width  SCREEN.height
ScreenColors          |   SCREEN.colorDepth + "-bit"
ClientSize            |   e = document.body; e.clientWidth && e.clientHeight
ViewportSize          |   ca = [documentEl.clientWidth .... : ca = [e.clientWidth .... ca.join("x")
FlashVersion          |   getFlashVersion
Encoding              |   characterSet || DOCUMENT.charset
JSONAvailable         |   window.JSON
JavaEnabled           |   NAVIGATOR.javaEnabled()
Language              |   NAVIGATOR.language || NAVIGATOR.browserLanguage
UserAgent             |   NAVIGATOR.userAgent
Timezone/LocalTime    |   c.getTimezoneOffset(), c.getYear(), c.getDate(), c.getHours(), c.getMinutes()
PerformanceData       |   WINDOW.performance || WINDOW.webkitPerformance   ... loadEventStart,domainLookupEnd,domainLookupStart,connectStart,responseStart,requestStart,responseEnd,responseStart,fetchStart,domInteractive,domContentLoadedEventStart
Plugins               |   NAVIGATOR.plugins
SignalUserLeaving     |   navigator.sendBeacon()  // how long the user was on the page
HistoryLength         |   WINDOW.history.length   // number of pages viewed with this browser tab
IsTopSiteForUser      |   navigator.loadPurpose   // "Top Sites" section of Safari
NameOfPage (JS)       |   WINDOW.name
IsFrame               |   WINDOW.top != WINDOW
IsEmbedded            |   WINDOW.external
RandomData            |   WINDOW.crypto.getRandomValues  // because of the try/catch, it doesn't appear to leak anything other than random values
ScriptTags            |   getElementsByTagName("script");  // probably for Ads, AutoLink decorating [https://support.google.com/analytics/answer/4627488?hl=en] and cross-domain tracking [https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain]
Cookies (JS)          |   DOCUMENT.cookie.split(";")   // limited to cookies not marked as server only

2. 从 QueryString 和 Hash 中获取的数据

默认情况下,GA 似乎只会明确收集与 Google Analytics 特定文档相关的查询字符串参数。但请记住,他们也可以从服务器端提取整个 URL 的数据,包括查询字符串和哈希:

_ga
_gac
gclid
gclsrc
dclid
utm_id
utm_campaign
utm_source
utm_medium
utm_term
utm_content

3. HTTP头中可用的数据

他们可以选择从浏览器请求头中捕获任何内容。其中最显著的是:

Cookies (Google)   |   for the google analytics domain, to track the user between sites
IP Address         |   (parameter "anonymizeIp" claims to anonymize the IP address)
Browser w/ version |
Operating system   |
Device Type        |   
Referer            |   (in this context, only the url of the page the client is currently on)
X-Forwarded-For    |   Is a proxy being used?  And, if not used for privacy, the actual IP address

4. 其他推断数据

Javascript enabled
Cookies enabled

他们似乎没有跟踪/利用的其他身份识别信息

一些其他可用的度量标准,但GA似乎没有访问:

Canvas Supported
CPU Architecture
CPU Number of cores
AudioContext Supported 
Bluetooth Supported
Battery Status
Memory (RAM)
Number of speakers
Number of microphones
Number of webcams
Device Orientation
Device input is Touchscreen
System Fonts
LocalStorage Data
IndexedDB Data
WebRTC Supported
WebGL Supported
WebSocket Supported

杂项技巧

他们似乎没有使用任何已知的黑客方法来提取额外的独特用户信息,例如使用Canvas和GL查找当前机器的视频卡模型。这并不令人惊讶,因为谷歌可以在chromium/webkit中公开任何他们想要的数据。

然而,他们控制着70%的浏览器市场,这使得他们有权利操纵无害的功能(如随机数生成器)来泄露用户跟踪数据,如果他们愿意的话。

摘要

您从Google Analytics门户网站选择查看的内容未必会影响到他们所收集的内容。

GA帮助谷歌确定网站的搜索排名表现,并创建一个用户指纹来跟踪每个互联网用户查看了什么及持续时间。后者有助于他们选择广告,这是他们赚钱的主要方式。他们脚本中触及的大部分数据不以原始形式发送回来,而是用于创建上述指纹。


1
如果您深入挖掘,就会发现有大量关于Google Analytics架构的文献。
根据官方文档:
Google Analytics通过在网站页面上包含一块JavaScript代码来工作。当用户访问您的网站页面时,此JavaScript代码引用一个JavaScript文件,然后执行Analytics的跟踪操作。跟踪操作通过各种方式检索有关页面请求的数据,并通过附加到单像素图像请求的参数列表将此信息发送到Analytics服务器。
来源:Google Analytics如何收集数据? 更多阅读:Google Analytics功能

9
很抱歉,您的回答并没有回答我的问题。我没有询问“如何”,我非常清楚,我问的是“什么”。如果您试图暗示“反向工程'ga.js'和'analytics.js'”,那么我的回答是:我希望有人已经完成了这个工作 :) 我读了Brian Clifton的书《Google Analytics功能、优点和限制》。虽然它帮助我理解了“如何”和“什么是可能的”,但它并没有回答我的问题。“我还查看了谷歌提供的信息和政策(例如您刚才发布的链接),但这并没有帮助我。” - Schuiram
我理解你的意思,但是我在第一个链接的“GIF请求参数”部分看到了完整的列表。除了获取未声明的IP地址和与访问者Google帐户相关的一些人口统计信息外,其余部分都是通过使用cookie进行设置和读取的。 - carlodurso
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - carlodurso
你所提到的列表只是举例而已,并非详尽无遗。此外,我的任务目标并不在于可能的隐私泄露的严重程度,而在于方法的可靠性。我只需要这些信息来说“就是这样!”如果我只是说:“在紧急情况下很可能不会丢失个人数据!”他们会不满意 :) 但还是感谢你的努力 :) - Schuiram

-1

我认为要了解GA收集的信息,最好看一下Google的通用政策:

“我们收集信息是为了向所有用户提供更好的服务-从确定您使用的语言到更复杂的事情,例如哪些广告对您最有用,您在网上最关心的人或您可能喜欢哪些YouTube视频。

我们以两种方式收集信息:

  1. 您提供给我们的信息。例如,我们的许多服务都需要您注册Google帐户。当您这样做时,我们会要求您提供个人信息,例如您的姓名,电子邮件地址,电话号码或信用卡。如果您想充分利用我们提供的共享功能,我们还可能要求您创建一个公开可见的Google个人资料,其中可能包括您的姓名和照片。

  2. 我们从您使用我们的服务中获得的信息。我们收集有关您使用的服务以及您如何使用它们的信息,例如您在YouTube上观看视频的时间,访问使用我们的广告服务的网站的时间,或者您查看和与我们的广告和内容互动的时间....”

来源:http://www.google.com/policies/privacy/#infocollect


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接