首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将utag.link (tealium tracking function)转换为_satellite.track (Adobe Launch tracking)

将utag.link (tealium tracking function)转换为_satellite.track (Adobe Launch tracking)
EN

Stack Overflow用户
提问于 2021-11-25 09:04:22
回答 3查看 43关注 0票数 0

我们正在将Tealium web分析跟踪迁移到Adobe Launch。

网站的一部分使用utag.link方法进行标记,例如

代码语言:javascript
复制
utag.link({
"item1" : "item1_value",    
"item2" : "item2_value",
"event" : "event_value"})

我们需要将它“翻译”成Adobe Launch语法,以节省开发人员的时间。

代码语言:javascript
复制
_satellite.track("event_value",{item1:"item1_value",item2:"item2_value"})

你会怎么做呢?这是可行的吗?

非常感谢Pavel

EN

回答 3

Stack Overflow用户

发布于 2021-11-25 16:15:46

好的,这比看起来要复杂一点。从技术上讲,这完全回答了您的问题:https://experienceleaguecommunities.adobe.com/t5/adobe-experience-platform-launch/satellite-track-and-passing-related-information/m-p/271467

哇哇哦!这将使跟踪只能通过Launch/DTM访问。如果其他TMSes甚至全局环境JS也需要这些数据,那么它们将最终依赖于Launch。想象一下,当您想在五年内像现在使用Tealium一样从Launch迁移时会发生什么?你将不得不做同样不必要的事情。如果您的Tealium实现实现得更仔细,您现在就不需要在这次迁移上浪费时间了。

因此,我建议不要使用_satellite.track()。我建议使用纯JS CustomEvents,并详细说明有效负载。Launch本机具有原生JS事件的触发器,并能够通过CJS: event.details访问其详细信息。但是,即使我需要在GTM中使用它,我也可以在GTM中部署一个简单的事件侦听器,它会将所有精彩的CustomEvents重新路由到DL事件中,并将它们的有效负载放在整齐的DL var中。

有了这一点,当您需要为不同的to提供跟踪时,无论是迁移到不同的分析系统还是奇偶校验跟踪,您都不需要麻烦前端开发人员。

票数 0
EN

Stack Overflow用户

发布于 2021-11-27 18:40:08

总的来说,同意BNazaruk的答案/哲学,即最好的面向未来的实现方法是创建一个通用的数据层,并将其传播到自定义的javascript事件。几乎所有现代的标记管理器都有一种方法来订阅它们,映射到它们的环境变量、事件规则等等价物。

话虽如此,下面是使用Adobe Client Data Layer扩展的Adobe Experience Platform Data Collection (Launch)的当前最佳实践的概述。

一旦你安装了扩展,你就可以改变你的utag调用,例如

代码语言:javascript
复制
utag.link({
    "item1" : "item1_value",    
    "item2" : "item2_value",
    "event" : "event_value"
})

要这样做:

代码语言:javascript
复制
window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({
    "item1" : "item1_value",    
    "item2" : "item2_value",
    "event" : "event_value"
});

关于这一点,有几点要注意:

  1. adobeDataLayer是启动扩展将查找的默认数组名称。您可以在扩展的配置中将其更改为其他内容(尽管Adobe不建议这样做,因为reasons).
  2. You可以保留您用于Tealium的当前有效负载结构并与之配合使用,尽管从长远来看,您应该考虑重构您的数据层。在处理Tealium的数据层语法/约定与Launch时,事情变得有点复杂。例如,如果您的event字符串中有多个逗号分隔的事件(Tealium约定),而不是在Launch中创建事件规则(它希望字符串中只有一个事件)。有一些解决方法(如果您需要帮助,可以单独问一个问题),但从长远来看,最好的方法是将数据层的结构更改为更标准的结构。

然后,在Launch中,您可以创建要映射到adobeDataLayer.push调用中传递的给定数据点的数据元素。

同时,您可以根据不同的条件,使用监听推送数据的事件来创建规则。常见的示例是监听特定的事件,该事件与您推送的event值相对应。例如:

然后,在规则的条件和操作中,您可以引用您创建的数据元素。例如,如果您希望在event等于"event_value“(上图)时触发规则,并且如果item2等于"item2_value",则可以添加如下条件:

另一个示例,将Adobe Analytics eVar1设置为item2值的操作

票数 0
EN

Stack Overflow用户

发布于 2022-01-28 15:25:04

我建议从您的平台代码中删除对TMS的任何依赖,并迁移到使用通用数据层。这样,您的开发人员在将来迁移TMS时将不会有任何问题。

请参阅这篇文章,了解通用数据层,而不是特定于TMS provider的:https://dev.to/alcazes/generic-data-layer-1i90

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70108356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档