17

谷歌没有说明如何处理用户使用增强型电子商务插件更改购物车中的行数。

当用户将某些东西添加到他的购物车,在稍后的会话中返回到同一个购物车并添加更多相同的产品时,他可能会获得较低的单价(例如,当电子商务网站使用价格中断时) .

因此,例如,他首先以 3 美元的价格添加 1 个单位,然后返回并将数量增加到 10,因此每个单位只需支付 2 美元。

现在,之前发送给 GA 的价格需要以某种方式失效。

对此有多种解决方案,但每种解决方案都有一些严重的缺点:

1)计算差异并添加/删除。

2)删除该行,然后添加当前数量。

方法 1 具有传递(最)正确的用户交互的优点。由于 add/remove 似乎没有 nonInteraction 参数,因此使用方法 2 将意味着错误的添加/删除数量。

方法 2 的优点是,如果在第一次添加产品后价格发生变化,则能够更改价格。例如:添加更多单位后,客户现在的单位价格较低。使用方法 1 将意味着 GA 中的金额不正确,或者您必须计算价格差异并虚构地给最新添加的单位一个较低的价格。

这两种方法中哪一种更可取?

4

3 回答 3

2

在纯 analytics.js 实现中,您确实使用

ga('ec:setAction', 'remove');

以及描述被移除产品的产品属性

请参阅https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#add-remove-cart

// describes the product being removed
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', 'remove'); // notice 'remove' here
ga('send', 'event', 'UX', 'click', 'removed from cart'); // sends the action

如果您在 GTM 中使用 GTM 和 GA 原生标签,请参阅https://developers.google.com/tag-manager/enhanced-ecommerce#add和删除部分

// Measure the removal of a product from a shopping cart.
dataLayer.push({
  'event': 'removeFromCart',
  'ecommerce': {
    'remove': {                               // 'remove' actionFieldObject measures.
      'products': [{                          //  removing a product to a shopping cart.
          'name': 'Triblend Android T-Shirt',
          'id': '12345',
          'price': '15.25',
          'brand': 'Google',
          'category': 'Apparel',
          'variant': 'Gray',
          'quantity': 1
      }]
    }
  }
});
于 2020-04-18T19:46:43.410 回答
0

增加数量不应与将产品添加到购物车不同。正如您所提到的,价格变化案例是这里的挑战。如果这些交易不超过所有交易的 %5,您可以继续使用最近的数量和价值。如果您/他们希望获得尽可能高的准确性;计算差异,将其保存到本地存储,在成功页面上将其作为 qty-change-discount- coupon应用。

于 2019-12-27T20:14:44.243 回答
0

电子商务数据层需要借助其他 GA 命中。因此,每次有人添加或删除项目时,您必须:

  1. 首先更新或重建 * 电子商务数据层。
  2. 触发事件以将新数据传递给 GA。
  3. 重置 dataLayer 值以确保您不会复制数据。

* 数据层是持久的,因此请确保dataLayer.push({'ecommerce': undefined});在发送数据后重置值 ( ),这样您就不会有重复的数据。

于 2018-05-25T16:36:41.857 回答