使用Javascript设置Google Analytics自定义维度,缺少数据

时间:2017-02-10 15:21:07

标签: javascript google-analytics google-tag-manager

我有一个javascript程序,它被部署为加载Javascript的自定义HTML GTM标记。 Javascript动态获取自定义维度索引和值对。以下Javascript是将数据推送到Google Analytics的原因:

ga(function (tracker) {
  // ... code to figure out the dimension index & value ... //
  // Assuming Index & Value for custom dimension are now known 
  var dimData = {};
  dimData["dimension" + index] = value;
  dimData["nonInteraction"] = true;
  var action = "Set " + index + " to " + value;
  var trackerName = ga.getAll()[0].get('name');
  ga(trackerName + '.send', 'event', 'Dimension', action, dimData);
}

我可以通过维度数据看到事件,但我没有看到自定义维度数据。可能导致这种情况的原因是什么?

更新:GTM代码将Universal Analytics设置为在其之前触发,HTML包含外部<脚本>加载配置的库(要查找数据的维度),解析输出,然后尝试将数据发送到Google Analytics。我不认为这是一种竞争条件,它包含在 ga(功能(跟踪器)回调中。我们不会提前知道这些尺寸。

1 个答案:

答案 0 :(得分:0)

您可能遇到竞争条件,即Ga对象始终没有准备就绪。 根据您的工作 - 看起来您可能会更好地使用GtM实施您的解决方案,将数据推送到您的帐户并让它处理复杂性。

将上面的代码更改为:

    var dataLayer = dataLayer || []; // Put this in before your GTM Snippet and After the opening Body tag
// Now you are ready to work. 
// 3. Create a datalayer push for the dimensions you want to capture: 
dataLayer.push({
    'event':'addinginCustomDimData', 
    'dimension1name':'dimension1Value', 
    'dimension2name':'dimension2Value'
});

现在记录事件 -

  1. 使用"自定义事件添加触发器"叫" addinginCustomDimData"
  2. 为dimension1name和dimension2name
  3. 添加变量(DataLayer Type)
  4. 使用您选择的类别操作变量创建一个Universal Analytics事件标记。
  5. 选择自定义维度并在订单中输入上述变量。
  6. 完成!  享受