Adobe DTM在eVar和sProp中设置查询字符串

Adobe DTM在eVar和sProp中设置查询字符串,adobe,analytics,adobe-analytics,Adobe,Analytics,Adobe Analytics,所以通常我会使用s.getQueryParam();为我一直使用的查询字符串解析我的URL s、 eVar8=s.getQueryParam('cid,pid,eid',':') s、 prop28=s.getQueryParam(“角色”) 但既然DTM已经将所有这些都内置在其中,那么您将如何真正定义它呢?我知道我可以使用活动变量设置页面加载规则,但如果有多个参数以“:”分隔,该怎么办 www.domain.com?cid=blah1:blah2:blah3&pid=blah4:blah5:b

所以通常我会使用s.getQueryParam();为我一直使用的查询字符串解析我的URL

s、 eVar8=s.getQueryParam('cid,pid,eid',':')
s、 prop28=s.getQueryParam(“角色”)

但既然DTM已经将所有这些都内置在其中,那么您将如何真正定义它呢?我知道我可以使用活动变量设置页面加载规则,但如果有多个参数以“:”分隔,该怎么办

www.domain.com?cid=blah1:blah2:blah3&pid=blah4:blah5:blah6&eid=blah7:blah8:blah9


使用这种方法时,我是否遗漏了什么?我应该将这些值捕获到数据元素中,然后使用eVar或sProp将数据元素传递到页面加载规则中吗?

对于只查找单个URL参数的变量:

创建类型的数据元素
URL参数
。对于参数名称,请为
prop28
添加例如“角色”(无引号)。或者,您也可以在下面做同样的事情,进行多次测试


对于查找多个URL参数的变量:

创建类型的数据元素
自定义脚本
。单击
[打开编辑器]
按钮,在代码框中添加以下内容:

var d=':',
    p=['cid','pid','eid'],
    v=[],c,l,q;
for (c=0,l=p.length;c<l;c++) {
  q=_satellite.getQueryParamCaseInsensitive(p[c]);
  if (q) v.push(q);
}
return v.join(d);
var d=':',
p=['cid','pid','eid'],
v=[],c,l,q;

对于(c=0,l=p.length;c理想的方法是创建一个数据元素,复制
getQueryParam
,yesOkay的功能-但是将多个值(如查询字符串)传递到一个eVar中…将多个值传递到一个eVar/prop中怎么样-您如何捕捉到这一点?我是不是真的过度考虑了整个过程?您可以n对单个参数使用URL参数数据元素类型,但DTM没有与
getQueryParam
完全等效的功能。因此,您需要使用自定义类型数据元素使用自己的js代码复制它。@Brando:记住,您可以使用列表属性或列表变量传递分隔字符串。啊!这完全有道理。谢谢,CV!这里有一个有趣的例子。我刚刚测试了它,并且出错了。www.domain.com?cid=test1--中断www.domain.com?pid=test1--工作www.domain.com?eid=test1--工作www.domain.com?cid=test1&pid=test1&eid=test1--中断www.domain.com?pid=test1&eid=test1--工作只有在我添加“cid”时才中断到混合。@Brando代码在我的沙盒上运行良好。我不确定你哪里出错了,但你必须更具体,而不仅仅是说它是“出错”和“破坏”。抱歉@Crayon暴力-我上周开始编辑我的评论并被跟踪。但我发现了问题-原来是“cid”值干扰了内部搜索,导致无法定义_satellite。无论如何,感谢您的帮助。根据以下链接,_satellite.getQueryParam()和_satellite.GetQueryParamCaseSensitive()不安全使用。您是否有其他选项在DataElement中获取查询参数?。