Google Analytics增强型电子商务(通用分析):添加到购物车的产品详细信息不会随添加到购物车事件一起发送

问题描述 投票:0回答:1

这是我的第一篇文章,经过多年潜伏在StackOverflow的角落。

我目前正在尝试实施Google Analytics增强型电子商务,以使用Universal Analytics(非跟踪代码管理器)跟踪产品展示次数,产品详细信息视图,购物篮中的添加和删除以及这些产品的结帐。

Things that have worked so far

到目前为止,我在获取产品展示次数和详细信息视图方面取得了一些成功。以下是我在Google Analytics用户浏览器中访问我们网站上的一组产品的详细信息视图时会发生的情况:

Screen cap showing detail view of products in Google Analytics dashboard

这既是预期的,也是预期的。

What I am stuck on

我曾希望扩展此级别的跟踪,以使用语法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()函数获取此元数据,然后使用该函数在ga('basketAdd.ec:addProduct'...命令中将产品添加到GA跟踪器。

预期与实际

我希望购物篮中的产品数据以与产品视图相同的方式显示在Google Analytics信息中心,但信息中心仅显示已发生购物篮 - 而不是添加到购物篮中的内容:

Screencap showing a basket add in the GA dashboard

我的浏览器的网络选项卡显示没有任何产品详细信息作为参数发送:

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增强型电子商务的功能,也没有意识到我正在尝试的事实上是不可能的。

如果有任何帮助,我会非常感谢任何有使用谷歌分析增强电子商务的追踪篮子添加经验的人!

javascript google-analytics universal-analytics event-tracking enhanced-ecommerce
1个回答
0
投票

所以!我发现了我的问题的原因,而且相当令人尴尬,因为回想起来,它非常简单。

问题只是我的自定义跟踪器(basketAdd)没有导入增强型电子商务模块。

为什么?

因为我忽略了将跟踪器的名称添加到ga('require', 'ec');命令之前。

我已将其更新为以下内容:

ga('basketAdd.require', 'ec');

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

检查代码的一致性。现在请原谅我尝试练习我所说的话!

© www.soinside.com 2019 - 2024. All rights reserved.