【发布时间】:2022-12-17 21:14:12
【问题描述】:
我通过在“成功购买”页面上将自定义事件从 JavaScript 发送到 Google 跟踪代码管理器来跟踪 Google Analytics 网站上的购买情况。在大多数情况下,这都能完美运行,但在某些情况下,事件似乎并未到达 Google Analytics(分析)。
最初我认为可能无法依赖访问成功页面,但后来我在触发记录事件发送到我的数据库的事件后添加了一个额外的调用。令我惊讶的是,到目前为止的事件总是登录到我的数据库,但它们有时仍未显示在分析中。这是执行此操作的代码:
const event = {
'event': 'purchase',
'ecommerce': {
'transaction_id': orderData.id,
'value': orderData.price,
'currency': 'EUR',
'coupon': orderData.CouponCode,
"items": orderData.services.map(elem => ({
'item_id': elem.id,
'item_name': elem.name,
'price': elem.price,
'item_type': elem.type,
'quantity': 1,
})),
}
};
// Send GA4 purchase event
dataLayer.push(event);
// Log to my db
fetch("/ajax/trackAnalytics", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
event,
cleaning_id: orderData.id
})
})
让我们以 12 月 2 日为例。根据谷歌分析,这些是传入的购买:
但是在我的数据库中,我收到了以下日志(我编辑了“项目”字段,因为它包含客户信息,但这无关紧要):
{
"event":"purchase",
"ecommerce":{
"transaction_id":6520,
"value":73.89,
"currency":"EUR",
"coupon":null
},
"timestamp":"2022-12-02T15:10:47+00:00"
}
{
"event":"purchase",
"ecommerce":{
"transaction_id":6519,
"value":67.99,
"currency":"EUR",
"coupon":null
},
"timestamp":"2022-12-02T15:57:44+00:00"
}
{
"event":"purchase",
"ecommerce":{
"transaction_id":6487,
"value":197.05,
"currency":"EUR",
"coupon":null
},
"timestamp":"2022-12-02T19:17:54+00:00"
}
如您所见,除 ID 为 6520 的交易外,所有内容都匹配。
我尝试创建包含 6520 所做的确切元素的订单,但我无法以这种方式重现该问题。我也尝试在我的浏览器上启用跟踪器拦截器来做同样的事情,但数据仍然通过。
标签管理器设置如下:
【问题讨论】:
标签: google-analytics google-tag-manager