分析:基础知识
从这里开始学习 AMP 分析的基础知识。
使用 amp-pixel 还是 amp-analytics?
AMP 提供两个组件来满足您的分析和测量需求:amp-pixel
和 amp-analytics
。这两个选项都将分析数据发送到定义的端点。
如果您正在寻找类似于简单 跟踪像素 的行为,那么 amp-pixel
组件提供了基本的页面浏览跟踪;页面浏览数据将发送到已定义的 URL。与供应商的一些集成可能需要此组件,在这种情况下,他们将指定确切的 URL 端点。
对于大多数分析解决方案,请使用 amp-analytics
。页面浏览跟踪也在 amp-analytics
中运行。但您还可以跟踪用户对任何类型页面内容的参与度,包括点击链接和按钮。
作为与 AMP 平台集成的一部分,供应商提供了预定义的 amp-analytics
配置,以便轻松捕获数据并将其推送到其跟踪工具。从 分析供应商 列表中访问供应商文档。
您可以在页面中同时使用 amp-pixel
和 amp-analytics
:amp-pixel
用于简单的页面浏览跟踪,amp-analytics
用于其他所有内容。您还可以添加每个标记的多个标记。如果您与多个分析供应商合作,则每个解决方案需要一个标记。请记住,更简单的 AMP 页面对用户来说更好,因此如果您不需要额外的标记,请不要使用它们。
创建简单的分析配置
了解如何创建简单的 amp-pixel
和 amp-analytics
配置。
简单的 amp-pixel
配置
要创建简单的 amp-pixel
配置,请将类似以下内容插入到 AMP 页面的正文中
<amp-pixel src="https://foo.com/pixel?RANDOM"></amp-pixel>
在此示例中,页面浏览数据将与随机数一起发送到已定义的 URL。RANDOM
变量是 AMP 平台中的许多 替换变量 之一。在此处了解有关 变量替换 的更多信息。
amp-pixel
组件是内置的,因此您不需要像对 AMP 的扩展组件(包括 amp-analytics
)那样进行包含声明。但您应该将 amp-pixel
标记放置在 <body>
的开头附近。只有当标记本身可见时,跟踪像素才会触发。如果 amp-pixel
位于页面底部附近,则可能不会触发。
简单的 amp-analytics
配置
要创建简单的 amp-analytics
配置,您必须首先在 AMP 文档的 <head>
中包含此 custom-element
声明(另请参阅 组件包含声明)
<script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>
以下示例类似于 amp-pixel
示例。每次页面可见时,触发事件都会触发,并将页面浏览数据连同随机 ID 一起发送到已定义的网址
<amp-analytics>
<script type="application/json">
{
"requests": {
"pageview": "https://foo.com/pixel?RANDOM"
},
"triggers": {
"trackPageview": {
"on": "visible",
"request": "pageview"
}
}
}
</script>
</amp-analytics>
在上述示例中,我们定义了一个名为 pageview 的请求,即 https://foo.com/pixel?RANDOM
。如前所述,RANDOM 被替换为随机数,因此请求实际上最终看起来像 https://foo.com/pixel?0.23479283687235653498734
。
当页面变为可见时(如触发关键字 visible
的使用所指定),将触发一个事件,并发送 pageview
请求。triggers 属性确定 pageview 请求触发的时间。详细了解 请求和触发器。
变量替换
amp-pixel
和 amp-analytics
组件都允许所有标准网址变量替换(请参阅 AMP HTML 变量替换)。在以下示例中,页面浏览请求连同当前 AMP 文档的规范网址、其标题和 客户端 ID 一起发送到网址
<amp-pixel src="https://example.com/analytics?url=${canonicalUrl}&title=${title}&clientId=${clientId(site-user-id)}"></amp-pixel>
由于其简单性,amp-pixel
标记只能包含平台定义的变量或 AMP 运行时可以从 AMP 页面解析的变量。在上述示例中,平台填充 canonicalURL
和 clientId(site-user-id)
的值。amp-analytics
标记可以包含与 amp-pixel
相同的变量,以及标记配置中唯一定义的变量。
在页面或平台定义的变量的请求字符串中使用格式 ${varName}
。amp-analytics
标记将在构建分析请求时用其实际值替换模板(另请参阅 amp-analytics
中支持的变量)。
在以下 amp-analytics
示例中,页面浏览请求连同从变量替换中提取的其他数据一起发送到网址,其中一些由平台提供,一些在 amp-analytics
配置中内联定义
<amp-analytics>
<script type="application/json">
{
"requests": {
"pageview":"https://example.com/analytics?url=${canonicalUrl}&title=${title}&acct=${account}&clientId=${clientId(site-user-id)}"
},
"vars": {
"account":"ABC123"
},
"triggers": {
"someEvent": {
"on": "visible",
"request": "pageview",
"vars": {
"title": "My homepage"
}
}
}
}
</script>
</amp-analytics>
在上述示例中,变量 account
和 title
在 amp-analytics
配置中定义。变量 canonicalUrl
和 clientId
未在配置中定义,因此其值由平台替换。
用户识别
网站使用 cookie 在浏览器中存储特定于用户的特定信息。Cookie 可用于告知用户之前是否访问过某个网站。在 AMP 中,页面可以从发布商网站或缓存(如 Google AMP 缓存)中提供。发布商网站和缓存很可能具有不同的域名。出于安全原因,浏览器可以(并且经常会)限制对其他域名的 cookie 的访问(另请参阅 跨来源跟踪用户)。
默认情况下,无论从发布商的原始网站还是通过缓存访问页面,AMP 都将管理客户端 ID 的提供。AMP 生成的客户端 ID 的值为 "amp-"
后跟一个随机的 base64
编码字符串,并且如果同一用户再次访问,该值将保持不变。
在所有情况下,AMP 都管理客户端 ID 的读取和写入。当页面通过缓存提供或在发布商原始网站的查看上下文中显示在外部时,这一点尤其值得注意。在这种情况下,无法访问发布商网站的 cookie。
当 AMP 页面从发布商网站提供时,AMP 使用的客户端 ID 框架可以被告知要查找和使用的备用 cookie。在这种情况下,clientId
变量的 cid-scope-cookie-fallback-name
参数被解释为 cookie 名称。格式可能显示为 CLIENT_ID(cid-scope-cookie-fallback-name)
或 ${clientId(cid-scope-cookie-fallback-name)}
。
例如
<amp-pixel src="https://foo.com/pixel?cid=CLIENT_ID(site-user-id-cookie-fallback-name)"></amp-pixel>
如果 AMP 发现设置了此 cookie,则客户端 ID 替换将返回 cookie 的值。如果 AMP 发现未设置此 cookie,则 AMP 将生成一个值,其形式为 amp-
后跟一个随机的 base64 编码字符串。
在 AMP 分析中受支持的变量 中了解有关客户端 ID 替换的更多信息,包括如何添加可选用户通知 ID。