...确定默认脚本实际收集了哪些数据...。我还有一个可以收集的所有可能维度和指标的列表
需要明确的是,GA 收集的信息比他们与 Google Analytics(分析)消费者分享的信息要多。虽然他们的客户端脚本可能允许收集额外的数据(如自定义查询字符串参数),但他们收集的大部分数据似乎在每个站点上都是相似的,无论分析用户选择使用什么(除了一些配置项,例如“anonymizeIp”)。
Google's policies are cleverly worded to indicate that turning on "Advertising Features" 不一定会改变他们通过 GA 收集的内容,除了可能存在新 cookie 的事实:
通过启用广告功能,您可以启用 Google Analytics
通过 Google 广告 cookie 收集有关您的流量的数据,以及
标识符
考虑到 GA 是否真的是 GDPR compliant(其中包括 IP 地址、cookie 标识符和 GPS 位置作为“个人数据”)的模糊性,了解 GA 收集的内容(即使您没有要求)尤其重要.
看源码
Google Analytics 是一个不断变化的目标,但拥有在给定时间点泄露给 Google Analytics 的客户端和浏览器的识别信息快照是有价值的,
尽管有点过时,但此分析是使用 Manually Deobfuscated Google Analytics javascript file 完成的,快照拍摄于 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
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
杂项黑客
他们似乎没有使用任何已知的黑客手段来提取额外的唯一用户信息,例如查找video card model of the current machine using Canvas and GL。这并不奇怪,因为 Google 可以在 chromium/webkit 中公开他们想要的任何数据。
但是,他们控制了 70% 的浏览器市场,这使他们能够根据需要操纵其他无害的功能(如随机数生成器)来泄露数据以进行用户跟踪。
总结
您选择从 Google Analytics 门户查看的内容不一定会影响他们收集的内容。
GA 帮助 Google 确定网站的搜索排名表现如何,并创建用户指纹来跟踪每个互联网用户查看的内容和查看时间。后者帮助他们选择广告,这是他们赚大钱的地方。他们在脚本中接触的大部分数据不会以原始形式发回,而是用于创建所述指纹。