作者:sluke
发布时间:June 21, 2010
分类:学习札记
Google Analytics使用js获取访问数据,实际上它还提供了部署在服务器端的方法,用于统计不支持js的用户访问,比如手机这样的移动设备。目前Google提供了PHP、JSP、ASP.NET及Perl的实现方式,其他语言的可以参考这些完成。
下面以PHP5为例:
1、下载Google提供的程序包
http://www.google.com/analytics/googleanalyticsformobile.zip
2、解压会发现有php的目录,ga.php是需要上传到服务器的文件,sample.php是官方提供的实例。
使用编辑器打开php1.snippet,有如下代码:
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "ACCOUNT ID GOES HERE";
$GA_PIXEL = "ga.php";
function googleAnalyticsGetImageUrl() {
global $GA_ACCOUNT, $GA_PIXEL;
$url = "";
$url .= $GA_PIXEL . "?";
$url .= "utmac=" . $GA_ACCOUNT;
$url .= "&utmn=" . rand(0, 0x7fffffff);
$referer = $_SERVER["HTTP_REFERER"];
$query = $_SERVER["QUERY_STRING"];
$path = $_SERVER["REQUEST_URI"];
if (empty($referer)) {
$referer = "-";
}
$url .= "&utmr=" . urlencode($referer);
if (!empty($path)) {
$url .= "&utmp=" . urlencode($path);
}
$url .= "&guid=ON";
return $url;
}
?>修改 $GA_ACCOUNT = "ACCOUNT ID GOES HERE"; 这一行,写入你的google analytics ID(在通常情况下是UA-XXXXXXX-X,这里要替换成MO-XXXXXXX-X,表示为移动互联网),本段代码复制需要统计的页面里(php2.snippet里的代码页需要复制到),后面会给出完整演示。
3、将ga.php上传至网站根目录。官方给出的实例如下,需要注意的是php1.snippet及php2.snippet的位置
<?php
$GA_ACCOUNT = "MO-3845491-5";
$GA_PIXEL = "ga.php";
function googleAnalyticsGetImageUrl() {
global $GA_ACCOUNT, $GA_PIXEL;
$url = "";
$url .= $GA_PIXEL . "?";
$url .= "utmac=" . $GA_ACCOUNT;
$url .= "&utmn=" . rand(0, 0x7fffffff);
$referer = $_SERVER["HTTP_REFERER"];
$query = $_SERVER["QUERY_STRING"];
$path = $_SERVER["REQUEST_URI"];
if (empty($referer)) {
$referer = "-";
}
$url .= "&utmr=" . urlencode($referer);
if (!empty($path)) {
$url .= "&utmp=" . urlencode($path);
}
$url .= "&guid=ON";
return $url;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Sample Mobile Analytics Page</title>
</head>
<body>
Publishers content here.
<?php
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
<img src="<?= $googleAnalyticsImageUrl ?>" />
Testing: <?= $googleAnalyticsImageUrl ?>
</body>
</html>需要注意的是
1、不要复制多段代码,不要同时使用js方式
2、Google analytics是通过IP判断用户地理位置,如果是手机用户,尤其是使用了服务器端渲染技术的浏览器,如opera、ucweb等,这一项统计意义不大
3、服务器资源消耗会增大
4、纯静态页面没法统计
PS:Google analytics专门为iPhone和Android提供了SDK,可以在下面的地址下载
http://code.google.com/intl/zh-CN/mobile/analytics/download.html
作者:sluke
发布时间:April 1, 2010
分类:闲言碎语
Google analytics的自定义报告里有两个组,一个叫“指标”(Metrics),另一个叫“维度”(Dimensions)

在这项功能刚发布的时候,什么是“Metrics”,什么是“Dimensions”让我困惑了一会儿,GA的英文帮助里解释得比较清楚:
"A metric is a numeric summary of user behavior to your website"
指数是用户行为的统计数字
"A dimension is a data key or field typically in the form of a string"
维度是数据域,通常是一个字串
简言之,指数是与用户相关的数字,维度是分类。
关于指标里各项定义、维度里各项定义及有效维度-指标组合请查看Google analytics的帮助
https://www.google.com/support/googleanalytics/bin/topic.py?topic=15084
作者:sluke
发布时间:December 2, 2009
分类:闲言碎语
Google Analytics 为网站统计提供了一个新的跟踪代码方式。这种方式可以理解为使用一个独立的通道处理网页统计,以减少网页载入的时间。大量使用js和富媒体内容的用站效果尤其明显,当然轻量级的站点也有改善。
新的代码提供了以下等新特性:
1、代码载入速度更快
2、增强数据采集和准确度
3、解决当js没有完全载入时产生的依赖性问题
异步跟踪代码正处于beta的状态,如果想改善网页载入时间和数据采集准确性,确实值得一试。
使用这个新功能需要更改加载在页面中的代码和不同的API调用语法。如果页面已经使用了Google Analytics统计,为了减少错误,官方的建议是先移除所有的代码及自定义内容,然后将下面这段在head中载入,它不会影响到其他JS的加载:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
</script>也可以分开放,在head放,如:
<head>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
</script>
</head>然后在/body前放:
<script type="text/javascript">
(function() {
var ga = document.createElement('script');
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
</script>异步代码语法的部署,传统型代码这么写:
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._trackPageview();
异步就要这么写:
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
如果部署多个ID:
_gaq.push(['_setAccount', 'UA-XXXXX-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['t2._setAccount', 'UA-XXXXX-2']);
_gaq.push(['t2._trackPageview']);
_gaq.push(['t3._setAccount', 'UA-XXXXX-3']);
_gaq.push(['t3._trackPageview']);
这里的t2、t3是可以随便定义的。
HTML事件处理:
<button onclick="_gaq.push(['_trackEvent', 'button3', 'clicked'])"/><button>
定义函数:
_gaq.push(['myTracker._setAccount', 'UA-XXXXX-X']);
_gaq.push(function() {
var pageTracker = _gaq._getAsyncTracker('myTracker');
var link = document.getElementById('my-link-id');
link.href = pageTracker._getLinkerUrl('http://example.com/');
});关于_gaq这个对象,更详细的介绍请看google的文档:
http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gaq.html
异步代码详细部署请看:
http://code.google.com/apis/analytics/docs/tracking/asyncMigrationExamples.html
欢迎twitter进行交流,@sluke520
作者:sluke
发布时间:October 25, 2009
分类:闲言碎语
给typecho写一个插件并不是一件高深的事情,首先,需要了解typecho php使用的编码规范,请参考
http://typecho.org/phpcoding
论坛的bin同学也给出一个了简明的说明:
http://forum.typecho.org/viewtopic.php?f=6&t=160
以后就是给typecho写一个方便部署统计代码的插件,使用说明:
1、把下面的代码保存成AnalyticsHelper.php(注意大小写)
2、上传到/usr/plugins/
3、后台启用AnalyticsHelper插件
4、配置插件,输入统计的js代码
5、在模版的合适位置加入<?php AnalyticsHelper::output(); ?>
<?php
/**
* AnalyticsHelper
*
* @package AnalyticsHelper
* @author sluke
* @version 0.9 beta
* @link http://typecho.org
*/
class AnalyticsHelper implements Typecho_Plugin_Interface
{
/**
* 激活插件方法,如果激活失败,直接抛出异常
*
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function activate(){}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @static
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function deactivate(){}
/**
* 获取插件配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form 配置面板
* @return void
*/
public static function config(Typecho_Widget_Helper_Form $form)
{
/** 配置各种统计代码 */
$name = new Typecho_Widget_Helper_Form_Element_Text('code', NULL, 'Analytics code', _t('写入统计代码'));
$form->addInput($name);
}
/**
* 个人用户的配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form
* @return void
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
/**
* 插件实现方法
*
* @access public
* @return void
*/
public static function output()
{
echo '<div style="display:none">' . Typecho_Widget::widget('Widget_Options')->plugin('AnalyticsHelper')->code . '</div>';
}
}如果觉得php高亮挺好看,可以去70同学那里下载代码高亮插件
http://www.joyqi.com/typecho/move-to-mediatemple.html
作者:sluke
发布时间:September 28, 2009
分类:资源资料
Google Analytics是通过js代码部署的,原理是加载一个1*1的图片和其他参数,假设用户关闭js支持,统计也就无从谈起。Google reader上的一个好友分享了一篇日志,介绍了一个无需js的Google Analytics服务。
这个免费的服务是架设在google app engine上的,主要用于无js统计,其实范围很广:
1、手机浏览器用户
2、bbs用户,想知道有多少用户阅读自己的帖子
3、邮件统计
4、网店用户,比如淘宝卖家等等
它的格式是这样的:
(HTML code):
<img src="http://nojsstats.appspot.com/UA-000000/mywebsite.com" />
(BBCode):
[img]http://nojsstats.appspot.com/UA-000000/mywebsite.com[/img]
(CSS code):
body{
background: url("http://nojsstats.appspot.com/UA-000000/mywebsite.com");
}如果使用SSL,是这样的
https://nojsstats.appspot.com/UA-000000/yourwebsite.com
由于google app engine的免费版本有流量和CPU限制,如果需要统计很大的流量,需要联系sirdarckcat@elhacker.net
支付10USD,单独开通帐号,其实这点钱是交给google买高级帐号的,呵呵
原理我就不解释了,这个服务可以用于一些神奇的地方,比如有针对性的估算网站流量、验证广告效果、戳穿作弊等等等等,好邪恶.
有兴趣的可以阅读原帖。
http://nojsstats.blogspot.com/2009/09/free-google-analytics-without.html
- 1
- 2
- 3
- »