【问题标题】:Within Google Tag Manager, is there a JavaScript function for getting a user's Client ID?在 Google 跟踪代码管理器中,是否有用于获取用户客户端 ID 的 JavaScript 函数?
【发布时间】:2020-07-10 18:36:49
【问题描述】:

我正在尝试编写一个函数,该函数将用于 Google 跟踪代码管理器 (GTM) 中的自定义 Javascript 变量。我目前拥有的是以下内容:

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

它应该获取客户端 ID,并将 Google Analytics(分析)自定义维度的索引(在本例中为 7)设置为它。 但是,这不会在页面上返回客户端 ID。 GTM预览模式下,有SessionID和SitecoreUserID,如下:

user:
{ sitecoreID: '00000000-0000-0000-0000-000000000000',
  ...
},
session:
{ id: 'aa2aaaaqaaaaaaaaaaa25eee'}    

我想我可以使用 sitecoreID 作为客户端 ID 并将其发送到 Google Analytics。但是我想知道页面上通常是否会有另一个客户端 ID,如果有,如何获取?

提前致谢。

【问题讨论】:

  • 这会将客户 ID 作为自定义维度发送,前提是您将其用作 Universal Analytics 代码上的自定义任务。在任务之外,您将无法访问模型。
  • 谢谢。那么该模型是 UA 标签所独有的吗?然后应该可以使用了吧

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


【解决方案1】:

您可以通过使用以下代码创建自定义 JavaScript 变量来获取 clientId:

function() {
  try {
    var trackers = ga.getAll();
    var i, len;
    for (i = 0, len = trackers.length; i < len; i += 1) {
      if (trackers[i].get('trackingId') === {{GA Tracking Code}}) {
        return trackers[i].get('clientId');
      }
    }
  } catch(e) {}  
  return 'false';
}

将 GA 跟踪代码变量替换为您的 Google Analytics(分析)资产。

您需要使用窗口加载触发器:

【讨论】:

  • 感谢您的回答。在 GTM 的预览模式下测试时,我得到了“错误”,即使我知道我有正确的 trackingID,并且查看控制台,我可以看到 ClientID 在那里。错误可能发生在哪里?
  • 你需要一个窗口加载触发器,我编辑了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 1970-01-01
  • 2018-05-16
  • 2016-01-21
  • 1970-01-01
  • 2020-10-27
相关资源
最近更新 更多