Adobe DTM(adobe标签管理器)使用直接调用规则设置s.campaign

时间:2015-08-10 21:10:28

标签: adobe adobe-analytics

我需要将s.campaign设置为某个ajax返回的值。我想我可以直接打电话来完成它。似乎没有任何报道。

在ajax之后我打电话:

_satellite.track(' ruleString&#39);

我可以在调试器中看到我的规则被触发了。在Adobe分析管理中,已将值设置为在MIN之后到期。

我尝试了四种从此处获取广告系列值的方法。

1 - 将其设置为dataElement,如:(在分析预设中)

Campaign Value  ->  %mySpecialValue%

此元素运行自定义JS并记录该值,因此我知道它运行,但adobe从未看到值。

2 - 我用以下内容设置它:(在自定义代码框中)

var delm = _satellite.getVar('special_id');
_satellite.setVar("newVal",delm);
return true;

然后将活动设置为%% newVal %%

  1. - 我用以下内容设置它:(在自定义代码框中)

    var delm = _satellite.getVar(' special_id'); s.linkTrackVars ='运动&#39 ;; s.campaign = delm; s.tl();

  2. - 我用以下内容设置它:(在自定义代码框中)

    var delm = _satellite.getVar(' special_id'); s.linkTrackVars =' eVar0&#39 ;; s.campaign = delm; s.tl();

  3. 他们似乎都没有将数据传递给adobe分析。就像我的广告系列var不接受数据一样。还应该注意的是,如果我只是在DTM中将广告系列的价值设置为" text"它似乎永远不会被传递。

    是否有更好的方法可以使用自定义代码设置广告系列。

2 个答案:

答案 0 :(得分:0)

请记住,AJAX是异步的:

$.ajax({
  url: "test.html",
});
_satellite.track('ruleString');

错了,但是:

$.ajax({
  url: "test.html",
  context: document.body
}).done(function() {
  _satellite.track('ruleString');
});

会奏效。

另外,请在javascript部分添加带有数据元素值的直接调用规则console.log,以便在触发规则时检查该值是否存在。

答案 1 :(得分:0)

事实证明,最初为我们设置dtm的副总裁在我们的应用程序测量文件中删除了一些自定义代码。它一定是来自另一个客户端基本上s.campaign只在" cmpid"被作为查询参数传递。

基本上(1)只要你调用_satellite.track(' stringVal'),就可以直接调用从数据元素中设置它。当你的ajax完成时

如果数据元素值来自通过Ajax完成的工作,那么不要先使用任何其他规则调用该数据元素。