所以我最近刚刚设置了GTM,并一直在设置我的GA4来显示数据。我注意到我的电子商务参数(货币、商品名称等)并未在我的报告中显示为维度。正如您在下面的 item_list_name 示例中看到的,我的一些类别正在填充,但绝大多数显示为“(未设置)”。这是我的“货币化概述”下的 item_list_name 报告作为示例:
在浏览教程时,我发现当 GTM 设置不正确时会发生这种情况,因此它无法正确(或根本)提取数据。在阅读 Google 文档时,我发现要填充这些维度,您需要在电子商务事件内设置项目级参数(见下文)。
我理解这意味着什么,所以我没有单独列出我要查找的每个值(为每个参数创建一个数据层变量,例如:eventModel.item.item_list_name、eventModel.item.item_name等),而是创建了一个自定义 JavaScript 代码来提取所有值并将它们作为数组返回:
function() {
var items = {{Data Layer - eventModel Items}};
if (items && Array.isArray(items)) {
var itemDetails = items.map(function(item) {
return {
item_id: item.item_id || 'undefined',
item_list_name: item.item_list_name || 'undefined',
item_name: item.item_name || 'undefined',
item_variant: item.item_variant || 'undefined',
item_brand: item.item_brand || 'undefined',
item_category: item.item_category || 'undefined',
item_category2: item.item_category2 || 'undefined',
quantity: item.quantity || 'undefined',
price: item.price || 0,
currency: item.currency || 'undefined',
coupon: item.coupon || 'undefined'
};
});
return itemDetails;
}
return [];
}
此数据正确填充我的 GTM 变量,因为我可以看到给定列表中的每个项目以及包含 () 的所有数据,但它似乎没有正确填充我的 GA4,因为我仍然得到“(未设置)/(直接)/等等。”在多个报告中,我无法看到根据我最近收到的订单而知道的数据。我是否需要完成将每行数据作为每个事件的单独参数的繁琐工作,或者使用上面的代码作为“ItemDetails”参数工作,而我只是错误地实现了它?
你有点困惑。要使用电子商务事件参数,您可以创建一个数据层。如果我们谈论的是 view_item_list 电子商务事件,那么它需要三个必需参数https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag#view_item_list。 是的,当您为此事件创建标签时,所有这三个参数都必须作为事件参数传递。 item_list_name: item.item_list_name || 'undefined' - 未定义名称的可能来源就在这里。如果您不提取列表名称,它将被替换为不明确的名称。我建议你在调试模式下查看事件参数。