首页 > 解决方案 > 自定义 javascript 无法返回客户端 ID var google tag manager

问题描述

我尝试使用自定义 javascript 获取客户端 ID,但它无法返回该值。下面是尝试过的代码。想向各位高手寻求帮助。谢谢。

    function () {
  return function () {
    try {
      var trackers = ga.getAll();
      trackers.forEach(function(tracker) {
        var cid = tracker.get('clientId');
        tracker.set('dimension1', cid);
      });
    } catch (e) {}
  }
}

它无法返回正常的客户端 ID

标签: google-tag-manager

解决方案


您的自定义变量返回一个函数,而不是一个值(因为该函数从未实际执行过)。

为每个当前跟踪器获取 clientId 的更好方法是在 Google Analytics 中使用自定义任务(任务基本上是跟踪器生命周期中的各个步骤,从检查客户端 ID 是否存在到组装有效负载到实际发送数据)。任务是通过“设置字段”配置添加到 GA 标记的 Javascript 函数。任务可以访问跟踪器数据模型,并且可以添加、删除或修改有效负载中的值。

您可以通过 GTM 使用的唯一任务是 customTask,顾名思义,它为跟踪器添加了自定义功能。

如果您使用以下代码创建名为“getClientId”的自定义 javascript 变量:

function() {
  // Modify customDimensionIndex to match the index number you want to send the data to
  var customDimensionIndex = 5;
  return function(model) {
    model.set('dimension' + customDimensionIndex, model.get('clientId'));
  }
}

然后转到您的 GA 设置标签,并在“设置字段”配置中将字段名称“customTask”设置为变量作为值,clientId 将从数据模型中提取并作为自定义维度添加到有效负载中。

比我的解释更好的是Simo Ahavas GTM 提示,用于通过自定义任务设置客户端 ID。


推荐阅读