翻山越岭使用 Google Analytics 服务

/

Google Analytics 在没有被墙前几乎是网站统计的标配,优异的异步加载性能和强大到令人发指的统计功能让每一个用户都爱不释手。被墙后,我换用了其他一些网站统计工具,但不知是否是因为对 Google 的产品怀有一种情怀,这些工具用起来总感觉不是很满意。所以,绕了一圈,我最终还是回到了 Google Analytics 的怀抱,当然,为了能够正常使用 Google Analytics,需要作一点变通。

从墙内加载 Google Analytics 的 JS 文件

下载 analytics.js 后上传至国内 CDN 网络,跟踪代码中 JS 文件的路径作相应更改。我上传到了七牛。

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//xxxxx.clouddn.com/analytics.js','ga');

  ga('create', 'UA-xxxxxxxx-x', 'auto');
  ga('send', 'pageview');

</script>

定期更新 analytics.js 文件

由于官方经常会对 analytics.js 文件更新,所以需要定期更新 CDN 中的文件,否则统计可能无法正常工作。我利用 cron 定期执行脚本实现,脚本中的 qshell 是七牛官方提供的工具。

# !/usr/bin/env bash
if [[ ! -f ${HOME}/.qshell/account.json ]]; then
    echo 'Please execute qshell account <Your AccessKey> <Your SecretKey> at first'
    exit 1
fi
b='Your Bucket Name'
key=analytics.js
new=${HOME}/analytics.js
old=${HOME}/_analytics.js
if [[ -f ${old} ]]; then
    curl -s -o ${new} http://www.google-analytics.com/analytics.js
    if [[ -n $(diff ${old} ${new}) ]]; then
        qshell delete $b ${key}
        qshell fput $b ${key} ${new}
        cp -f ${new} ${old}
    fi
else
    curl -s -o ${old} http://www.google-analytics.com/analytics.js
    qshell delete $b ${key}
    qshell fput $b ${key} ${old}
fi

脚本建议放在墙外的 VPS 中运行,我目前用的 VPS 是 Ramnode,你也可以选择风评不错的 Lincode 或者 DigitalOcean

Comments