增强型电子商务

利用 analytics.js 的增强型电子商务插件,可以衡量用户在整个购物体验过程中与电子商务网站上产品的互动情况,包括产品展示、产品点击、查看产品详情、将产品添加到购物车、开始结账流程、交易以及退款。

迁移以及与电子商务插件 (ecommerce.js) 的兼容性

如果您已经实施了电子商务衡量机制,并且想要开始使用增强型电子商务,有以下两种主要方案可供选择:

使用新的媒体资源

您可以为新创建的媒体资源额外添加一个跟踪器,并为该媒体资源启用增强型电子商务/添加相应代码。请参阅使用多个跟踪对象,详细了解如何从一个网页向多个媒体资源发送数据。

迁移现有媒体资源

要从电子商务插件迁移到增强型电子商务插件,当前的 analytics.js 用户需要移除现有的代码引用,并用增强型电子商务代码取而代之。

如果您现在使用的是 ga.js,则需要先迁移到 analytics.js,然后才能使用增强型电子商务插件。

之前使用 ecommerce.js 插件收集的交易和商品数据不会受迁移的影响,您可以继续在它们原来发往的媒体资源和配置文件中使用这些数据。

增强型电子商务数据的类型和操作

您可以发送多种电子商务数据:

展示数据

表示被查看的产品的相关信息。此类数据封装为 impressionFieldObject,其中包含以下值:

值类型 是否必须提供 说明
id text *是

产品 ID 或 SKU(例如 P67890)。

* 对于 idname,必须设置其中之一。

name text *是

产品名称(例如 Android T 恤)。

* 对于 idname,必须设置其中之一。

list text 产品所在的列表或集合(例如搜索结果)
list_name text 产品所在的列表或集合(例如搜索结果)
brand text 与产品关联的品牌(例如 Google)。
category text 产品所属的类别(例如服装)。可以使用 / 作为分隔符来指定最多 5 个层级(例如服装/男装/T 恤)。
variant text 产品的细分款式(例如黑色)。
position integer 产品在列表或集合中的位置(例如 2)。
list_position integer 产品在列表或集合中的位置(例如 2)。
price number 产品的价格(例如 29.20)。

产品数据

产品数据表示被查看(或添加到购物车等)的具体产品。此类数据封装为 productFieldObject,其中包含以下值:

值类型 是否必须提供 说明
id text *是

产品 ID 或 SKU(例如 P67890)。

* 对于 id 和 name,必须设置其中之一。

name text *是

产品名称(例如 Android T 恤)。

* 对于 id 和 name,必须设置其中之一。

brand text 与产品关联的品牌(例如 Google)。
category text 产品所属的类别(例如服装)。可以使用 / 作为分隔符来指定最多 5 个层级(例如服装/男装/T 恤)。
variant text 产品的细分款式(例如黑色)。
price number 产品的价格(例如 29.20)。
quantity integer 产品的数量(例如 2)。
coupon text 与产品关联的优惠券代码(例如 SUMMER_SALE13)
position integer 产品在列表或集合中的位置(例如 2)。
list_position integer 产品在列表或集合中的位置(例如 2)。

推广活动数据

表示被查看的推广活动的相关信息。此类数据封装为 promoFieldObject,其中包含以下值:

值类型 是否必须提供 说明
id text *是

推广活动的 ID(例如 PROMO_1234)。

* 对于 idname,必须设置其中之一。

name text *是

推广活动的名称(例如“夏季促销”)。

* 对于 idname,必须设置其中之一。

creative text 与推广活动关联的广告素材(例如 summer_banner2)。
creative_name text 广告素材的名称(例如 summer_banner2)。
position text 广告素材的位置(例如 banner_slot_1)。
creative_slot text 广告素材投放到的广告位的名称(例如 banner_slot_1)。

操作数据

表示发生的电子商务相关操作的信息。此类数据封装为 actionFieldObject,其中包含以下值:

值类型 是否必须提供 说明
id text *是

交易 ID(例如 T1234)。

* 如果操作类型是 purchaserefund,则必须提供此值

affiliation text 发生此交易的商店或关联商户(例如 Google 商店)。
revenue number

与这笔交易关联的总收入或总计金额(例如 11.99)。此值可能包含运费、税费或其他要计入 revenue 的总收入调整值。

number 与事件相关的价值(即收入)
tax number 与这笔交易相关的总税额。
shipping number 与这笔交易相关的运费。
coupon text 在这笔交易中兑换的优惠券。
list text 关联产品所在的列表。可选。
items array 包含关联产品的数组。
step integer 一个数字,表示结账流程中的某个步骤。对于“checkout”操作,可自由选择是否提供此值。
checkout_step integer 一个数字,表示结账流程中的某个步骤。
option text checkoutcheckout_option 操作的附加字段,用于描述结账页上的选项信息,例如所选的付款方式。
checkout_option text 结账选项(即所选的付款方式)。

产品和推广活动操作

“操作”指定了应当如何解读您发送到 Google Analytics(分析)的产品和推广活动数据。

操作 事件 说明
click 点击某个产品,或点击一个或多个产品的产品链接。
detail 查看产品详情。
add 将一个或多个产品添加到购物车。
remove 从购物车中移除一个或多个产品。
checkout 开始一个或多个产品的结账流程。
checkout_option 发送指定结账步骤的选项值。
purchase 购买一个或多个产品。
refund 为一个或多个产品退款。
promo_click 点击某个内部推广活动。
add_to_cart 用户将一个或多个产品添加到购物车。
begin_checkout 用户开始一个或多个产品的结账流程。
checkout_progress 用户在第一个结账步骤之后完成结账步骤。
purchase 用户完成购买。
refund 用户收到一个或多个产品的退款。
remove_from_cart 用户从购物车中移除一个或多个产品。
select_content 用户点击某个产品或产品链接。
set_checkout_option 用户正在完成的结账步骤。
view_item 用户查看某个产品的详细信息。
view_item_list 用户查看一个或多个产品的列表。
view_promotion 用户点击某个内部推广活动。
view_refund 用户查看一个或多个产品的退款。

实现

以下几部分介绍了如何实现增强型电子商务插件,从而使用 analytics.js 库衡量网站上的电子商务活动。

加载电子商务插件

为缩小 analytics.js 库的体量,增强型电子商务插件不在默认库中提供,而是以一个插件模块的形式提供。在使用该模块前,必须先加载它。

如需加载增强型电子商务插件,请使用以下命令:

ga('require', 'ec');

此命令的执行时间必须是在您创建跟踪器对象之后,并且在您使用与增强型电子商务相关的任何具体功能之前

发送增强型电子商务数据

插件加载之后,一系列增强型电子商务专用的新命令将会添加到默认跟踪器中,然后您可以开始发送电子商务数据。

衡量电子商务活动

典型的增强型电子商务实现方案将会衡量产品展示以及以下任意操作:

  • 对产品链接的点击。
  • 查看产品详情。
  • 内部推广活动的展示和点击。
  • 在购物车中添加或移除产品。
  • 开始产品结账流程。
  • 购买和退款。

衡量展示

请使用 ec:addImpression 命令来衡量产品展示,并将产品详情添加到 impressionFieldObject 中。

例如,以下代码会衡量某个产品在搜索结果列表中的展示:

ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Search Results',         // Product list (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

impressionFieldObject 必须具有 nameid 值。其他所有值都不是必需的,可以不设置。

衡量操作

操作的衡量方法如下:使用 ec:addProduct 命令和 productFieldObject 来添加产品详情,并使用 ec:setAction 命令来指定用户执行的操作

例如,以下代码会衡量对搜索结果列表中显示的产品链接的点击:

ga('ec:addProduct', {               // Provide product details in a productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

ga('ec:setAction', 'click', {       // click action.
  'list': 'Search Results'          // Product list (string).
});

productFieldObject 必须具有 nameid 值。其他所有值都不是必需的,可以不设置。

合并展示和操作数据

既有产品展示又有操作时,可以将两者合并到同一次命中中进行衡量。

下例显示了如何衡量一次在相关产品部分中的展示以及一次产品详情查看:

// The impression from a Related Products section.
ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1                     // Product position (number).
});

// The product being viewed.
ga('ec:addProduct', {                 // Provide product details in an productFieldObject.
  'id': 'P67890',                     // Product ID (string).
  'name': 'YouTube Organic T-Shirt',  // Product name (string).
  'category': 'Apparel/T-Shirts',     // Product category (string).
  'brand': 'YouTube',                 // Product brand (string).
  'variant': 'gray',                  // Product variant (string).
  'position': 2                       // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

衡量交易

交易的衡量方法如下:使用 ec:setAction 命令并将操作类型设置为 purchase。总收入、税费和运费等交易级详情在 actionFieldObject 中提供:

ga('ec:addProduct', {               // Provide product details in an productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'black',               // Product variant (string).
  'price': '29.20',                 // Product price (number).
  'coupon': 'APPARELSALE',          // Product coupon (string).
  'quantity': 1                     // Product quantity (number).
});

ga('ec:setAction', 'purchase', {          // Transaction details are provided in an actionFieldObject.
  'id': 'T12345',                         // (Required) Transaction id (string).
  'affiliation': 'Google Store - Online', // Affiliation (string).
  'revenue': '37.39',                     // Revenue (number).
  'tax': '2.85',                          // Tax (number).
  'shipping': '5.34',                     // Shipping (number).
  'coupon': 'SUMMER2013'                  // Transaction coupon (string).
});

如果操作类型是 purchaserefundactionFieldObject 必须具有 id 值。其他所有值都不是必需的,可以不设置。

衡量退款

如需为整个交易退款,请设置 refund 操作并提供交易 ID:

// Refund an entire transaction.
ga('ec:setAction', 'refund', {
  // Transaction ID is only required field for full refund.
  'id': 'T12345'
});

如果未找到相符的交易,则 refund 命中将不会得到处理。

如需衡量部分退款,请设置 refund 操作并指定要退款产品的交易 ID、产品 ID 和产品数量:

// Refund a single product.
ga('ec:addProduct', {
  'id': 'P12345',       // Product ID is required for partial refund.
  'quantity': 1         // Quantity is required for partial refund.
});

ga('ec:setAction', 'refund', {
  'id': 'T12345',       // Transaction ID is required for partial refund.
});

为退款使用非互动事件

如果您需要使用事件来发送退款数据,但该事件不属于通常衡量的网站上行为(即并非由用户发起),则建议您发送非互动事件。这可让跳出率、网站停留时间等指标免受该事件的影响。例如:

ga('send', 'event', 'Ecommerce', 'Refund', {'nonInteraction': 1});

衡量结账流程

要衡量结账流程中的每个步骤,请按以下步骤操作:

  • 添加代码以衡量结账流程中的每一步。
  • 如果适用,添加代码以衡量结账选项。
  • (可选)设置直观易懂的步骤名称以用于结账漏斗报告,方法是在网页界面的“管理”部分配置电子商务设置

1. 衡量结账步骤

对于结账流程中的每一步,您都需要实现相应的代码,以便向 Google Analytics(分析)发送数据:

  • step 字段

    对于要衡量的每一个结账步骤,您都应添加 step 值。 此值用于将结账操作映射到您在电子商务设置中为每个步骤配置的标签。

  • option 字段

    在衡量某个指定结账步骤时,如果您有关于此步骤的更多信息,则可为 option 字段设置 checkout 操作,以捕获此信息,例如用户的默认付款方式(如 Visa)。

  • 衡量某个结账步骤

    如需衡量某个结账步骤,请为每个产品使用 ec:addProduct 并使用 ec:setAction 指示操作类型是 checkout。如果适用,还可以为 ec:setAction 附加一个 actionFieldObject 以说明该结账步骤的 stepoption

    下例显示了如何衡量结账流程的第一步(涉及一个产品以及关于付款方式的额外信息):

    ga('ec:addProduct', {               // Provide product details in an productFieldObject.
      'id': 'P12345',                   // Product ID (string).
      'name': 'Android Warhol T-Shirt', // Product name (string).
      'category': 'Apparel',            // Product category (string).
      'brand': 'Google',                // Product brand (string).
      'variant': 'black',               // Product variant (string).
      'price': '29.20',                 // Product price (number).
      'quantity': 1                     // Product quantity (number).
    });
    
    // Add the step number and additional info about the checkout to the action.
    ga('ec:setAction','checkout', {
        'step': 1,
        'option': 'Visa'
    });
    

2. 衡量结账选项

结账选项可让您衡量关于结账状态的额外信息。如果您在初始网页浏览发生时衡量了某个结账步骤,但在用户设置了选项之后,关于此步骤有了新的额外信息,那么结账选项就可以派上用场。例如,用户选择了配送方式。

如需衡量某个结账选项,请使用 ec:setAction 指示操作类型是 checkout_option,并添加步骤序号和选项说明。

您很可能希望在用户点击进入结账流程中的下一步时衡量此操作。例如:

// (On "Next" button click)
ga('ec:setAction', 'checkout_option', {'step': 2, 'option': 'FedEx'});

ga('send', 'event', 'Checkout', 'Option', {
    hitCallback: function() {
      // advance to next page
    },
});

3. 结账漏斗配置

您可以为结账流程中的每一步指定一个描述性的名称,以在报告中使用。如需配置此类名称,请访问 Google Analytics(分析)网页界面的管理部分,选择相应数据视图(配置文件),然后点击电子商务设置。请按照相应电子商务设置说明,为要衡量的每个结账步骤添加标签。

Google Analytics(分析)网页界面“管理”部分中的“电子商务设置”。开启了电子商务功能,为 4 个结账漏斗步骤添加了标签:1. 查看购物车,2. 填写付款信息,3. 确认订单详情,4. 收据
图 1:电子商务设置 - 结账漏斗

衡量内部推广活动

增强型电子商务插件支持对内部推广活动的展示次数和点击次数进行衡量,例如对网站另一版块中的促销活动进行宣传的横幅。

推广活动展示

内部推广活动的展示一般在网页加载时衡量,并相应数据使用 ec:addPromo 命令随初始网页浏览数据一起发送。例如:

ga('ec:addPromo', {               // Promo details provided in a promoFieldObject.
  'id': 'PROMO_1234',             // Promotion ID. Required (string).
  'name': 'Summer Sale',          // Promotion name (string).
  'creative': 'summer_banner2',   // Creative (string).
  'position': 'banner_slot1'      // Position  (string).
});

推广活动点击

您可以通过设置 promo_click 操作来衡量内部推广活动获得的点击。例如:

// Identify the promotion that was clicked.
ga('ec:addPromo', {
  'id': 'PROMO_1234',
  'name': 'Summer Sale',
  'creative': 'summer_banner2',
  'position': 'banner_slot1'
});

// Send the promo_click action with an event.
ga('ec:setAction', 'promo_click');
ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');

例如,要衡量产品详情页面上的一次展示和一次推广活动点击,您需要先随初始网页浏览数据发送产品和展示数据,然后在单独的事件中发送推广活动点击数据:

// 1. Send product and impression data with pageview.
ga('ec:addProduct', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
});

// The impression from the Related Products section.
ga('ec:addImpression', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1,                    // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

ga('send', 'pageview');             // Send the product data with initial pageview.


// 2. Send the promo click data when the promo click occurs.
// Call this function when promo click occurs.
function onPromoClick() {
  ga('ec:addPromo', {
    'id': 'PROMO_1234',
    'name': 'Summer Sale',
    'creative': 'summer_banner2',
    'position': 'banner_slot1'
  });

  // Send the promo_click action with an event.
  ga('ec:setAction', 'promo_click');
  ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');
}

promoFieldObject 必须具有 nameid 值。其他所有值都不是必需的,可以不设置。

完整示例

以下代码段显示了如何使用增强型电子商务插件来衡量一个产品从初次展示到交易的完整电子商务生命周期。

衡量商品获得的展示情况

在此例中,用户在搜索结果列表中第一次看到某个产品。如需衡量此次商品展示情况,请使用 ec:addImpression 命令,并在 impressionFieldObject 中提供产品详情:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addImpression', {
  'id': 'P12345',                   // Product details are provided in an impressionFieldObject.
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'Google',
  'variant': 'black',
  'list': 'Search Results',
  'position': 1                     // 'position' indicates the product position in the list.
});

ga('ec:addImpression', {
  'id': 'P67890',
  'name': 'YouTube Organic T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'YouTube',
  'variant': 'gray',
  'list': 'Search Results',
  'position': 2
});

ga('send', 'pageview');              // Send product impressions with initial pageview.

衡量商品获得的点击情况

接下来,用户点击了列表中的该产品以查看其详情,表现出了对该产品的兴趣。

要衡量此次产品点击,请使用 ec:addProductec:setAction

// Called when a link to a product is clicked.
function onProductClick() {
  ga('ec:addProduct', {
    'id': 'P12345',
    'name': 'Android Warhol T-Shirt',
    'category': 'Apparel',
    'brand': 'Google',
    'variant': 'black',
    'position': 1
  });
  ga('ec:setAction', 'click', {list: 'Search Results'});

  // Send click with an event, then send user to product page.
  ga('send', 'event', 'UX', 'click', 'Results', {
    hitCallback: function() {
      document.location = '/product_details?id=P12345';
    }
  });
}

产品链接可按以下方式实现:

<a href="/next-page.html"
   onclick="onProductClick(); return !ga.loaded;">
  Android Warhol T-Shirt
</a>

衡量商品详情获得的浏览情况

点击列表中的产品后,用户查看了产品详情页面。

如需衡量商品详情获得的浏览情况,请使用 ec:addProductec:setAction 来指定 detail 操作:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});

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

ga('send', 'pageview');       // Send product details view with the initial pageview.

衡量在购物车中添加或移除商品的操作

用户将产品添加到购物车中,表现出了购买意愿。

如需衡量在购物车中添加或移除商品的操作,请使用 ec:addProduct 并将操作类型设置为 addremove

// 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.
}

衡量结账流程

现在用户已准备好开始结账流程,在此例中结账流程将由 2 步组成,每一步都有自己的页面:

  • 添加付款明细 (payment.html)。
  • 添加配送详情 (shipping.html)。

如果适用,请确保您已在网页界面“管理”部分的电子商务设置下恰当配置结账漏斗。例如:

Google Analytics(分析)网页界面“管理”部分中的“电子商务设置”。开启了电子商务功能,为 2 个结账漏斗步骤添加了标签:1. 付款明细,2. 配送详情
图 2:电子商务设置 - 结账漏斗

第 1 步 - 付款

如需衡量结账流程的第一步,请为购物车中的每个产品使用 ec:addProduct,并使用 ec:setAction 指示操作类型是 checkoutec:setAction 会带有一个 actionFieldObject 以便说明结账步骤序号,并通过 option 字段提供此用户的默认付款方式等额外信息:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

// In the case of checkout actions, an additional actionFieldObject can
// specify a checkout step and option.
ga('ec:setAction','checkout', {
    'step': 1,            // A value of 1 indicates this action is first checkout step.
    'option': 'Visa'      // Used to specify additional info about a checkout stage, e.g. payment method.
});
ga('send', 'pageview');   // Pageview for payment.html

第 2 步 - 配送

如需衡量结账流程的第二步,请为购物车中的每个产品使用 ec:addProduct,并使用 ec:setAction 指示操作类型是 checkout。在本示例中,我们在发送初始网页浏览数据时并没有掌握所选配送方式这一额外信息,因此将使用 ec:setAction 指示操作类型是 checkout_option,以便单独处理这一额外信息。

// Measure checkout step 2:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    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','checkout', {'step': 2});
ga('send', 'pageview');     // Pageview for shipping.html


// Called when user has completed shipping options.
function onShippingComplete(stepNumber, shippingOption) {
  ga('ec:setAction', 'checkout_option', {
    'step': stepNumber,
    'option': shippingOption
  });

  ga('send', 'event', 'Checkout', 'Option', {
     hitCallback: function() {
       // Advance to next page.
     }
  });
}

表单可按以下方式实现:

<a href="/next-page.html"
   onclick="onShippingComplete(2, 'FedEx'); return !ga.loaded;">
  Continue
</a>

衡量交易情况

最后,用户完成了结账流程,并提交了其购买订单。

如需衡量一个或多个产品的销售情况,请使用 ec:addProduct 添加每个产品,然后使用 ec:setAction 来指定 purchase。总收入、税费等交易级信息可通过 actionFieldObject 指定。例如:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '29.20',
  'quantity': 1
});

// Transaction level information is provided via an actionFieldObject.
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'affiliation': 'Google Store - Online',
  'revenue': '37.39',
  'tax': '2.85',
  'shipping': '5.34',
  'coupon': 'SUMMER2013'    // User added a coupon at checkout.
});

ga('send', 'pageview');     // Send transaction data with initial pageview.

指定本地货币

默认情况下,您可以通过 Google Analytics(分析)的管理网页界面为所有交易和商品配置一种通用的全局货币。系统默认会为所有商品和交易使用全局货币。使用多种货币开展交易的网站可通过电子商务插件指定交易的本地货币。

本地货币必须按 ISO 4217 标准指定。如需查看支持的转换货币的完整列表,请参阅货币代码参考

本地货币是使用 currencyCode 跟踪器属性指定的。例如,以下跟踪器将以欧元发送货币金额值:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('set', 'currencyCode', 'EUR'); // Set currency to Euros.

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '21.89',
  'quantity': 1
});

ga('ec:setAction', 'purchase', {
  id: 'T12345',
  affiliation: 'Google Store - Online',
  revenue: '28.03',
  tax: '2.14',
  shipping: '4.00',
  coupon: 'SUMMER2013'
});

ga('send', 'pageview');