Google 跟踪代码管理器:跟踪“选择”下拉菜单“选项”标签值

2024-02-24

我无法跟踪“选择”标签中“选项”标签的值。 我目前有一个 Google Translator Widget 的下拉菜单,用户可以单击它并选择语言。 当您单击“选择语言”下拉菜单时,您将能够看到德语选项。 请参阅随附的屏幕截图。 我在 Google 标签管理器中创建了一个宏调用“JS - Google Translate - Select Option”。

这是“JS - 谷歌翻译 - 选择选项”的代码:

function() {
  var list = document.querySelector('select.goog-te-combo');
  return list ? list.options[list.selectedIndex].value : undefined;
}

上面的代码将找到下拉菜单,其中“goog-te-combo”作为“select”标签的类名。然后,它将查看选择标签中的选项标签是否可用,并获取所选选项标签的值。

我还创建了一个标记调用“GA - 事件 - Google Translate Clicks”并触发调用“Click - Google Translate”。

当我对此进行测试时,我发现当我点击页面上的下拉菜单时,我的“GA - 事件 - Google 翻译点击”被触发。 但是,当我检查 Google 跟踪代码管理器中的“变量”选项卡并检查变量“JS - Google Translate - 选择选项”时,我看到它是空的。

Google 翻译小工具下拉菜单选项 https://i.stack.imgur.com/ICWSl.png

Google 跟踪代码管理器“JS - Google 翻译 - 选择选项”为空 https://i.stack.imgur.com/sllz2.png


问题是你需要在以下情况下触发标签onchange事件发生。

如果您使用 Google 网站翻译器,如何跟踪页面翻译的完整指南

首先,您需要设置自定义事件触发器onchange事件(有关该事件的原始文章,您可以找到here https://medium.com/archergroup/custom-event-trigger-set-up-in-google-tag-manager-gtm-v3-d7c243258065):

设置自定义事件监听器

转到触发器 -> 新建 -> 自定义事件

  • 事件名称:gtm.js
  • 触发器名称:gtm.js

设置事件处理程序 JS 变量

转到变量 -> 用户定义变量 -> 新建 -> 类型 -> 自定义 JavaScript

function() {
    return function(e) {
        window.dataLayer.push({
            'event': 'gtm.'+e.type,
            'gtm.element': e.target,
            'gtm.elementClasses': e.target.className || '',
            'gtm.elementId': e.target.id || '',
            'gtm.elementTarget': e.target.target || '',
            'gtm.elementUrl': e.target.href || e.target.action || '',
            'gtm.originalEvent': e
        });
    }
}

变量名称:通用事件处理程序

设置标签

转到标签 -> 新建 -> 类型 -> 自定义 HTML

HTML:

<script>
    var eventType = 'change'; // Modify this to reflect the event type you want to listen for
    if (document.addEventListener) {
        document.addEventListener(eventType, {{generic event handler}}, false);
    } else if (document.attachEvent) {
        document.attachEvent('on' + eventType, {{generic event handler}});
    }
</script>

标签名称:onchange监听器

触发器:gtm.js


现在,您已经创建了跟踪所需的一切onchange事件。接下来的步骤适用于您的具体情况,当您想在有人翻译页面时触发标记时

为 Click 元素启用内置变量

转到变量->内置变量->配置->单击元素

为所选语言创建变量

转到变量 -> 用户定义变量 -> 新建 -> 自定义 JavaScript

function() {
    var list = document.querySelector('select.goog-te-combo');
    return list ? list.options[list.selectedIndex].value : undefined;
}

变量名称:所选语言

为您的标签创建触发器

转到触发器 -> 新建 -> 类型 -> 自定义事件

事件类型:gtm.change

触发:一些自定义事件

Click Element - Matches CSS selector - select.goog-te-combo

触发器名称:页面已翻译

创建最终标签,当有人翻译页面时,该标签将触发事件

此步骤可能有所不同。这取决于您想要触发什么类型的标签。在此示例中,我将向 GA 发送事​​件

转到标签 -> 新建 -> 类型 -> 通用分析

类型: 活动

类别: 翻译

动作:翻译

标签:{{所选语言}}

触发器:页面已翻译

DONE

完成此步骤后,您将获得有效的解决方案

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 跟踪代码管理器:跟踪“选择”下拉菜单“选项”标签值 的相关文章

随机推荐

  • MongoDB索引定义策略

    我有一个基于 MongoDB 的数据库 里面有大约 100K 到 500K 文本文档 并且该集合不断增长 系统应支持文档不同字段的查询 例如 标题 类别 重要性等 该系统是一个近乎实时的系统 每 5 10 分钟就会获取新文档 为了提高查询性
  • 引用具有动态工作表名称的另一个工作簿

    我想引用另一个工作簿和一个依赖于某些单元格值的特定工作表 这个方程有效 S 停机时间 11 Nov 2013 Downtime Tracker xls 30 F 12 但值 Nov 和 30 是动态的 它们分别取决于 D13 和 E13 的
  • C getopt 多个值

    我的论点是这样的 a out i file1 file2 file3 我该如何利用getopt 获取 3 个 或更多 输入文件 我正在做这样的事情 while opt getopt argc argv i xyz 1 case i inpu
  • 如何从范围滑块获取多个值 - bootstrap-slider.js

    我正在使用 bootstrap slider js http www eyecon ro bootstrap slider http www eyecon ro bootstrap slider 给我范围滑块功能 我在一页上有 9 个滑块
  • 删除seaborn线图图例标题

    我想从我的seaborn lineplot 图例中删除标题 我尝试使用这个答案 https stackoverflow com a 45335602 2970186无济于事 import matplotlib pyplot as plt i
  • 我们可以对类型类进行抽象吗?

    我想知道我们不能对类型类进行抽象是否有更深层次的原因 或者我们可以吗 例如 当我们有 fzip forall a a gt a gt b gt c gt b c fzip f xs ys zip f xs f ys 那么我们可以说 fzip
  • 无法让 git 与 iconv 和 utf-16 很好地配合

    我试图让 git 将 UTF 16 识别为文本 以允许我本地比较和修补文本 但我无法获取textconv参数来工作 我可以手动调用 iconv f utf 16 t utf 8 some utf 16 file rc 一切都很好 但是如果我
  • 如何获取 CodenameOne TextField 中每次更改的事件

    我正在使用 CodenameOne 构建一个应用程序 并希望使用 TextField 来过滤一长串项目 我尝试使用 DataChangedListener 如建议的那样https www codenameone com javadoc co
  • 如何获取 QTreeWidget 的项目数

    我创建了一个 QTreeWidget 我正在尝试列出所有显示的项目 如果该项目有子项但未扩展 我不想进入该项目 它确实获取了我在树中可以看到的项目数量 我努力了 for int i 0 i lt MyTreeWidget gt topLev
  • iOS客户端服务器方法

    我熟悉其他平台上用于点对点或客户端 服务器消息传递的 SOAP 和 Web 服务 苹果的消息传递功能是什么 我正在尝试组装一个应用程序服务器来管理协作工作环境 LAN 上平均有 200 个 最多 1000 个移动客户端 例如 一台 Mac
  • Android 从自己的服务器自动更新

    我一直在寻找一个很好的例子 如何更新我自己开发的应用程序 因此 我的设备上安装了一个 apk 当我启动它时 我想检查我的服务器上是否存在任何更新 如果是 则从网络服务器下载并安装 首先我必须检查我的服务器是否有任何更新 如果是 则下载并安装
  • 在Android(使用Java)中,如何设置铃声音量(指定的数字)?

    因此 在我的应用程序中 我有一个搜索栏 允许用户设置铃声音量 0 100 我似乎找不到将铃声音量设置为指定数字的方法 我浏览了音频管理器 http d android com reference android media AudioMan
  • 如何使用 MapKit 绘制两个位置之间的路线并绘制要点?

    我正在使用 MapKit api 获取地图上的当前位置 并绘制由落针指向的两个位置之间的路线 我还想获取其路线之间的所有主要看台 我正在使用下面的函数来获取两个位置之间的路线 NSArray getRoutePointFrom MyLoca
  • 如何使用 Rust SDK 在 Aptos 上执行 Move 脚本?

    我想执行这个 Move 脚本 例如在sources top up move script use std signer use aptos framework aptos account use aptos framework aptos
  • 用C语言创建进程树

    我将如何创建一个看起来像深度为 N 的平衡三元树的流程层次结构 意味着每个进程有 3 个子进程 因此深度 N 的树中将有 3 N 1 2 个进程 要创建新进程 我只想使用 fork 这是我到目前为止所拥有的 但我认为它不起作用 因为我不处理
  • 如果缓冲区大小超过 256,第二个 MPI_Send 将挂起

    int n j i i2 i3 rank size rowChunk cells cellChunk MPI Status status MPI Init argc argv MPI Comm rank MPI COMM WORLD ran
  • SetForegroundWindow:ForegroundLockTimeout 注册表值和 SPI_GETFOREGROUNDLOCKTIMEOUT WinAPI 参数之间的关系

    Context 这个问题是关于如何通过配置控制是否允许编程跨进程窗口激活 使窗口成为具有输入焦点的前台窗口 通过SetForegroundWindow https learn microsoft com en us windows win3
  • 如何获取本地计算机上所有 MS SQL Server 实例的列表?

    这似乎是一个相当常见的问题 但我见过的答案都不是特别令人满意 我想要获取本地计算机上安装的 MS SQL Server 实例的名称列表 无论它们是否已启动 出于本次讨论的目的 我可以只查找 SQL 2005 及更新版本的实例 我可以使用 传
  • 自动完成 (jQuery UI) 和本地存储

    我在使用这两个工具时遇到了一个奇怪的错误 我正在对 API 进行 AJAX 查询 然后检索存储在 localStorage 中并显示在自动完成面板中的 JSON 数据 问题是 根据自动完成源的来源 面板会有不同的反应 这是 AJAX 成功时
  • Google 跟踪代码管理器:跟踪“选择”下拉菜单“选项”标签值

    我无法跟踪 选择 标签中 选项 标签的值 我目前有一个 Google Translator Widget 的下拉菜单 用户可以单击它并选择语言 当您单击 选择语言 下拉菜单时 您将能够看到德语选项 请参阅随附的屏幕截图 我在 Google