
2020年7月18日
Google Tag Manager 自订活动 Trigger Explained
已更新:2020年7月18日。 我必须对你诚实。一世’ve努力为这篇博客文章提出一些有趣而有趣的介绍,但我想我失败了。但这并不意味着自定义事件触发器是一个无聊且很少使用的概念。其实,这可以’远离真理。没有它,你会’无法追踪表格遗弃,AJAX表格提交等情况。事实上,超过90% Google跟踪代码管理器食谱 基于自定义事件。
那么到底是什么,为什么您要打扰呢?在这篇博客中,我’ll explain everything you need to know about Google Tag Manager 自订活动.

什么是Google跟踪代码管理器自定义事件?
Google Tag Manager 自订活动 is used for tracking interactions that might take place on your website or mobile app that isn’用标准方法处理。标准跟踪方法包括:
标准跟踪方法包括:
- 表单触发
- JavaScript错误触发
- Page 视图 trigger
- 点击触发器
- 历史记录更改触发器
- 计时器触发
Every other event that occurs in the Data Layer is called a 自订活动. Here are a few examples:
- 您的网站包含标准表单提交触发器无法跟踪的表单。你是做什么?您要求开发人员在表单处于活动状态时激活数据层事件 成功提交. 那 event is a 自订 Form Submission 事件 (simply put, 自订活动)。
- 用户登录到他/她的帐户。不幸的是,页面URL不会改变,因此,您不能只跟踪页面浏览量。您可以要求开发人员推动“login”事件到数据层。之后,您将需要使用“Custom 事件” trigger.
- And the list could go on and on. Remember, every Data Layer event that does not support a default GTM trigger is called 自订活动.
自定义事件来自何处?
通常(但不是必须),自定义事件是由自定义自动事件侦听器调度的,JavaScript是侦听网页上特定交互的JavaScript函数。如果发生重要事件,这些听众会发起 dataLayer.push 事件。
那’s how 自订活动s see the daylight. I have already collected a whole bunch of 现成的自定义自动事件侦听器 您可以随意使用。如果您想跟踪更具体的内容(但不幸的是,不要’不知道如何编码),请要求开发人员为您编写一个自定义的自动事件监听器。相信我,他们真的很擅长此事(如果他们懂JavaScript,当然!)。
I’没有开发人员,我花了一天多的时间试图弄清楚如何跟踪网页上的特定互动。信不信由你,但是我的一位经验丰富的同事(JavaScript开发人员)花了15分钟编写了针对同一交互的自定义监听器(就像10到15行代码!)。

Video: Tracking 自订活动s with Google Tag Manager
I have also published a video tutorial that explains how to track custom events with Google Tag Manager and Google Analytics. There are two situations explained and both of them rely on a 自订活动 trigger.
与开发人员并肩工作
我想,我的大多数读者在听到诺言后就开始使用Google跟踪代码管理器 网站跟踪不再需要开发人员. 从现在开始,网络分析师将能够自己跟踪所有互动并部署营销标签听起来很熟悉吗?
好吧,我不能说上述陈述是谎言。但是我可以’t also say that it’完全正确。没有黑白。
我敢打赌,您可以在没有任何人的情况下跟踪很多网络互动’s input, and that’太棒了!但是网络上充满了独特,非标准且非常奇怪的解决方案。如果你不这样做’不知道如何编写自己的JavaScript,您必须准备与开发人员团队合作。
合作
让’假设您希望跟踪某种互动。您’我已经尝试过其他博客中介绍的各种方法。没有运气。下一步是什么?您决定问开发商’s help.
那’不丢脸!实际上,与开发人员并肩工作是其中之一 Google跟踪代码管理器最佳做法.
什么’s next?
步骤1.准备数据层事件代码。
现在,您需要准备一个数据层事件代码片段并将其提供给开发人员。一世’我在下面举了一个例子:
<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'registrationComplete' }); </script>
您可能会注意到,此代码与Google建议的代码略有不同:
<script> dataLayer.push({ 'event': 'registrationComplete' }); </script>
I’在我的其中之一中与Simo Ahava进行了快速讨论 博客文章’s comments根据他的说法’s better to use window.dataLayer.push 而不是 dataLayer.push。 由于Simo是著名的GTM专家,具有扎实的JavaScript开发背景,因此我完全信任他并遵循他的建议。
好吧,让’回到我的dataLayer.push代码示例。你不’不必成为开发人员即可了解如何准备dataLayer事件代码段。只需复制我的示例并对其进行编辑。采取以下代码:
<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'registrationComplete' }); </script>
如果你 want to add additional data, do this:
<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event':'registrationComplete', 'registrationCountry':'美国', 'plan':'Premium' }); </script>
I’ve刚刚添加了两行 注册国家 和 计划. 请记住,最后一行不能以逗号结尾。就我而言,这是:
'plan':'Premium'
如果你 wish, you can add 10 more lines.
另外,告诉开发人员这两个属性需要动态替换。如果访问者选择挪威作为注册国,则该值也应在“数据层”事件代码段中更改。
'registrationCountry': 'Norway',
步骤2。告诉开发人员何时触发此代码
另一个重要步骤是向开发人员解释您何时需要 dataLayer.push 事件触发。如果你’如果对跟踪特定表单感兴趣,则必须在 成功的 提交。
步骤3.测试事件
在开发人员说他/她的任务完成后,启用 GTM预览和调试 模式进行测试。完成特定的互动(例如,提交表单),并在“预览”和“调试”模式下继续查找“数据层”事件’的事件流。它看起来应该像这样:
到现在为止还挺好。现在,让’检查开发人员是否传递了您要求的另外两个属性, 注册国家 和 计划. 在预览和调试模式下,单击 注册完成 事件并转到``数据层''选项卡。从下面的屏幕截图中可以看到,开发人员做得很好,因为我可以看到两者 注册国家 和 计划 在数据层中。
步骤4.配置GTM
默认情况下,数据层事件不会作为触发器出现在Google跟踪代码管理器中。您需要手动执行此操作。由于我们对跟踪成功的表单提交感兴趣,因此我们需要告诉GTM 注册完成大事记are important to us and we wish to use them as triggers.
在Google跟踪代码管理器中,转到“触发器”并点击 新 按钮。选择一个 自订活动 作为触发类型,然后输入以下设置:
Done. You have just created a Google Tag Manager 自订活动 Trigger. 如果你 also wish to use 注册国家 和 计划 作为您Google跟踪代码管理器代码中的变量,请阅读有关 如何在数据层中访问数据并将其转换为GTM变量。
示例:当用户注册时向GA发送事件
让’继续我们的注册跟踪示例。我们做什么’ve got so far is:
- 我们要求开发人员实施 dataLayer.push 用户成功注册时输入的代码。的价值 事件 关键是 注册完成
- 开发人员已经实现了我们的请求,我们在“预览和调试”模式(“数据层”选项卡)中进行了检查
- 我们创建了一个自定义事件触发器 注册完成
所以呢’s next? 让’每次将事件发送到Google Analytics(分析) 注册完成 事件被推送到数据层。另外,我们’会传递 计划 (pricing 计划 to which a user signed up).
#6.1。数据层变量
在Google跟踪代码管理器中,转到变量>用户定义的变量> 新 >数据层变量。输入以下设置:
我们进入了“plan” because that’s数据层中密钥的名称(当 注册完成 事件被推送到DL)。您可以 在此处了解有关数据层变量的更多信息.
#6.2。 通用分析事件代码
现在,让’s创建一个GA事件代码,该代码将每次将事件数据发送到Google Analytics(分析) 注册完成 被推送到数据层)。在GTM中,转到标签> 新 >通用分析。输入以下设置:
如果你’不熟悉什么是Google Analytics(分析)设置变量, 阅读本指南。这里的关键事项:
- 曲目类型:事件。这意味着我们将向GA发送有关成功注册的事件
- 事件动作:{{dlv–计划}}。注册完成后,Google跟踪代码管理器将采用 计划Â 输入数据层并将其发送给GA(以及GA事件)。这样一来,您就可以将 注册完成 numbers by the pricing 计划.
- Assign the trigger, the previously created 自订活动 Trigger 注册完成.
#6.3. 让’s test
保存GA标签,刷新预览和调试模式,转到您的网站(+刷新它),然后再次完成注册。一旦这样做, 注册完成 数据层事件将出现在预览模式下。单击它,然后检查您的GA事件代码是否被触发。
如果代码尚未触发,请检查您是否在触发设置中输入了正确的事件名称。准确输入事件名称在数据层中显示(区分大小写),这一点非常重要。
如果代码确实触发过,请转到您的GA实时报告>活动。检查您是否还在那里看到事件。
如果您仍在努力在GTM中测试代码,请阅读以下博客文章: 30多个调试技巧.
#6.4。在Google Analytics(分析)中配置目标
The final step. 让’s turn the “注册完成”GA事件变成了GA目标。在您的Google Analytics(分析)媒体资源中,转到Admin(管理),然后在“View”Google Analytics(分析)媒体资源列中的目标。
创建一个新目标并输入以下设置:
- 目标设定: 自订
- 目标名称: 注册完成(但基本上任何您想要的)
- 目标类型: 事件
- 目标详情: Category equals to 注册完成. Leave all other fields empty.
通过这种设置,每当一个事件(带有事件类别)“注册完成”)由Google Analytics(分析)跟踪,也将计入目标达成数。只要记住目标完成就适用于整个会话。这意味着在同一会话中同一用户的5个注册将被计为一个目标。
您还可以在GA实时报告中测试目标。因此,只要您保存了此目标,就可以在网站上完成另一个注册,然后转到实时报告>转化,并检查它是否在那里显示。
Google Tag Manager 自订活动 Trigger: Conclusion
Google Tag Manager 自订活动 is used for tracking interactions that might take place on your website or mobile app that isn’用标准方法(即表单提交,页面浏览量,点击次数等)处理。换句话说,在数据层中发生的所有其他事件都可以称为 自订活动.
没有自定义事件,就不会有 滚动追踪, 表格遗失追踪, AJAX表单追踪等
如果发现非标准互动,而无法使用现成的跟踪解决方案进行跟踪(例如 GTM食谱),与开发者并肩工作:
- 向他/她解释您希望跟踪哪个互动以及您期望什么其他数据。
- 给他/她一些数据层事件代码。
- 在开发人员完成任务后,进行所有测试。
- Configure Google Tag Manager to recognize that 自订活动.
Is there anything I missed about Google Tag Manager 自订活动? If yes, let me know in the comments.

你好朱利叶斯,
您的帖子正是我在寻找的内容,但是有关如何访问数据层的最后一部分是我遇到的问题。
即使很容易访问变量,每个事件在事件数组中都有第一个数字。我如何知道应该寻找哪个事件?
一世。 e。 dataLayer.0.addToCart或dataLayer.1.addToCart等,等等。
谢谢!
嘿,
如果我正确理解了您的问题,那么想要实现的目标并非易事。您将需要学习JavaScript(或找人进行编码)并编写一个更复杂的函数,该函数将决定您应该选择哪个。
很好,并且效果很好。我如何连接此触发器以便在Google Analytics(分析)中看到它-> real Time events?
你好
1.您创建一个通用Analytics(分析)事件代码
2.将自定义触发器分配给该标签
3.刷新/启用预览和调试模式。
4.完成您网站上的特定操作,以激活该自定义事件触发器。
5.查看GA实时报告
6.利润。
Here's an example of a custom event trigger in action - //www.toddblog.net/post/track-facebook-comments-with-google-tag-manager-google-analytics/. 在 this example, custom event is called "socialInteraction"
谢谢,我喜欢您的网站,所以我在这里订阅了XD
感谢您的博客,它对我有很大帮助。关于此自定义事件,我仍然有一个问题,在您的示例中,我创建了Universal Analytics 事件代码,自定义触发器...结果,我可以在GA实时报告中看到结果,但是我可以在哪里查看数据(注册国家和计划)?根据我的理解,实时事件或行为> events >热门事件,它仅用于跟踪点击次数,它并不能真正获取数据,对吗?
这取决于您在何处添加该数据。如果您将其作为事件操作和类别发送,则会在行为中找到该数据> 事件s reports.
在我的示例中,如果我想将数据发送到电子商务产品效果,则这是我的数据层:
dataLayer.push({
+'event':'addToWishlist',
+'电子商务':{
+'产品':productName}
})
我的标签是
通用分析
曲目类型:事件
类别:电子商务
事件操作:添加到收藏
启用增强型电子商务功能:true
使用数据层:true
触发:事件等于addToWishlist
我可以在实时报告中看到它,但不能在产品性能中看到它
产品性能数据将在20分钟或更长时间(如果您正确发送了数据)中出现。
在事件报告中,您不会看到产品数据,因为您没有将其发送到那里。
productName仅在预测效果报告中可用。顺便说一句,如果我没记错的话,产品性能报告要求发送产品价格。否则,您仍然看不到那里的任何数据。
我已经等了24小时检查报告,对于ProductFeildObjects,我认为需要产品名称或ID。
我不确定自己在哪里弄错了,因此无法在“产品效果”报告中获取数据。
我知道只需要ID或名称,但是产品性能报告也需要价格(文档中没有提及价格)。也许还有数量(不确定那一个)。
增强的电子商务文档既棘手又费时。
我同意,文档或教程较少,但是您的博客也节省了我的时间!
您是否有任何有关使用GTM实施增强型电子商务的文章?
嘿,对不起。还没 :)
我可以使用数据层中的信息对网站上的实时内容进行个性化设置吗?
例-
1.用户进入网站
2.调用第3方api,并且api将公司名称,行业,代码等返回到数据层(原始用例是将公司信息推送到Google Analytics(分析))
3.使用行业代码来决定哪些内容实时显示给用户,因此是特定于行业的
我不太了解说“行业代码”是什么意思,但是可以,您可以使用数据层中的信息来个性化内容。
行业以数字sic或naic代码或行业描述(例如“信息系统”或“制造”)回来,因此基于该值,我想显示某些内容。
您是否有链接或有关如何在内容个性化中使用数据层中数据的任何解释?
谢谢!
This can give you some clues //www.growth-consultant.com/blog/ultimate-guide-personalising-website-free/
嗨,juliues,很棒的东西。我一直在寻找一个查询,在这里偶然发现,但没有找到..如果您可以帮助我..问题是,我只想为新用户而不是某位访问过的some1的用户启动网页视图gtm标签过去。
请让我知道是否可能,谢谢
嘿,我一定可以帮忙。我想我什至可以写一个指南。但是首先,我想更好地了解您的情况。您想为有史以来的第一个页面视图触发哪种标签?您想追踪什么?
安装广告网络的像素以进行再营销。并投放对时间敏感的广告素材。假设从第一次访问起7天。但是现在,如果用户通过再营销广告系列(在同一页面上)访问,那么7天时段会再次刷新。所以我想有一个仅在首次访问时触发的代码。
在adwords中很容易做到,因为我们可以为“新访客”创建受众,但不能为其他访客创建受众
得到它了。我将在几天内发布有关此问题的指南,并让您知道。
得到它了。干得好: 您问题的最新指南/解决方案 让 me know it that helped.
谢谢,朱利叶斯。非常感谢
:)
你好朱利叶斯,
我在应用程序中实现了dataLayer推送,并尝试推送userId。但是我在Google Analytics(分析)中找不到记录器。
我在index.html中添加了GTM代码段,并将以下脚本放置在发生注册事件的函数中
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'userId':user.UserId
});
我需要做其他事情吗?请在这件事上给予我帮助?
嘿,首先,请检查您的功能是否正常运行。打开预览和调试模式,并检查是否在事件流中看到“消息”。如果是,请转到“数据层”选项卡并检查数据是否正确显示在此处。
另外,请确保您的dataLayer.push包含“ event”参数,该参数对于自定义事件触发器起作用是必需的。
干杯
好解释。谢谢!
嗨!
在GTM中删除A标签后,它可以运行吗?
如果刷新预览和调试模式(和/或发布容器),则否
嘿,谢谢您提供的好东西,它解决了一半的问题。通常,我们可以看到目标转化是从哪个流量(直接,引荐,展示等)发生的。那样,我想根据上述广告系列查看这些(由GTM完成的自定义目标)目标结果。如果您对此有所帮助,那应该会更好。提前谢谢了。
我想我不明白这个问题。只需根据您的自定义事件在GA中创建目标,您就会看到同一件事。
嘿,
我有下面的脚本。
如何实现“ dataLayer.push”事件。使用事件管理器
需要在点击事件上触发。
<script>
fbq('track','click_me.com');
</script>
可以给我提供一些步骤。
.....我尝试过的方法..这不起作用.....
创建-> custom event
事件名称:myclick
这将触发:
-我有更新的点击网址&根据要求的主机名。
标签:-
标签类型:GA:通用分析
曲目类型:事件
类别:myclick
google分析设置:{{Ga设置为...}}
你好!
非常感谢您的解释!
我有一个问题:我曾经读过您的网站(在评论中),说您没有在结帐页面上设置GTM。
你能说明一下吗?
我想将dataLayer代码添加到我的结帐页面,并感谢您的页面,但是我担心它可能会带来一些安全风险或无法被Google接受。
非常感谢您,您的网站真是金矿!
你好
感谢提供这篇好文章。
我想在“ Google Analytics(分析)”中使用多个字段。
除了设置为“事件类别”,“事件操作”或“事件标签”以外,还有什么方法吗?
例如:
window.dataLayer.push({
'event':'registrationComplete',
'registrationCountry':'美国',
'registrationCity':'Chicago',
'yearOfRegistration':2012,
'状态':'确认'
'plan':'Premium'
});
嗨,是的Google关于自定义尺寸。
嗨,老兄,
好贴。
我的问题是,在实时查看事件时,如果我检查“行为”选项卡,则有我的动作,但未显示任何类别。
有什么建议吗?
嗨,您需要等待。这些报告不是实时的。
感谢您的教程!如果我打算创建多个自定义事件,通常会在GTM的“标签”部分看到多个Google Analytics(分析)标签吗?还是应该只存在一个与我创建的所有自定义事件和触发器相关联的Google Analytics(分析)标签?
那取决于你。通常,每个事件类型或事件组一个标签。但您也可以创建一个标签来支持所有事件。
But usually, it's one tag per event type/group (e.g. one tag for 登录, one for purchase, etc.)
嘿朱利叶斯,
很棒的博客,谢谢。
您知道为什么我可能会在实时分析中看到重复的事件吗?
当用户在我们的网站(基于AngularJS构建的SPA)上签出时,我们会发送一个自定义事件,当它只是一个时,它会显示“签出:2”。
有任何想法吗?
谢谢