工具
Web 开发
Web 服务
Google Analysis Measurement Protocol
创建一个像素 URL 用于跟踪邮件是否被打开:
<img src="https://www.google-analytics.com/collect?v=1&tid=UA-01010-1&cid=ba28fd4d-a15c-4109-90b1-f3ed2d586f8a&aip=1&t=event&ec=email&ea=open&dl=%2Fnotification%2Fabandoned&dt=Complete%20your%20Purchase">
这个链接很长,我们拆开看它包含什么信息:
v = 1
tid = UA-01010-1
cid = ba28fd4d-a15c-4109-90b1-f3ed2d586f8a
aip = 1
t = event
ec = email
ea = open
dl = /notification/abandoned
dt = Complete your Purchase
下文是具体的参数解释。
必填参数
协议版本,参数 v
,当前值为 1
,写作 v=1
。
跟踪 ID / 网络媒体资源 ID,参数 tid
,格式为 UA-XXXX-Y
,示例 tid=UA-XXXX-Y
。
匹配类型,参数 t
,类型的值:event, pageview, screenview, transaction, item, social, exception, timing。对于不同的匹配类型,有不同的必填项目:
t=event
必填ec
,ea
t=pageview
必填dl
,或dh
+dp
t=transaction
必填ti
t=item
必填ti
,in
注:transaction, item 这两种类型与电子商务交易相关。另外有增强电子商务,必须单独在 analytics.js 中点击选项开通才能配置使用相关参数。
用户 ID
有两个参数用于标识用户,分别为 cid
与 uid
,两者必须填其中一个。
User ID (uid) 用于匿名标识用户、设备或浏览器。对网页而言,一般以第一方 Cookie 的形式存储在本地,有效期为两年。对移动应用而言,会针对每个应用安装实例随机生成。uid 的值为一个随机 UUID(版本 4),由 http://www.ietf.org/rfc/rfc4122.txt 定义。实例:cid=35009a79-1a05-49d7-b876-2b884d0f825b
。
PHP 生成 UUID 代码:
function guidv4($data = null)
{
// Generate 16 bytes (128 bits) of random data or use the data passed into the function.
$data = $data ?? random_bytes(16);
assert(strlen($data) == 16);
// Set version to 0100
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
// Set bits 6-7 to 10
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
// Output the 36 character UUID.
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
注:PHP 7 开始支持 random_bytes()
,之前的版本可以用 openssl_random_pseudo_bytes()
函数。
Client ID (cid) 用于标识用户,但不能为个人身份信息,不能长久存储在 GA Cookie 中。示例 uid=as8eknlll
。
选填参数
数据来源,参数 ds
,从 analytics.js 发出的数据来源为 web
,从移动 SDK 发送的数据来源为 app
,示例 ds=web
, ds=app
等。
来源网址,参数 dr
,用于统计流量来源,如流量来自 https://berlinix.com
,写作 dr=https%3A%2F%2Fberlinix.com
。
广告系列名称,参数 cn
,例如 (direct)
写作 cn=%28direct%29
。
广告系列来源,参数 cs
。
广告系列媒体,参数 cm
,示例 cm=organic
。
广告系列关键字,参数 ck
,例如 Blue Shoes
写作 ck=Blue%20Shoes
。
广告系列内容,参数 cc
。
广告系列 ID,参数 ci
。
文档网址,参数 dl
,表示完整的 URL,例如 https://berlinix.com/sales?p=1
,写作 https%3A%2F%2Fberlinix.com%2Fsales%3Fp%3D1
。文档网址参数 dl
可拆分为 dh
, dp
两部分,分别表示主机名和文档路径+参数(以 /
打头)。若 t=pageview
则必须设置 dl
或同时设置 dh
与 dp
。
屏幕名称,参数 cd
,若 t=screenview
则必须设置,例如 High Scores 写作 cd=High%20Scores
。
事件类别,参数 ec
,若 t=event
则必须设置,例如 Category 写作 ec=Category
。
事件操作,参数 ea
,若 t=event
则必须设置,例如 Action 写作 ea=Action
。
交易 ID,参数 ti
,若 t=transaction
或 t=item
则必须设置,例如 0D564 写作 ti=0D564
。
商品名称,参数 in
,若 t=item
则必须设置,例如 Shoe 写作 in=Shoe
。
文档标题,参数 dt
。
对 IP 地址进行匿名处理,参数 aip
,只要包含此参数就会将发送者 IP 匿名处理,示例 &aip=
、&aip=0
或 &aip=1
。
缓存无效化宏,参数 z
,用于在 GET 请求中添加一个随机数,确保浏览器和代理服务器不对匹配进行缓存。它应作为请求的最后一个参数发送。这个值不会显示在数据统计中。示例 z=289372387623
。
增强型电子商务
要使用这一系列的参数,必须在 analytics.js 中先开通选项。
产品 SKU,参数 pr<idx>id
,其中 <idx>
表示产品索引,其值是 1-200 之间的整数。例如 p123 写作 pr1id=p123
。
产品名称,参数 pr<idx>nm
,例如 T-Shirt 写作 pr1nm=T-Shirt
。