我正在使用GTM的增强型电子商务通过推送到dataLayer
变量来报告事件。
我有一种情况需要推送一个事件并立即在事件回调中提交一个表单。 Google理论上为此提供了eventCallback
机制,但请考虑以下代码:
<script>
dataLayer.push({
'ecommerce': {
'currencyCode': 'EUR',
'impressions': [
{
'name': 'Donut Friday Scented T-Shirt',
'id': '67890',
'price': '33.75',
'brand': 'Google',
'category': 'Apparel',
'variant': 'Black',
'list': 'Search Results',
'position': 2
}]
}
},{
'eventCallback': function() {
document.location = productObj.url; // works
document.getElementById('form-id').submit(); // fails (!?!)
}
});
</script>
注意:
#form-id
存在(不是拼写错误)底线:如何在推送后使表单提交?或者这不可能吗?
答案 0 :(得分:0)
您使用GTM提交表单的原因有何特别原因(特别是在产品展示后)?这可能超出了它的预期用途,并且听起来太过于苛刻。
假设网站自行推送,您可以在网页脚本上的dataLayer.push之后立即提交表单,并使用GTM自己的form submit delay抓住推送,自己组装产品展示代码,然后让表格在解雇后按预期提交。应该这样做。