有些博主可能希望 Google Analytics 不要记录自己的访问,下面是我发现的一些方法。
WordPress专用:修改模版
如果你的站点是 WordPress 搭建的,那么可以通过修改模版代码的方式来实现。思路就是,当只有非登录用户访问时才输出统计代码;如果是已登录用户访问,则不输出统计代码。
例如,如果你是通过修改header.php
添加的统计代码,那么只需要改成这样:
<?php if (is_user_logged_in()): ?>
<!-- Google Analytics Tracking Code -->
<?php endif; ?>
嗯,其实就是加一个is_user_logged_in
函数,这是 WordPress 内置的函数,用途是判断用户是否已登录。所以,只要你每次访问都保证登录就可以了。比如,你的博客地址为example.com
,那么每次你可以先直接访问example.com/wp-admin
登陆一下。
如果你的博客开放注册,那么可能需要用current_user_can('manage_options')
。
利用 Cookie
因为 PHP 和 JavaScript 都支持读写 Cookie,所以这也是个好办法。你可以给自己设置一个特殊的 Cookie,然后实现根据 Cookie 判断是否统计的代码。对于 PHP 页面,可以在后台判断,如果存在你设定的 Cookie 则不输出统计代码;对于静态页面,可以用 JavaScript 判断,如果存在你设定的 Cookie 则不执行统计代码。
需要注意的是,必须在自己的网站的域内设置 Cookie 才有效;不同域名下的 Cookie 是不共享的。
例如,下面的 PHP 脚本将会设置一个 Cookie DO_NOT_TRACK
,过期时间为一年:
<?php
set_cookie('DO_NOT_TRACK', 'true', time() + 3600 * 24 * 365);
?>
访问一次之后,一年以内只要不清空的话 Cookie 都会在。然后,你可以选择自己喜欢的方法:
PHP 判断:
<?php if (isset($_COOKIE['DO_NOT_TRACK'])): ?>
<script>/* Tracking Code */</script>
<?php endif; ?>
或者 JavaScript 判断:
if (document.cookie.indexOf("DO_NOT_TRACK") > -1) {
/* Tracking Code */
}
用于 Universal Analytics 的方法
如果你已经升级到了 Universal Analytics,那么也可以利用 Google 官方提供的一个技巧来实现。具体来说就是:如果把下面这个值设为true
,那么访问信息就不会发送给 Google(需要先把 UA-XXXX-Y 设为你自己的编号):
window['ga-disable-UA-XXXX-Y'] = true;
为了只对自己执行这句话,同样可以通过 Cookie 来完成。例如:
<?php if (isset($_COOKIE['DO_NOT_TRACK'])): ?>
<script>window['ga-disable-UA-XXXX-Y'] = true;</script>
<?php endif; ?>
或者:
if (document.cookie.indexOf("DO_NOT_TRACK") > -1) {
window['ga-disable-UA-XXXX-Y'] = true;
}