使用 GA 收集 PII 信息
什么是 PII 信息?
PII 为 Personally Identifiable Information,是个人身份信息。是用来单独识别、联系或定位个人身份的信息。例如:姓名,家庭地址,出生日期,电话号码,电子邮件地址,信用卡号码,车牌、驾照号码,护照、身份证号码等。
GA 可以收集 PII 吗?
Google 明文规定,使用 Google 产品的用户不能主动收集,上传 PII 信息到 Google 的产品中,一旦被发现,这些信息会被立即删除。这样看起来好像是不行的。。。但其实官方还是给了 work around 让你收集 PII 信息。
收集 PII 有什么意义?
Google 的 GA 和 DoubleClick 产品可以抓取和存储一些用户识别符用来为一些高级功能提供支持, 例如: 创建 audience list 做 remarketing 或者上传线下数据作分析。
在 GA 中, 我们可以使用 data import 功能来上传线下的用户活动数据来增加数据维度, 可以用 user id 来做 join id 不仅可以将不同设备的同一用户统一起来,还可以创建 audience list 也可以被传送到 Adwords 和 DoubleClick 中使用.
但是有很多公司是没有自己的 CRM 系统和 user ID 功能的, 那么获取客户的 email address 和电话号码(唯一)成了两个常见的用户信息获取方式.
解决方案
通过对 PII 信息做模糊处理,然后上传到 GA 中就不会被删除了。这个功能大大减轻客户创建 CRM 系统并开发 user id 的工作, 加快了线上线下数据打通的效率.
加密方式
模糊处理方法:
- Encryption 加密
- Hashing – 最低标准的SHA256,最少8个字符的salt
关于这部分技术的介绍,我自己找了些 blog:
- 即使被拖库,也可以保证密码不泄露
- 设计安全的账号系统的正确姿势
模糊处理的注意事项:
- Seek approval from your internal IT security team and legal counsel. 获得公司的IT 部门认可或者检查
- Values with and without caps 建议将所有的 identifier 小写之后然后在做 Encryption 或者 Hashing
- Check there are no leading and ending spaces or characters as this will affect the obfuscation process. 注意在字符的前后有没有多余的空格, 要不然会影响加密
- Some hashing methods may truncate/crop values before applying the hash. This has been seen using the SHA256 hashing method in SQLServer. 一些 hashing 方法会在加密之前截断字符. 比如 SQL Server 使用的 SHA256哈希方法.
- Test thoroughly as a simple mistake not found during implementation can mean the implementation has to be repeated and business value is delayed and opportunities to identify users are lost. 一定要做完善的测试
- Consider using a cookie to persist your UserID value. 使用 cookie 来保存 userid 的值
- 将模糊处理的 PII 信息写入 cookie
- 在 GA 中, 从 cookie 中获取 userID
- Google recommends a minimum of 128 bit encryption technology. 无论使用什么级别的加密方式, 加密必须在传送数据之前应用.
- Encrypting will allow you to decrypt the data that is stored in the UserID (GA) 加密的数据可以被解密, 并且通过 GA 的 BigQuery 中.
- Google have minimum requirement for hashing in Google Analytics and DoubleClick which is SHA256 with a minimum 8 character salt. 对哈希加密的最低要求是 HASH256 + 至少 8 个字符的 salt. 不要使用 MD5 加密方式.
加密事例
PHP 代码示例:
$email = “john_doe@webmail.com”;
$salt = “1234567890”; // $result = hash(‘sha256’, $email . $salt); 658b46246e447692f450be278a838647b0566249113b6c1cc9eb51762e5f96ce |
Python 示例:
import hashlib
email = “john_doe@webmail.com” salt = “1234567890” # result = hashlib.sha256((email + salt).encode(‘utf-8’)).hexdigest(); 658b46246e447692f450be278a838647b0566249113b6c1cc9eb51762e5f96ce |
原文出处:aryablog.xyz