如何指定产品添加到购物车的“列表”?增强型电子商务

时间:2015-06-03 18:15:07

标签: javascript google-analytics e-commerce implementation product

尝试为我的网站实施Google Analytics增强型电子商务跟踪。

如何指定将产品添加到购物车的“列表”?

以下是将产品添加到购物篮的标准跟踪代码:

    // Called when a product is added to a shopping cart.
function addToCart(product) {
  ga('ec:addProduct', {
    'id': product.id,
    'name': product.name,
    'category': product.category,
    'brand': product.brand,
    'variant': product.variant,
    'price': product.price,
    'quantity': product.qty
  });
  ga('ec:setAction', 'add');
  ga('send', 'event', 'UX', 'click', 'add to cart');     // Send data using an event.
}

没有任何功能可以指定单击“添加到购物车”按钮的产品列表的名称。

必须有这样的东西:

ga('ec:setAction', 'click', {'list': 'Search Results'});

但仅适用于“点击”操作,(不是“添加”)。 (根据https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#(product action)

此外,我需要在列表中指定产品的位置。 有什么想法吗?

4 个答案:

答案 0 :(得分:0)

actionField中的列表变量仅对点击详细信息操作有效。 如果您想跟踪客户旅程,则必须合并点击并添加到一个逻辑事件中。

因此,如果你可以直接从列表中添加,并且想要在UA中将数据绑定在一起,那么你可以做很少的解决方法,如:

function addToCart(product) {
  ga('ec:addProduct', {
    'id': product.id,
    'name': product.name,
    'category': product.category,
    'brand': product.brand,
    'variant': product.variant,
    'price': product.price,
    'quantity': product.qty    
  });
  ga('ec:setAction', 'click', {'list': 'Search Results'});
  ga('send', 'event', 'automatic', 'click', 'add to cart',{'nonInteraction': 1});     // Send data using an event.

  ga('ec:addProduct', {
    'id': product.id,
    'name': product.name,
    'category': product.category,
    'brand': product.brand,
    'variant': product.variant,
    'price': product.price,
    'quantity': product.qty
  });
  ga('ec:setAction', 'add');
  ga('send', 'event', 'UX', 'click', 'add to cart');     // Send data using an event.
}

答案 1 :(得分:0)

您应该在添加list操作时发送detail属性(应在用户查看产品页面时发送)。

ga('ec:setAction', 'detail', { list: 'Search Results' });

考虑以下情况:

  1. 用户在您的网站上搜索产品,结果会显示出来。此时,会为每个产品结果创建一个展示。
  2. 用户点击其中一个产品结果,您添加了click操作,然后该用户被重定向到产品页面。
  3. 在页面加载时,您发送detail操作,指定list属性(作为setAction中的参数)。
  4. 用户点击'添加到购物车',然后发送add操作。
  5. 如果您未在list操作中指定detail属性,或者根本不发送detail操作,请调用{{ 1}}操作,在Google Analytics中查看产品列表效果下的数据时,添加到购物车数据将显示在产品列表名称下< strong>(未设置)。

    文档未能在其完整示例中包含这一重要信息,可以找到here

答案 2 :(得分:0)

我遇到了同样的问题并被困了好几个小时。

我的问题是我在不同的子域上进行结帐流程,而不是列出并点击产品展示的位置。 只需在GA页面视图标记i GTM上添加一个字段"cookieDomain" = "auto",所有内容都已开始工作 - Cross Domain Tracking with Google Tag Manager

我需要添加有关列表的信息的唯一地方是:

  • 产品展示次数列表。 'list' : 'Search result'
  • 产品点击(来自展示次数列表)。 'actionField': {'list': 'Search Results'},

我没有为产品细节或结账过程中的任何地方添加它(添加到购物车,结帐,购买)。

对于结帐流程中的其他外部域名,我猜您需要跨域跟踪。

答案 3 :(得分:0)

你需要做三件事。

<强> 1。跟踪产品列表,点击产品列表页面

/**
 * Binds click event on product detail page links at product list page.
 */
var bindProductListClickTracking = function() {
    jQuery('a.detail-link-track:not(.ga-click-bound)').on('click', function (e) {
        e.preventDefault();

        var href = jQuery(this).attr('href');
        //all my product data are attributes á la data-product-sku
        var product = jQuery('li[data-product-detail-link="' + href + '"]')[0];

        ga('ec:addProduct', {
            'id': product.dataset.productSku,
            'name': product.dataset.productName,
            'category':product.dataset.productCategory,
            'brand': product.dataset.productBrand,
            'variant': product.dataset.productVariant,
            'position': jQuery(product).index() + 1
        });

        var list = product.dataset.productList;
        /**
          * IMPORTANT: save your product list name into a cookie
          */
        jQuery.cookie('productlist', list, { path: '/', domain: cookieDomain});

        ga('ec:setAction', 'click', {list: list});

        ga('send', 'event', {
            eventCategory: 'productlist',
            eventAction: 'click',
            eventLabel: list,
            hitCallback: function () {
                if (!(e.ctrlKey || e.which == 2)) {
                    document.location = href;
                }
            }
        });
    }).addClass('ga-click-bound');
}

提示: 如果您有延迟加载或加载更多按钮,请注意不要在产品详细信息页面链接上绑定此事件两次。

<强> 2。将产品列表的actionObject添加到产品详细信息页面上的“添加到购物车”操作

var manipulationOfCart = function(product, type, productList) {
    ga('ec:addProduct', {
        'id': product.id,
        'name': product.name,
        'category': product.category,
        'brand': product.brand,
        'variant': product.variant,
        'price': product.price,
        'quantity': product.qty
    });

    ga('ec:setAction', type, {list: productList});

    if (type == 'add') {
        ga('send', {
            hitType: 'event',
            eventCategory: 'Cart',
            eventAction: 'click',
            eventLabel: 'Add To Cart',
            nonInteraction: 1
        });
    } else if (type == 'remove') {
        ga('send', {
            hitType: 'event',
            eventCategory: 'Cart',
            eventAction: 'click',
            eventLabel: 'Remove From Cart',
            nonInteraction: 1
        });
    }
}

第3。将产品添加到购物车或用户离开产品详细信息页面后删除cookie

manipulationOfCart(productToBasket, 'add', productlist);
$.removeCookie('productlist', { path: '/', domain: cookieDomain});

$(window).unload(function() {
    $.removeCookie('productlist', { path: '/', domain: cookieDomain});
});

实际上Google Analytics Docs是错误的 - 它不起作用。并且Google Analytics Bug Tracker已经报告了一个错误。