bounty还有5天到期。回答此问题可获得+50声望奖励。Steve希望引起更多关注这个问题。
我想跟踪提交的Hubspot形式嵌入在我们的联系页面与谷歌分析4 &谷歌标签管理器。
在this guide之后,我创建了:
·一个新的GTM HTML标签,称为“网站Hubspot表单提交跟踪”,具有上面步骤1中的自定义HTML,以在两个触发器上触发:联系销售页面(URL路径包含contact/sales
)和联系支持页面(URL路径包含contact/support
):
<script type="text/javascript">
window.addEventListener("message", function(event) {
if(event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormSubmitted') {
window.dataLayer.push({
'event': 'hubspot-form-submit',
'hs-form-guid': event.data.id
});
}
});
</script>
·新的GTM触发器称为“Hubspot Form Submitted”,事件名称为hubspot-form-submit
,与上面添加的window.dataLayer.push({'event': 'hubspot-form-submit',
代码匹配。
·称为“Hubspot Form GUID”的新GTM数据层变量,其具有变量名称xlm4nlx。
·一个新的GTM事件标签,选择正确的GA4配置变量,事件名称为website_contact_us_submitted
,使用“Hubspot Form Submitted”触发器触发。
我已经发布了这些GTM更改。
如果我选择“Website Hubspot Form Submission Tracking”标签并对其进行调试,并访问我们的联系销售页面,我会看到
网站Hubspot表单提交跟踪未触发
如果我打开Tag Not Fired
,我会看到:
从this article中,我看到 * 将dataLayer声明放在GTM容器之后将导致数组重置 *,对此建议的修复方法是确保发送到dataLayer
的数据正在使用dataLayer.push
推送到现有的dataLayer上。
但是,我链接到的第一篇文章中向dataLayer发送数据的代码就是这样做的。
<script type="text/javascript">
window.addEventListener("message", function(event) {
if(event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormSubmitted') {
window.dataLayer.push({
'event': 'hubspot-form-submit',
'hs-form-guid': event.data.id
});
}});
</script>
为什么gtm.js
事件不在“联系支持”和“联系销售”页面上触发?
感谢帮助。
1条答案
按热度按时间9njqaruj1#
我正在调试
Website Hubspot Form Submission Tracking
,这是错误的标记来调试。在调试Website Hubspot Form Submitted
标记时,GA4事件website_contact_us_submitted
在提交Hubspot表单后触发。