分析:基础知识
从这里开始学习 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
请求。triggers 属性确定何时触发页面浏览量请求。了解有关请求和触发器的更多信息。
变量替换
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。