Drupal 将阵列数据从数据层填充到GTM

Drupal 将阵列数据从数据层填充到GTM,drupal,google-analytics,google-tag-manager,Drupal,Google Analytics,Google Tag Manager,我有一个数据层,它从Drupal向我提供这样的信息 dataLayer = [{ "entityType":"node", "entityBundle":"article", "entityTaxonomy": {"funnel_path":{"2":"Find a Park"}, "byline":{"4":"Name1","5":"Name2"}},"dru

我有一个数据层,它从Drupal向我提供这样的信息

dataLayer = [{
            "entityType":"node",
            "entityBundle":"article",
            "entityTaxonomy":
                {"funnel_path":{"2":"Find a Park"},
                "byline":{"4":"Name1","5":"Name2"}},"drupalLanguage":"en",
                "userUid":"1"}
        ];
    </script>
dataLayer=[{
“entityType”:“节点”,
“entityBundle”:“文章”,
“实体分类法”:
{“漏斗路径”:{“2”:“找到一个公园”},
“署名”:{“4”:“Name1”,“5”:“Name2”},“drupalLanguage”:“en”,
“userUid”:“1”}
];
我可以轻松地使用GTM的数据层变量拉入entityBundle。如何设置它以获取署名中的信息?我尝试了
entityTaxonomy.byline
,但这给了我一个数组。我可以用entityTaxonomy.byline.4来命名1,但那太傻了,因为编辑会定期添加内容

我计划最终将署名添加到Google Analytics中的Custom Dimension 2中

我希望自定义维度2的数据为
Name1,Name2
。有时这只是一个值。有时它最多可以是20个值


我需要在GTM中做什么才能让它注册该信息?

entityTaxonomy.byline实际上为您提供了一个对象。您需要进行一些处理,以获得可以加入字符串的数组。一种可能的方法是

temp = [];
Object.keys(test.entityTaxonomy.byline).map(function(key, index) {
    temp.push(test.entityTaxonomy.byline[key]);
});
bylines = temp.join(",")
(我相信这可以做得更简洁)。在GTM中,您需要创建一个包含带有署名的对象的变量,然后可以在自定义javascript变量中进行处理(根据定义,这是一个带有返回值的匿名函数)


在这件事上有些东西对我不起作用。我很抱歉。这就是我所做的…#我创建了一个名为“数据层-服务”的变量。我输入了数据层变量名“services”#我创建了一个名为{{JS-services}}的自定义Javascript,并使用上面的代码并输入了{services}其中代码love有{{bylines}}#我更新了我的整个GA UA标记以添加{JS services作为我的自定义维度索引2…我缺少什么?
function() {
    var byLineObject = {{bylines}} // created as datalayer var beforehand
    temp = [];
    Object.keys(byLineObject).map(function(key, index) {
        temp.push(byLineObject[key]);
    });
    return temp.join(",")
}