【问题标题】:Adobe Dynamic Tag Management - Dynamic direct-call rulesAdobe 动态标签管理 - 动态直接调用规则
【发布时间】:2015-02-23 09:04:52
【问题描述】:

我们正在使用 W3 中的数据层规范 (http://www.w3.org/2013/12/cedd...,它将事件数据定义为事件数组。对于访问数组中最后一项的数据元素来说,这不是问题。当多个事件发生时会出现问题快速连续发生。现在,当 DTM 去收集事件数据时,数组中的最后一个事件对象可能不是正确的,如果快速发送两个事件,则跳过第一个事件的数据对象,最后一个事件的数据对象是用了两次。

策略 1: 创建许多直接调用规则,一个用于每个可能的事件数量,以及用于访问数组中该项目的每个规则的数据元素: _satillite.track('event_0') _satillite.track('event_1')...

设置不是很有趣,仍然遇到可能设置足够规则的问题,并且不干净。

策略 2: 在直接调用条件下也可以使用数据元素: event_%event_number%

不确定如何在条件字符串中使用数据元素。

策略 3 使用 FIFO 队列来保存事件顺序的键和事件所在数据层中的事件的对象。

var order_of_events = ['asdf', '1234'];
var events_number = {
  'asdf': 1,
  '1234': 2
};

然后发送一个直接调用事件规则:

_satillite.track('event');

然后在标签中使用Data Evements查询正确的事件数据:

// Data Element code
// %next_eventName%
var event_key = getKey(); // returns first key in array
event_number = getValue(asdf); // returns 1
getEventName(event_number); // returns "Event Name"

如何通知队列标记已完成事件详细信息并将键移出队列?

可以使用什么策略来确保数据元素使用正确的事件数据对象,以上任何一种,还是已经解决了这个问题?

【问题讨论】:

  • 你能否提供一个“当多个事件快速连续发生时”的“真实生活”场景?我可以想到很多,但从跟踪 PoV 来看,这通常不是一件好事,而且通常首先需要重新考虑你正在跟踪的内容。例如,我有客户要求跟踪访问者何时将鼠标悬停在表单元素上,或跟踪页面滚动的每个百分比。这通常是一个坏主意,原因有很多。因此,首先,您能否澄清一下您要跟踪的具体内容?

标签: dynamic tags adobe google-tag-manager adobe-analytics


【解决方案1】:

一种可能的解决方案: 使用事件对象的 eventInfo.eventAction 键值。在数组中添加事件时,可以调用通用的 _satllite.track('event_added') 直接调用规则。在您的直接调用规则中,您可以从 digitalData.events 中提取事件,循环它们并调用直接调用规则中的相应方法。

var eventActions={
  method1:function(event){
    //_satellite.track('method1');
    //or s.tl(event.eventInfo.eventName, true, 'hello world');
   //handle each event however you may like for analytics, testing, page manipulation etc.
  }
}

digitalData.events.forEach(function(item,index,arr){
  eventActions[item.eventInfo.eventAction](item);
});

这是我计划做的,但它可能不适合您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多