我需要将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 %%
- 我用以下内容设置它:(在自定义代码框中)
var delm = _satellite.getVar(' special_id'); s.linkTrackVars ='运动&#39 ;; s.campaign = delm; s.tl();
- 我用以下内容设置它:(在自定义代码框中)
var delm = _satellite.getVar(' special_id'); s.linkTrackVars =' eVar0&#39 ;; s.campaign = delm; s.tl();
他们似乎都没有将数据传递给adobe分析。就像我的广告系列var不接受数据一样。还应该注意的是,如果我只是在DTM中将广告系列的价值设置为" text"它似乎永远不会被传递。
是否有更好的方法可以使用自定义代码设置广告系列。
答案 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完成的工作,那么不要先使用任何其他规则调用该数据元素。