Google Analytics Enhanced Ecommerce (Universal Analytics):添加到购物车的产品的详细信息不会随添加到购物车事件一起发送
Google Analytics Enhanced Ecommerce (Universal Analytics): Details of a product added to the cart are not sent with the add to cart event
这是我在 Whosebug 的角落潜伏多年后的第一个 post。
我目前正在尝试实施 Google Analytics Enhanced Ecommerce 以使用 Universal Analytics(而非标签管理器)跟踪产品印象、产品详细信息视图、购物篮中的添加和删除以及这些产品的结帐。
到目前为止有效的事情
到目前为止,我在记录产品印象和详细视图方面取得了一些成功。这是我在 Google Analytics User Explorer 中访问我们网站上一组产品的详细信息视图时发生的情况的截图:
Screen cap showing detail view of products in Google Analytics dashboard
这是意料之中的。
我坚持的是什么
我曾希望扩展此级别的跟踪以使用语法 Google offer in their documentation.
记录用户将哪些产品添加到他们的购物车中
由于添加到购物车事件仍必须允许 Google Analytics 跟踪器记录综合浏览量,因此我对 Google 指令的实施创建了一个新的命名跟踪器,仅用于该事件,将其与网页浏览跟踪器分开。
我的实现
以下是我的实现方式:
function gaAddRemoveCart( action, productId, csrfToken ) {
$metadataPromise = getProductMetadata( 'id', productId, csrfToken );
$metadataPromise.done( function( data ) {
metadata = data.payload[0];
console.log(metadata);
ga('create', 'UA-********-*', 'auto', 'basketAdd');
ga('require', 'ec');
ga('basketAdd.ec:addProduct', { // Provide product details in an impressionFieldObject.
'id': metadata.productId, // Product ID (string).
'name': metadata.productName, // Product name (string).
'category': metadata.productCategory, // Product category (string).
'brand': metadata.productBrand, // Product brand (string).
'list': metadata.productList, // Product list (string).
'variant': metadata.productVariant, // Product variant (string).
'position': metadata.productPosition // Product position (number).
});
if ( action == 'add' ) {
ga('basketAdd.ec:setAction', 'add');
ga('basketAdd.send', 'event', 'UX', 'click', 'add to cart'); // Send data using an event.
} else if ( action == 'remove' ) {
ga('basketAdd.ec:setAction', 'remove');
ga('basketAdd.send', 'event', 'UX', 'click', 'remove from cart'); // Send data using an event.
}
});
}
这个函数是这样调用的:
gaAddRemoveCart( 'add', metadataId, <?php echo "'{$_SESSION['CsrfToken']}'"; ?> );
元数据 ID 被传递给 gaAddRemoveCart()
,然后后者又使用函数 getProductMetadata()
获取此元数据,然后用于将产品添加到 [=16] 中的 GA 跟踪器=] 命令。
预期与实际
我希望添加购物车的产品数据会以与产品视图相同的方式出现在 Analytics 仪表板中,但仪表板仅显示发生了添加购物车 - 而不是添加到购物车的内容:
Screencap showing a basket add in the GA dashboard
我浏览器的网络选项卡显示 none 的产品详细信息作为参数发送:
Params of request to submit add to basket event to Google Analytics
当然,我已经检查过产品的元数据是否已找到并纳入功能。这是我实施中上述 console.log(metadata);
行的输出:
Product metadata the my function tries to submit to Google Analytics
为了测试元数据中的空值是否是罪魁祸首,我尝试将 ec:addProduct
命令更新为:
ga('basketAdd.ec:addProduct', { // Provide product details in an impressionFieldObject.
'id': 'TEST1', // Product ID (string).
'name': 'Test product', // Product name (string).
'category': 'Test cat', // Product category (string).
'brand': 'Test brand', // Product brand (string).
'list': 'Test list', // Product list (string).
'variant': 'Test variant', // Product variant (string).
'position': 1 // Product position (number).
});
然而,这产生了相同的结果。产品信息没有随点击事件一起发送到 GA。
总结
我进行了广泛的搜索,但未能找到解决此问题的方法。我什至不确定我是否没有误解 Google Analytics Enhanced Ecommerce 的功能,也没有意识到我正在尝试的实际上是不可能的。
如果任何有跟踪购物篮经验的人使用 Google Analytics Enhanced Ecommerce 可以提供任何帮助,我将非常感激!
所以!我发现了问题的原因,这很尴尬,因为回想起来,它非常简单。
问题很简单,我的自定义命名跟踪器 (basketAdd) 没有导入增强型电子商务模块。
为什么?
因为我忘记在 ga('require', 'ec');
命令前加上跟踪器的名称。
我已经更新为:
ga('basketAdd.require', 'ec');
瞧,这解决了我的问题。我不确定这里是否有任何其他人的外卖课程,除此之外:
检查您的代码是否一致。现在请原谅我在实践我所宣扬的内容!
这是我在 Whosebug 的角落潜伏多年后的第一个 post。
我目前正在尝试实施 Google Analytics Enhanced Ecommerce 以使用 Universal Analytics(而非标签管理器)跟踪产品印象、产品详细信息视图、购物篮中的添加和删除以及这些产品的结帐。
到目前为止有效的事情
到目前为止,我在记录产品印象和详细视图方面取得了一些成功。这是我在 Google Analytics User Explorer 中访问我们网站上一组产品的详细信息视图时发生的情况的截图:
Screen cap showing detail view of products in Google Analytics dashboard
这是意料之中的。
我坚持的是什么
我曾希望扩展此级别的跟踪以使用语法 Google offer in their documentation.
记录用户将哪些产品添加到他们的购物车中由于添加到购物车事件仍必须允许 Google Analytics 跟踪器记录综合浏览量,因此我对 Google 指令的实施创建了一个新的命名跟踪器,仅用于该事件,将其与网页浏览跟踪器分开。
我的实现
以下是我的实现方式:
function gaAddRemoveCart( action, productId, csrfToken ) {
$metadataPromise = getProductMetadata( 'id', productId, csrfToken );
$metadataPromise.done( function( data ) {
metadata = data.payload[0];
console.log(metadata);
ga('create', 'UA-********-*', 'auto', 'basketAdd');
ga('require', 'ec');
ga('basketAdd.ec:addProduct', { // Provide product details in an impressionFieldObject.
'id': metadata.productId, // Product ID (string).
'name': metadata.productName, // Product name (string).
'category': metadata.productCategory, // Product category (string).
'brand': metadata.productBrand, // Product brand (string).
'list': metadata.productList, // Product list (string).
'variant': metadata.productVariant, // Product variant (string).
'position': metadata.productPosition // Product position (number).
});
if ( action == 'add' ) {
ga('basketAdd.ec:setAction', 'add');
ga('basketAdd.send', 'event', 'UX', 'click', 'add to cart'); // Send data using an event.
} else if ( action == 'remove' ) {
ga('basketAdd.ec:setAction', 'remove');
ga('basketAdd.send', 'event', 'UX', 'click', 'remove from cart'); // Send data using an event.
}
});
}
这个函数是这样调用的:
gaAddRemoveCart( 'add', metadataId, <?php echo "'{$_SESSION['CsrfToken']}'"; ?> );
元数据 ID 被传递给 gaAddRemoveCart()
,然后后者又使用函数 getProductMetadata()
获取此元数据,然后用于将产品添加到 [=16] 中的 GA 跟踪器=] 命令。
预期与实际
我希望添加购物车的产品数据会以与产品视图相同的方式出现在 Analytics 仪表板中,但仪表板仅显示发生了添加购物车 - 而不是添加到购物车的内容:
Screencap showing a basket add in the GA dashboard
我浏览器的网络选项卡显示 none 的产品详细信息作为参数发送:
Params of request to submit add to basket event to Google Analytics
当然,我已经检查过产品的元数据是否已找到并纳入功能。这是我实施中上述 console.log(metadata);
行的输出:
Product metadata the my function tries to submit to Google Analytics
为了测试元数据中的空值是否是罪魁祸首,我尝试将 ec:addProduct
命令更新为:
ga('basketAdd.ec:addProduct', { // Provide product details in an impressionFieldObject.
'id': 'TEST1', // Product ID (string).
'name': 'Test product', // Product name (string).
'category': 'Test cat', // Product category (string).
'brand': 'Test brand', // Product brand (string).
'list': 'Test list', // Product list (string).
'variant': 'Test variant', // Product variant (string).
'position': 1 // Product position (number).
});
然而,这产生了相同的结果。产品信息没有随点击事件一起发送到 GA。
总结
我进行了广泛的搜索,但未能找到解决此问题的方法。我什至不确定我是否没有误解 Google Analytics Enhanced Ecommerce 的功能,也没有意识到我正在尝试的实际上是不可能的。
如果任何有跟踪购物篮经验的人使用 Google Analytics Enhanced Ecommerce 可以提供任何帮助,我将非常感激!
所以!我发现了问题的原因,这很尴尬,因为回想起来,它非常简单。
问题很简单,我的自定义命名跟踪器 (basketAdd) 没有导入增强型电子商务模块。
为什么?
因为我忘记在 ga('require', 'ec');
命令前加上跟踪器的名称。
我已经更新为:
ga('basketAdd.require', 'ec');
瞧,这解决了我的问题。我不确定这里是否有任何其他人的外卖课程,除此之外:
检查您的代码是否一致。现在请原谅我在实践我所宣扬的内容!