分析:基础知识
重要提示:此文档不适用于您当前选择的格式电子邮件!
从这里开始学习关于 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
示例类似。每次页面可见时,都会触发触发事件,并将页面浏览数据发送到定义的 URL 以及随机 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
请求。触发器属性确定何时触发页面浏览请求。了解有关请求和触发器的更多信息。
变量替换
amp-pixel
和 amp-analytics
组件都允许所有标准 URL 变量替换(请参阅 AMP HTML 变量替换)。在以下示例中,页面浏览请求会发送到 URL,以及当前 AMP 文档的规范 URL、其标题和 客户端 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
示例中,页面浏览请求会发送到 URL,其中包含从变量替换中提取的其他数据,这些数据有些由平台提供,有些则在 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。