javascript Google Analytics 4 gtm.js未启动

3htmauhk  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(148)

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事件不在“联系支持”和“联系销售”页面上触发?
感谢帮助。

9njqaruj

9njqaruj1#

我正在调试Website Hubspot Form Submission Tracking,这是错误的标记来调试。在调试Website Hubspot Form Submitted标记时,GA4事件website_contact_us_submitted在提交Hubspot表单后触发。

相关问题