Google Analytics收集哪些数据(默认情况下)

Sch*_*ram 12 google-analytics privacy

我尝试确定Google Analytics默认脚本实际收集的数据.看似简单的问题似乎没有明确的答案.

我知道他们(例如)收集IP地址,屏幕分辨率,操作系统等等......但我根本找不到完整的清单.我还列出了可以收集的所有可能维度和指标,但不包括"默认"分析脚本.

我要求提供Google Analytics默认收集的所有数据的列表.

Jam*_*mes 11

... 确定默认脚本实际收集了哪些数据 .... 我还有一个可以收集的所有可能维度和指标的列表

需要明确的是,GA 收集的信息多于他们与 Analytics 消费者共享的信息。虽然他们的客户端脚本可能允许收集额外的数据(如自定义查询字符串参数),但他们收集的大部分数据在每个站点上似乎都是相似的,无论分析用户选择使用什么(除了一些配置项,例如“anonymizeIp”)。

谷歌的政策措辞巧妙,表明打开“广告功能”并不一定会改变他们使用 GA 收集的内容,除了可能存在新 cookie 的事实:

通过启用广告功能,您可以让 Google Analytics 通过 Google 广告 cookie 和标识符收集有关您的流量的数据

考虑到 GA 是否真正符合 GDPR(包括 IP 地址、cookie 标识符和 GPS 位置作为“个人数据”)这一不确定性,了解 GA 收集的内容(即使您没有要求)尤为重要。

查看源代码

谷歌分析是一个移动的目标,但是在给定的时间点有一个关于客户端和浏览器的识别信息的快照是有价值的,这些信息被泄露给谷歌分析,

尽管有点过时,但此分析是使用手动去混淆的 Google Analytics javascript 文件完成的,快照拍摄于 2018 年 3 月 27 日。

1. 文档和窗口对象中可用的数据

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

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

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
Run Code Online (Sandbox Code Playgroud)

2. QueryString 和 Hash 中可用的数据

默认情况下,GA 似乎只明确收集记录为特定于 Google Analytics 的查询字符串参数。但请记住,他们还有整个 URL 可用于提取此数据服务器端,包括查询字符串和哈希:

_ga
_gac
gclid
gclsrc
dclid
utm_id
utm_campaign
utm_source
utm_medium
utm_term
utm_content
Run Code Online (Sandbox Code Playgroud)

3. HTTP Header 中可用的数据

他们可以选择从浏览器捕获请求标头上的任何内容。最为显着地:

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
Run Code Online (Sandbox Code Playgroud)

4、其他推断数据

Javascript enabled
Cookies enabled
Run Code Online (Sandbox Code Playgroud)

他们的其他标识信息出现跟踪/使用

其他一些随时可用但 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
Run Code Online (Sandbox Code Playgroud)

杂项黑客

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

然而,如果他们愿意,他们对浏览器市场 70% 的控制使他们有能力操纵其他无害的功能(如随机数生成器)来泄漏用户跟踪数据。

概括

您选择从 Google Analytics 门户看到的内容不一定会影响他们收集的内容。

GA 可帮助 Google 确定网站在搜索排名方面的表现,并创建用户指纹以跟踪每个互联网用户查看的内容和查看的时间。后者帮助他们选择广告,这是他们赚大钱的地方。他们在脚本中接触的大部分数据不会以原始形式发回,而是用于创建所述指纹。


car*_*rso 1

如果您深入挖掘,您会发现大量有关 Google Analytics 架构的文献。

根据官方文档:

Google Analytics 的工作原理是在您网站的页面上包含一段 JavaScript 代码。当您网站的用户查看页面时,此 JavaScript 代码会引用一个 JavaScript 文件,然后该文件执行 Analytics 的跟踪操作。跟踪操作通过各种方式检索有关页面请求的数据,并通过附加到单像素图像请求的参数列表将此信息发送到分析服务器。

资料来源:Google Analytics 如何收集数据?
附加阅读:Google Analytics 功能

  • 不幸的是,您的回答没有回答我的问题。我没有问如何,我很清楚这一点,我问的是什么。如果您试图暗示:“对“ga.js”和“analytics.js”进行逆向工程,我的答案是:我希望有人已经这样做了:)我读过这本书:Brian Clifton 的 Google Analytics Features, Benefits, and Limitations .虽然它帮助我理解“如何”和“什么是可能的”,但它没有回答“什么”。我还爬行了谷歌提供的信息和政策(例如您刚刚发布的链接),但它没有帮助我。 (9认同)