2017-04-09 81 views
0

我有一個是給我這樣的信息由Drupal的填充陣列數據到GTM

dataLayer = [{ 
      "entityType":"node", 
      "entityBundle":"article", 
      "entityTaxonomy": 
       {"funnel_path":{"2":"Find a Park"}, 
       "byline":{"4":"Name1","5":"Name2"}},"drupalLanguage":"en", 
       "userUid":"1"} 
     ]; 
    </script> 

我可以輕鬆地使用GTM的數據層變量entityBundle拉一個數據層。我該如何設置它以逐行提取信息?我試過entityTaxonomy.byline,但那給了我一個數組。我可以設置爲entityTaxonomy.byline.4來獲取Name1,但這很愚蠢,因爲編輯會定期添加內容。

我打算在Google Analytics(分析)中最終添加到自定義維度2中。

我期待的自定義維度2的數據是Name1, Name2。有時候這隻會是一個價值。有時可以達到20個值。

我需要在GTM中做些什麼來讓它註冊該信息?

回答

0

entityTaxonomy.byline實際上給你一個對象。你需要做一些處理來獲得一個你可以加入到一個字符串中的數組。一種可能的方式是

temp = []; 
Object.keys(test.entityTaxonomy.byline).map(function(key, index) { 
    temp.push(test.entityTaxonomy.byline[key]); 
}); 
bylines = temp.join(",") 

(我敢肯定,可以做得更加簡潔)。在GTM你需要創建一個包含與署名對象的變量,那麼你可以做的處理在自定義JavaScript變量(這是通過定義一個返回值的匿名函數)

function() { 
    var byLineObject = {{bylines}} // created as datalayer var beforehand 
    temp = []; 
    Object.keys(byLineObject).map(function(key, index) { 
     temp.push(byLineObject[key]); 
    }); 
    return temp.join(",") 
} 
+0

東西是不爲此工作。對不起。這是我做的... #我創建了一個名爲「數據層 - 服務」的變量。我在數據層中添加了變量名「services」 #我創建了一個名爲{{JS - Services}}的自定義Javascript,並使用上面的代碼並將{{services}}放在{{bylines}}的代碼中{{bylines}} #我更新了我的整體GA UA標籤,以添加{{JS-Services作爲我的自定義維度索引2 ...我錯過了什麼? – JAB