通过 Nginx 使用 Google Analytics
欢迎访问新站点: https://www.yidiankuaile.com/post/nginx-google-analytics
通常是通过引用 analytics.js 来使用 Google Analytics 。 但是这个方案缺点是:客户端安装 Adblock 等扩展,屏蔽了Google Analytics,导致统计信息偏差。
通过将统计转移到后端发送,则可以避免统计被扩展拦截的可能,同时也提高浏览器访问页面的速度。
配置
1 | userid on; |
Nginx 默认自带的 userid 模块可以用于标记各个用户,而 post_action 配置项可以在 Nginx 收到的请求处理完成后向某处发送一个异步的 Get 请求,这个请求会附带原始请求的 referer 与 user-agent
userid 模块将会在用户访问时检查 cookies 中是否有 cid 项,如果没有 cid 项,则会在返回的 header 中加入 set-cookies 头标记这个用户,并将$uid_set 变量设定为 cid=XXXXXX 这一形式,将$uid_got 变量设定为空。如果有 cid 项,则将$uid_got 变量设定为 cid=XXXXXX 这一形式,将$uid_set 变量设定为空。于是在@tracker 部分,上述变量会将$uid_set$uid_got 填充为 cid=XXXXXX。
遵守 DNT (Do Not Track) 的写法
1 | location / { |
完整的配置,查看我的 Github
Tips
和相较于参考文章,我添加 resolver 100.100.2.138 8.8.8.8 233.5.5.5 valid=3600s;
这个是用于dns解析 www.google-analytics.com
的,在调试过程中:如果不添加 resolver
, 在 proxy_pass
填写 ip 测试没有问题,填写域名测试就接收不到数据了。
更多内容查看参考链接~~
更新记录
- 2018/10/5 23:53:53 首次发布