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');

瞧,这解决了我的问题。我不确定这里是否有任何其他人的外卖课程,除此之外:

检查您的代码是否一致。现在请原谅我在实践我所宣扬的内容!