AMP

AMP 的分析和测量

未分类

在出版界,了解您的受众是撰写正确的故事、创建忠实读者和改善底线的基础。解锁该信息的秘诀是使用能够衡量您的受众并了解其行为的工具。我们认为 AMP 支持这些工具非常重要。 但是,我们还认为我们在网络上在这个领域所达到的状态已经破裂,并且 AMP 可以提供一种改进的方法。

一种提高性能的方法

我们在移动网页中经常看到的一个模式是,同一页面上安装了多个分析供应商的标签。虽然每个分析包都提供对发布商受众的独特而有见地的视图,但这种客户端的重复工作导致性能下降,因为每个跟踪器独立执行许多相同的测量。 这些许多小成本加起来可能导致糟糕的体验,导致读者(和潜在读者)放弃页面。

我们以“一次测量,多处报告”的理念构建 AMP 分析。这意味着您可以使用 amp-analytics 配置多个端点和数据集。 然后,AMP 管理所有仪器以获取指定的数据,并与您的所有分析提供商共享这些数据。无论配置了多少个分析提供商,AMP 运行时都只会进行一次测量以得出某个值。这通过减少重复工作、批处理网络请求和简化代码路径来提高性能。

在这篇文章中,我们想向您介绍我们为支持 AMP 中的分析和测量而构建的两个组件:amp-pixel 和 amp-analytics。

amp-pixel

一个核心内置组件,amp-pixel 提供旨在模拟 跟踪像素 的页面浏览跟踪。以下是 amp-pixel 标记的一个示例:

<amp-pixel src="https://foo.com/pixel?RANDOM"></amp-pixel>

当呈现 amp-pixel 时,它会向指定的 URL(例如 https://foo.com/pixel?RANDOM)发送 GET 请求。请注意,此请求可能包含页面作者有兴趣捕获的数据值。在上面的示例中,“RANDOM”表示应使用替换值,因此实际发送的请求可能类似于 https://foo.com/pixel?0.8390278471201

amp-pixel 和我接下来要讨论的下一个组件 amp-analytics 支持多种变量替换,例如“RANDOM”。这些替换可用于传达数据,例如文档引荐来源、页面标题、屏幕尺寸值或由 AMP 管理的客户端标识符。你可以通过查阅文档来了解有关可用替换的更多信息。

amp-analytics

amp-analytics是一个更复杂但功能更强大的解决方案,它支持多种类型的事件触发器,以帮助发布商更好地了解其受众。在为 AMP 构建分析解决方案时,我们从与发布商和测量公司的讨论中获得了非常宝贵的反馈。这些对话帮助我们了解了发布商的多种多样的数据需求,以及他们如何利用数据来实现业务和产品目标。

以下是 amp-analytics 标记的一个示例

<amp-analytics>
<script type="application/json">
{
  "requests": {
    "pageview": "https://example.com/analytics?url=${canonicalUrl}&title=${title}&acct=${account}",
    "event": "https://example.com/analytics?eid=${eventId}&elab=${eventLabel}&acct=${account}"
  },
  "vars": {
    "account": "ABC123"
  },
  "triggers": {
    "trackPageview": {
      "on": "visible",
      "request": "pageview"
    },
    "trackAnchorClicks": {
      "on": "click",
      "selector": "a",
      "request": "event",
      "vars": {
        "eventId": "42",
        "eventLabel": "clicked on a link"
      }
    }
  }
}
</script>
</amp-analytics>

使用 amp-analytics,页面作者可以指定当页面可见或单击时触发的命中请求。可以通过指定选择器来自定义单击事件,以应用于某些元素 ID 或类。在上面的示例中,定义了两个触发器。一个用于跟踪页面浏览,当文档可见时,它将触发定义的“pageview”请求。另一个触发器通过指定应触发“event”请求来跟踪锚点击,但仅针对“a”(或锚)元素。

amp-analytics 可以进一步自定义以指定请求的传输处理,并且可以通过指定一些配置 JSON 所在的 URL 来远程配置。与 amp-pixel 一样,amp-analytics 支持许多变量替换,以便 AMP 可以提供它所了解的数据值。你可以在文档中了解有关这些变量的更多信息。

将数据传输到需要传输到的位置

最后,一旦你确定了要收集哪些数据,并且 AMP 有办法收集这些数据,你就需要一个地方来发送这些数据。

我们优先支持与发布商的内部分析系统集成,并提供与第三方供应商集成的路径。在使用 amp-pixel 或 amp-analytics 时,页面作者指定应将数据发送到何处,可以发送到发布商自己的服务器或其选择的供应商。

我们还想启用一种简化的方式来配置一个 amp-analytics 标签,该标签会将数据传输给供应商。我们想出的解决方案允许发布者指定他们希望使用的供应商,而不必担心包含特定于该供应商的样板配置。为了启用此功能,供应商必须在 AMP 库中以开源代码的形式提供配置,这会导致此配置在他们所有客户的集成中一致应用。

还有更多功能即将推出

当我们在 2015 年 10 月发布 AMP 的开发者预览版时,我们唯一支持的分析功能是 amp-pixel。在出版和分析行业许多人的支持和反馈下,我们已经取得了长足的进步,构建了 amp-analytics 来满足更复杂和更具挑战性的需求。我们知道这项工作尚未完成,并期待继续与这些社区合作,在我们的路线图中构建许多激动人心且有用的功能。

请使用从本文链接的资源来开始在 AMP 中集成分析功能。对于任何反馈或新功能请求,请通过在我们的 GitHub 存储库中提交问题告知我们。

最后,如果您是分析公司的一员,并且有兴趣为您的客户提供如上所述的默认配置值,请阅读我们的贡献指南并通过 GitHub 联系我们。我们欢迎您的见解和专业知识,并感谢您的支持。

加速移动页面产品经理 Rudy Galfi 发布

加入我们参加涵盖 AMP 分析的 Hangout on Air ,由 Google 新闻实验室于太平洋时间 2 月 5 日上午 9 点主办。