使用GA增强型电子商务为单一结帐步骤注册多个选项的最佳方式是什么?
正如文档所述:
// Called when user has completed shipping options.
function onShippingComplete(stepNumber, shippingOption) {
ga('ec:setAction', 'checkout_option', {
'step': stepNumber,
'option': shippingOption
});
ga('send', 'event', 'Checkout', 'Option', {
hitCallback: function() {
// Advance to next page.
}
});
}
问题是我们只需一步即可收集运费和付款选项,我们希望跟踪这两个选项。这是我们最初的想法:
// Called when user has completed shipping and payment options.
function onStepComplete(stepNumber, shippingOption,paymentOption ) {
ga('ec:setAction', 'checkout_option', {
'step': stepNumber,
'option': shippingOption
});
ga('ec:setAction', 'checkout_option', {
'step': stepNumber,
'option': paymentOption
});
ga('send', 'event', 'Checkout', 'Option', {
hitCallback: function() {
// Advance to next page.
}
});
}
这会按预期工作吗?我们之后可以正确分段吗?
答案 0 :(得分:1)
将 checkout_option 更改为结帐 - 似乎是Google处理两种不同类型事件的方式,以及每种事件在增强型电子商务中的工作所需的数据。我自己也面临同样的问题,并设法解决了这个问题。
基于您的代码的示例将是:
// Called when user has completed shipping and payment options.
function onStepComplete(stepNumber, shippingOption,paymentOption ) {
ga('ec:setAction', 'checkout', {
'step': stepNumber,
'option': shippingOption
});
ga('ec:setAction', 'checkout', {
'step': stepNumber,
'option': paymentOption
});
ga('send', 'event', 'checkout', 'option', {
hitCallback: function() {
// Advance to next page.
}
});
}
答案 1 :(得分:0)
我担心选项是独占的,它们可以作为GA新增强的结帐渠道报告中的一个维度。如果您想要分析哪种送货方式更好,那么您不能将它与付款方式混合在一起,因为维度的值是独占的,所以两者必须是不同的维度。
我会在两个单独的步骤中分开运费和付款,每个步骤都有自己的维度运送/付款,即使您有一步结账(现在很正常),您可以根据需要创建任意数量的步骤。
看看Enhanced Ecommerce Demo Store,他们在这里展示了步骤2中的付款方式,但是当用户点击选择器以选择Visa / transfer / etc时,会创建第3步。
答案 2 :(得分:0)
每个步骤仅允许1维。解决方案是创建子步骤,当你触发2个子步骤时,记住发送2个事件而不是1个,否则最后一个将覆盖。
这是:
async.parallel([
function shippingOption(callback) {
ga('ec:setAction', 'checkout_option', {
'step': 1,
'option': shippingOption
});
ga('send', 'event', 'Checkout', 'Option', {
hitCallback: callback(null, true)
});
},
function paymentOption(callback) {
ga('ec:setAction', 'checkout_option', {
'step': 2,
'option': paymentOption
});
ga('send', 'event', 'Checkout', 'Option', {
hitCallback: callback(null, true)
})
}
], function(err, hitCallback){
// do something like going to next page
})