2020 年 4 月 10 日更新:请查看此 博客文章,了解有关 Adobe Analytics 和 AMP 的最新消息。
如果您尚未听说过加速移动页面 (AMP) 项目,这是一个非常有抱负的计划,专注于一个目标:为发布商创建更出色、更快速的移动网络。当然,当我们听到这一公告时,我们很高兴参与该项目,因为我们知道,对于发布商而言,Adobe Analytics 已成为了解受众、创建忠实观众和实现内容获利的基本部分。我们致力于确保我们的发布商可以访问尽可能最好的数据,并且我们希望确保 AMP 也不例外。
截至今天,我们很高兴地宣布,我们有一个出色的策略,可以在 AMP 上实施 Adobe Analytics,为最终用户提供极快的速度,并为发布商提供出色的 Adobe Analytics 功能。
工作原理
首先,AMP 基本上通过在许多不同的参与技术合作伙伴和发布商的内容分发网络 (CDN) 上缓存经过特殊标记的 HTML 页面来工作。通过这种方式,AMP 内容将从最近的可能来源以尽可能低的延迟进行传递。这会产生分析挑战,因为您永远无法 100% 确定发布商的内容将从何处加载,并且第三方 cookie 会给访客识别带来麻烦。
此外,为了大幅降低页面权重并加快页面加载时间,AMP 严格限制了 JavaScript 和 cookie 的使用。虽然这对您的移动设备来说很棒,因为它减少了必须执行的处理量,但它给准确衡量唯一访客以及了解用户获取和留存带来了挑战
为了解决这些问题,我们与 AMP 合作伙伴和发布商合作,提供了两个选项,发布商可以选择最适合其业务需求的选项,使用 <amp-analytics> 标记或 <amp-iframe> 标记。此表格应让您了解每种方法的优缺点。
<amp-analytics> | <amp-iframe> | |
访客/访问次数(在现有报告套件中) | 高通胀 | 最低通胀 |
使用单独的报告套件 | 建议 | 不必要 |
新访客与回头访客 | 不支持 | 支持 |
访客 ID 服务 | 不支持 | 支持 |
视频和链接跟踪 | 部分支持 | 尚未支持 |
实施难度 | 相对困难 | 相对容易 |
Marketing Cloud 集成 | 不支持 | 在有警告的情况下支持 |
继续阅读以了解详情和每项权衡的说明。
使用 <amp-analytics> 标记
amp-analytics 标记是 AMP 项目的 cookie 切割器方法,用于在 AMP 上安装分析。使用 amp-analytics,您可以指定将在特定页面事件(如页面可见或点击(以及未来的视频视图等))上触发的点击请求。可以通过指定选择器来自定义点击事件以应用于某些元素 ID 或类。在下面的示例中,定义了两个触发器 - “pageLoad” 和 “click”。当文档可见时,“pageLoad” 触发器将触发,并将包含在 “vars” 部分中定义的 pageName 变量。第二个触发器 “click” 将在单击按钮时触发。将为该事件设置 eVar 1,其值为 “button clicked”。
<amp-analytics>
{
“transport”: {“xhrpost”: false, “beacon”: true},
“requests”: {
“base”: “https://${trackingServer}/b/ss/${accounts}/1/AMP-0.1/s${random}”,
“pageView”: “${base}?AQB=1&vid=CLIENT_ID(adobe_amp_id)&pageName=${pageName}&j=amp&AQE=1”,
“buttonClick”: “${base}?AQB=1&vid=CLIENT_ID(adobe_amp_id)&pageName=${pageName}&j=amp&pe=lnk_o&v1=${eVar1}&AQE=1”
},
“vars”: {
“trackingServer”: “metrics.example.com”,
“accounts”: “reportSuiteID”,
“pageName”: “Adobe Analytics 使用 amp-analytics 标记”
},
“triggers”: {
“pageLoad”: {
“on”: “visible”,
“request”: “pageView”
},
“click”: {
“on”: “click”,
“selector”: “button”,
“request”: “buttonClick”,
“vars”: {
“eVar1”: “button clicked”
}
}
}
}
</amp-analytics>
请注意,在“click”触发器内,你可以指定一个选择器,以确保每当按钮被按下时,“buttonClick”请求都会被触发,并且“pe=lnk_o”查询字符串参数被设置为将此命中表示为非页面事件(即 trackLink 调用)。 此外,amp-analytics 支持许多变量替换,以便 AMP 可以提供它知道的数据值。 你可以通过访问 amp-analytics 文档来了解所有这些内容。 请注意,如果你想合并任何技术或 DOM 变量(例如浏览器、屏幕大小、设备、引荐来源等),你必须自己将它们明确添加到任何请求中,因为它们不会自动为你生成。 有关用于跟踪的每个可用查询字符串参数的文档,请参阅 此处。 还要确保查询字符串结束标记或“AQE”参数是 URL 中的最后一个参数。 它告诉我们的跟踪服务器命中已完成,因此你不想让该查询字符串参数过早出现在 URL 中,否则其余数据将被截断。
最后,请注意,在每个请求中,我们都包含了“vid=CLIENT_ID(adobe_amp_id)”。 这是一个内置的 AMP 函数,我们用它来设置一个名为“adobe_amp_id”的自定义 Analytics cookie ID。 传递到 CLIENT_ID 中的值可以是任何你想要的值,但是,至关重要的是,不要将此值设置为任何 Analytics 特定的 cookie 名称(例如“s_vi”),因为它可能会破坏你的常规跟踪。
需要注意一些注意事项。 重要的是要注意,在使用 amp-analytics 标记时,访问者将完全独立于你的正常跟踪,并且由于 AMP 可以从任何内容分发网络加载,因此每个访问者看到此 AMP 的 CDN 都会获得一个唯一的访问者,因此前面提到的访问者膨胀。 出于此原因,我们建议如果你使用 amp-analytics,请将你的数据放入专门针对 AMP 的单独报告套件中。 此外,显然不支持使用此方法的访问者 ID 服务,因此如果你的业务需要额外的营销云集成或将来需要,这可能不适合你。
最后,也许最重要的是,此 amp-analytics 解决方案要求你在“vars”部分中指定的跟踪服务器与主网站上的跟踪服务器匹配,以便尊重你现有的隐私政策控制。 否则,你需要为 AMP 单独创建隐私政策。
使用 <amp-iframe> 标记
amp-iframe 标记更容易实现,但要求你在现有服务器上托管一个轻量级实用程序页面和一个 1 x 1 透明 GIF,amp-iframe 标记将引用该页面和 GIF。 要实现此目的,只需将以下内容添加到 AMP 正文顶部,用示例路径替换实用程序页面的路径
<amp-iframe width=1 height=1
src=”https://ampmetrics.publishersite.com/stats.html?pageName=Adobe+Analytics+Example+2″
sandbox=”allow-scripts allow-same-origin”
layout=”fixed”
frameborder=”0″>
<amp-img src=”https://ampmetrics.publishersite.com/pixel.gif” height=1 width=1 layout=”fill” placeholder></amp-img>
</amp-iframe>
请注意,在 amp-iframe 的 src 属性中,我们包含了一个查询字符串参数“pageName”。此查询字符串参数可以命名为任何您喜欢的内容,并且用于将适用的跟踪数据传递到实用程序页面。实用程序页面(在我们的示例中命名为“stats.html”)如下所示
统计测试
http://†VisitorAPI.jsâ€
http://†AppMeasurement.jsâ€
var v_orgId = “1234567@AdobeOrg”;
var s_account = “reportSuite”;
var s_trackingServer = “metrics.publisher.com”;
var s_visitorNamespace = “publisherNamespace”;
var visitor = Visitor.getInstance(v_orgId);
visitor.trackingServer = s_trackingServer;
var s = s_gi(s_account);
s.account = s_account;
s.trackingServer = s_trackingServer;
s.visitorNamespace = s_visitorNamespace;
s.visitor = Visitor.getInstance(s_visitorNamespace);
s.pagename = s.Util.getQueryParam(“pageName”);
s.prop10= “AMP”; //为某些变量指定 AMP 以进行细分和报告
s.t();
如上所示,只需链接到您现有的 VisitorAPI.js 和/或 AppMeasurement.js,添加正确的配置参数,即可完成所有设置。要将正确的值捕获到正确的变量中,您可以使用提供的 s.Util.getQueryParam 函数来获取您从 amp-iframe src 属性中传递的值,并像在典型页面上一样设置适当的变量。在这种情况下,s.pageName 设置为我们在查询字符串参数“pageName”中传递的值。此处,页面名称将设置为“Adobe Analytics Example 2”。是不是很简单?
由于实用程序页面托管在您的原始网站上,因此无需额外工作即可在所有 AMP 中支持您现有的隐私政策。这意味着,如果最终用户选择退出您主网站上的跟踪,他们也将选择退出您所有 AMP 上的跟踪,无需执行其他步骤。使用此实用程序页面还意味着我们能够支持 Adobe 的访客 ID 服务,以便您可以将 AMP 上捕获的测量与营销云的其他部分集成(例如,使用 Adobe Audience Manager 进行定向广告)。
顺便说一句,如果你的组织尚未使用访客 ID 服务(或拥有你喜欢的标签管理软件,如 Adobe 的动态标签管理器),你可以随意标记 stats.html 页面,只需使用你现有的实现作为参考点即可。与你的标准实现相比,唯一的区别是,你将从 amp-iframe 页面 URL(或 document.URL)获取适用于每个要设置的变量的适用数据点。
此解决方案虽然灵活,但也有一些需要注意的注意事项。由于 amp-iframe 中固有的限制,它只能在页面加载一次时加载。这意味着你将无法使用 amp-iframe 解决方案进行链接跟踪或视频跟踪。此外,一些通常只能通过 AMP 上的 JavaScript 访问的 DOM 值(如引荐来源(会影响搜索引擎关键字报告、引荐来源和引荐来源类型报告,或可能包括营销活动跟踪代码))将无法传递到 amp-iframe 中进行跟踪。因此,我们建议设置一个自定义变量,其值为“AMP”,以便在查看上述报告时可以细分出 AMP 流量。也就是说,浏览器、设备、屏幕大小或分辨率等标准技术报告应该可以正常工作,并且可以通过从实用程序页面引用 document.referrer 来获取 AMP pageURL。
最后,由于 iframe 将加载为一个单独的页面,并且将完全执行该页面上的 JavaScript,因此 AMP 将不如 AMP 标准预期的那样轻量级。明确地说,这不会影响页面加载时间(iframe 在页面加载完成后加载),但 CPU 和网络将比其他情况稍多地执行一些操作,这可能会影响滚动平滑度,至少在理论上是这样。在实践中,我们尚未看到巨大影响,但我们正在与 Google 合作,以最大程度地减少这种方法对用户体验的影响。
结论
在审查中,如果您需要点击跟踪并且不介意将访问者完全算作与您的网站分开的全新访问者,请使用 amp-analytics 解决方案,我们的建议是您应该将数据放入单独的报告套件中。如果您需要访问者 ID 服务,不想要访问者/访问量膨胀,并且仅在页面加载时触发 Analytics,我们建议使用 amp-iframe 解决方案。
Adobe Analytics 很高兴与 Google 和我们的发布商合作,为移动网络上的发布商提供业界领先的分析功能,并提供极快的用户体验。虽然这两个解决方案目前提供了自己的权衡,但我们致力于构建最佳的长期解决方案,以满足客户不断变化的分析需求。
AMP 项目发展迅速,并且一直在发生变化,因此请经常查看此处以获取我们示例的更新!我们在此向您展示的内容应该足以帮助您入门,但随着我们进一步改进集成,以及随着时间的推移越来越多的发布商采用 AMP,请期待变化。
如果您有任何疑问或问题,请与您的 Adobe 顾问或客户关怀联系。快乐的 AMPing!
常见问题
问:amp-analytics 或 amp-iframe 方法是否都可以使用视频跟踪?
答:很遗憾,目前还不行。AMP 标准仅支持“可见”、“点击”和“计时器”的触发器,并且还不支持 amp-analytics 标签可以监听的视频跟踪的显式触发器。此外,由于 amp-iframe 标签只能加载一次,因此它与 AMP 加载后发生的视频观看不兼容。
问:您在比较中提到 amp-iframe 解决方案的访问者膨胀“较低”。这是什么意思?是什么导致了 amp-iframe 解决方案中的访问者膨胀?
答:只有在一种情况下才会发生访问者/访问量膨胀:使用 Safari 的访问者从未访问过 publisher.com 的网站,首次访问 AMP 页面,然后访问 publisher.com 的普通(非 AMP)网站。在这种情况下,如果 AMP 和主网站在同一报告套件中,访问者将在 Analytics 中被算作两个访问者。但是,如果访问者在访问 AMP 之前访问过 publisher.com 的主网站,则在报告中仍然只算作一个访问者。
问:我应该为 AMP 使用单独的报告套件吗?
答:如果您使用 amp-analytics 方法,我们建议为 AMP 使用单独的报告套件,因为存在访问者/访问量膨胀问题。但是,我们还将从 amp-analytics 标签将 JavaScript 版本设置为“AMP vX.X”,以便您可以在必要时从合并的报告套件中细分该流量。
问:什么是访问者 ID 服务?我需要它吗?
答:访问者 ID 服务是允许不同 Adobe Marketing Cloud 解决方案之间进行集成的服务。如果您与 Adobe Audience Manager 或 Adobe Target 集成,则您可能正在使用访问者 ID 服务。访问者 ID 服务也是许多即将推出的酷炫 Analytics 功能的基础。如果您需要访问者 ID 服务支持或将来需要,我们建议使用 amp-iframe 解决方案。
问:对于 amp-iframe 解决方案,我应该在哪里托管我的实用程序页面?
答:AMP 标准不允许 iframe 从 AMP 自身的精确域名和子域名加载。因此,我们建议您将实用程序页面托管在与您的主网站不同的子域名上,特别是如果您的公司有自己的 CDN,并且计划缓存 AMP。为了获得最大的兼容性,请选择一个子域名,例如“ampmetrics.publisher.com”,它与实际 AMP 内容所在的位置分开。
问:这是否与 Facebook Instant Articles 类似?我如何使用 Facebook Instant Articles 设置 Adobe Analytics?
答:我们仍在研究这个问题,敬请期待。目前,Facebook 支持与上述 amp-iframe 类似的解决方案。我们正在努力彻底测试该解决方案,但是通过一些工作,您应该能够利用您在此处使用 amp-iframe 解决方案与 Facebook Instant 所做的工作。
发布者:Trevor Paulsen,Adobe 产品经理