我使用了正确的谷歌标记来启用跨网域跟踪。当通过单击提交按钮提交表单时,?ga=...
将被添加到目标 URL 中,但是,如果我通过 JS 触发提交事件,则不会添加它。
代码如下:
<head>
<script>
//All other common JS code exist
gtag('set', 'linker', {
'domains': ['example.com'],
'decorate_forms': true
});
gtag('config', 'UA-...');
</script>
</head>
<body>
<form method="POST" action="https://example.com/a/b">
<button type="submit">Submit</button>
</form>
<button id="bt">Click to submit form using JS</button>
<script>
$(document).on('click', '#bt', function(e){
$('form').submit();
});
</script>
</body>
如果我将提交按钮添加到表单并直接单击它,则目的地将是类似https://example.com/a/b?_ga=...
。但是,当我通过 JS 提交表单时,目标 URL 就像没有 GA 附录的表单操作一样。
必须注意的是,我使用的是gtag而不是GTM。
它可以通过两种不同的方式解决:
方法 1我们可以将提交触发器更改为提交按钮上的单击触发器。不知道为什么,但是,它解决了:)
的问题$(document).on('click', '#bt', function(e){
$('form button[type="submit"]').trigger('click');
});
方法 2我们可以在提交事件中处理我们想要的任何内容,而不是在提交以外的其他按钮上处理点击事件。
$(document).on('submit', 'form', function(e){
//Do your stuff and handle the event
return true;
});
尽管问题似乎已解决,但主要问题仍然存在,并且似乎指向了gtag或jquery form.submit()
的潜在错误。因此,如果您可以为悬而未决的问题提供任何解决方案或答案,请继续发布您的帖子,我会将您的答案设为正确的答案。