Thương mại điện tử nâng cao

Trình bổ trợ thương mại điện tử nâng cao cho analytics.js cho phép đo lường mức độ tương tác của người dùng với sản phẩm trên trang web thương mại điện tử trong trải nghiệm mua sắm của người dùng, bao gồm: lượt hiển thị sản phẩm, lượt nhấp vào sản phẩm, xem chi tiết sản phẩm, thêm sản phẩm vào giỏ hàng, bắt đầu quy trình thanh toán, giao dịch và hoàn tiền.

Di chuyển và tương thích với plugin thương mại điện tử (ecommerce.js)

Nếu bạn đã triển khai tính năng đo lường Thương mại điện tử và muốn bắt đầu sử dụng tính năng Thương mại điện tử nâng cao, bạn có hai lựa chọn chính:

Sử dụng một tài sản mới

Bạn có thể thêm trình theo dõi bổ sung cho một tài sản mới tạo và gắn thẻ/bật tính năng Thương mại điện tử nâng cao cho tài sản mới. Xem bài viết Làm việc với nhiều đối tượng theo dõi để biết thông tin chi tiết về cách gửi dữ liệu đến nhiều tài sản trên một trang.

Di chuyển tài sản hiện có

Để di chuyển từ trình bổ trợ thương mại điện tử sang trình bổ trợ thương mại điện tử nâng cao, người dùng analytics.js hiện tại phải xoá và thay thế các tệp tham chiếu bằng mã thương mại điện tử nâng cao.

Nếu đang sử dụng ga.js, trước tiên, bạn cần di chuyển sang analytics.js trước khi sử dụng trình bổ trợ thương mại điện tử nâng cao.

Dữ liệu giao dịch và mặt hàng được thu thập trước đây bằng trình bổ trợ ecommerce.js sẽ không bị ảnh hưởng trong quá trình di chuyển này và sẽ vẫn có sẵn trong các tài sản và hồ sơ mà ban đầu chúng được gửi đến.

Các hành động và loại dữ liệu thương mại điện tử nâng cao

Bạn có thể gửi nhiều loại dữ liệu thương mại điện tử:

Dữ liệu lượt hiển thị

Biểu thị thông tin về một sản phẩm đã được xem. Thuộc tính này được gọi là impressionFieldObject và chứa các giá trị sau:

Khoá Loại giá trị Bắt buộc Nội dung mô tả
id văn bản *Có

Mã sản phẩm hoặc SKU (ví dụ: P67890).

* Bạn phải đặt một trong số id hoặc name.

name văn bản *Có

Tên của sản phẩm (ví dụ: áo phông Android).

* Bạn phải đặt một trong số id hoặc name.

list văn bản Không Danh sách hoặc bộ sưu tập chứa sản phẩm (ví dụ: Kết quả tìm kiếm)
list_name văn bản Không Danh sách hoặc bộ sưu tập chứa sản phẩm (ví dụ: Kết quả tìm kiếm)
brand văn bản Không Thương hiệu liên kết với sản phẩm (ví dụ: Google).
category văn bản Không Danh mục chứa sản phẩm (ví dụ: Quần áo). Sử dụng / làm dấu phân cách để chỉ định tối đa 5 cấp phân cấp (ví dụ: Trang phục/Nam/Áo phông).
variant văn bản Không Biến thể của sản phẩm (ví dụ: Đen).
position số nguyên Không Vị trí của sản phẩm trong danh sách hoặc bộ sưu tập (ví dụ: 2).
list_position số nguyên Không Vị trí của sản phẩm trong danh sách hoặc bộ sưu tập (ví dụ: 2).
price number Không Giá của một sản phẩm (ví dụ: 29.20).

Dữ liệu sản phẩm

Dữ liệu sản phẩm thể hiện từng sản phẩm riêng lẻ đã được xem, được thêm vào giỏ hàng, v.v. Dữ liệu này được gọi là productFieldObject và chứa các giá trị sau:

Khoá Loại giá trị Bắt buộc Nội dung mô tả
id văn bản *Có

Mã sản phẩm hoặc SKU (ví dụ: P67890).

* Bạn phải đặt một trong số các giá trị nhận dạng hoặc name.

name văn bản *Có

Tên của sản phẩm (ví dụ: áo phông Android).

* Bạn phải đặt một trong số các giá trị nhận dạng hoặc name.

brand văn bản Không Thương hiệu liên kết với sản phẩm (ví dụ: Google).
category văn bản Không Danh mục chứa sản phẩm (ví dụ: Quần áo). Sử dụng / làm dấu phân cách để chỉ định tối đa 5 cấp phân cấp (ví dụ: Trang phục/Nam/Áo phông).
variant văn bản Không Biến thể của sản phẩm (ví dụ: Đen).
price number Không Giá của một sản phẩm (ví dụ: 29.20).
quantity số nguyên Không Số lượng của một sản phẩm (ví dụ: 2).
coupon văn bản Không Mã giảm giá liên kết với một sản phẩm (ví dụ: SUMMER_Sale13).
position số nguyên Không Vị trí của sản phẩm trong danh sách hoặc bộ sưu tập (ví dụ: 2).
list_position số nguyên Không Vị trí của sản phẩm trong danh sách hoặc bộ sưu tập (ví dụ: 2).

Dữ liệu khuyến mãi

Thể hiện thông tin về một chương trình khuyến mãi đã được xem. Thuộc tính này được gọi là promoFieldObject và chứa các giá trị sau:

Khoá Loại giá trị Bắt buộc Nội dung mô tả
id văn bản *Có

Mã khuyến mãi (ví dụ: PROMO_1234).

* Bạn phải đặt một trong số id hoặc name.

name văn bản *Có

Tên của chương trình khuyến mãi (ví dụ: Giảm giá mùa hè).

* Bạn phải đặt một trong số id hoặc name.

creative văn bản Không Mẫu quảng cáo được liên kết với chương trình khuyến mãi (ví dụ: spring_banner2).
creative_name văn bản Không Tên của mẫu quảng cáo (ví dụ: spring_banner2).
position văn bản Không Vị trí của mẫu quảng cáo (ví dụ: banner_slot_1).
creative_slot văn bản Không Tên của vùng mẫu quảng cáo (ví dụ: banner_slot_1).

Dữ liệu hành động

Biểu thị thông tin về hành động liên quan đến thương mại điện tử đã diễn ra. Thuộc tính này được gọi là actionFieldObject và chứa các giá trị sau:

Khoá Loại giá trị Bắt buộc Nội dung mô tả
id văn bản *Có

Mã giao dịch (ví dụ: T1234).

* Bắt buộc nếu loại thao tác là purchase hoặc refund

affiliation văn bản Không Cửa hàng hoặc đơn vị liên kết đã diễn ra giao dịch này (ví dụ: Google Store).
revenue number Không

Cho biết tổng doanh thu hoặc tổng doanh thu liên quan đến giao dịch (ví dụ: 11,99). Giá trị này có thể bao gồm chi phí vận chuyển, thuế hoặc các khoản điều chỉnh khác đối với tổng doanh thu mà bạn muốn đưa vào tính toán doanh thu.

value number Không Giá trị (tức là doanh thu) liên quan đến sự kiện.
tax number Không Tổng thuế liên quan đến giao dịch.
shipping number Không Phí vận chuyển liên quan đến giao dịch.
coupon văn bản Không Đã sử dụng phiếu giảm giá giao dịch cùng với giao dịch.
list văn bản Không Danh sách chứa các sản phẩm được liên kết. Không bắt buộc.
items mảng Không Mảng chứa các sản phẩm được liên kết.
step số nguyên Không Số đại diện cho một bước trong quy trình thanh toán. Không bắt buộc trên các thao tác "checkout".
checkout_step số nguyên Không Số đại diện cho một bước trong quy trình thanh toán.
option văn bản Không Trường bổ sung cho những thao tác checkoutcheckout_option có thể mô tả thông tin về lựa chọn trên trang thanh toán, chẳng hạn như phương thức thanh toán đã chọn.
checkout_option văn bản Không Tuỳ chọn thanh toán (tức là phương thức thanh toán đã chọn).

Hành động đối với sản phẩm và chương trình khuyến mãi

Hành động chỉ định cách diễn giải dữ liệu sản phẩm và chương trình khuyến mãi mà bạn gửi đến Google Analytics.

Hành động Sự kiện Nội dung mô tả
click Lượt nhấp vào một sản phẩm hoặc đường liên kết đến một hoặc nhiều sản phẩm.
detail Chế độ xem chi tiết sản phẩm.
add Thêm một hoặc nhiều sản phẩm vào giỏ hàng.
remove Xoá một hoặc nhiều sản phẩm khỏi giỏ hàng.
checkout Bắt đầu quy trình thanh toán cho một hoặc nhiều sản phẩm.
checkout_option Gửi giá trị tuỳ chọn cho một bước thanh toán nhất định.
purchase Bán một hoặc nhiều sản phẩm.
refund Khoản tiền hoàn lại cho một hoặc nhiều sản phẩm.
promo_click Lượt nhấp vào chương trình khuyến mãi nội bộ.
add_to_cart Người dùng thêm một hoặc nhiều sản phẩm vào giỏ hàng.
begin_checkout Một người dùng bắt đầu quy trình thanh toán cho một hoặc nhiều sản phẩm.
checkout_progress Người dùng hoàn tất các bước thanh toán sau bước thanh toán đầu tiên.
purchase Người dùng hoàn tất một giao dịch mua hàng.
refund Người dùng được hoàn tiền cho một hoặc nhiều sản phẩm.
remove_from_cart Người dùng xoá một hoặc nhiều sản phẩm khỏi giỏ hàng.
select_content Người dùng nhấp vào một sản phẩm hoặc đường liên kết đến sản phẩm.
set_checkout_option Bước thanh toán mà người dùng đang hoàn tất.
view_item Người dùng xem thông tin chi tiết về một sản phẩm.
view_item_list Người dùng xem danh sách một hoặc nhiều sản phẩm.
view_promotion Người dùng nhấp vào chương trình khuyến mãi nội bộ.
view_refund Người dùng xem khoản tiền hoàn lại cho một hoặc nhiều sản phẩm.

Triển khai

Các phần sau đây mô tả cách triển khai trình bổ trợ thương mại điện tử nâng cao để đo lường hoạt động thương mại điện tử trên trang web bằng thư viện analytics.js.

Tải trình bổ trợ thương mại điện tử

Để giảm kích thước của thư viện analytics.js, tính năng thương mại điện tử nâng cao không được cung cấp trong thư viện mặc định. Thay vào đó, mô-đun này được cung cấp dưới dạng một mô-đun trình bổ trợ phải được tải trước khi sử dụng.

Để tải trình bổ trợ thương mại điện tử nâng cao, hãy dùng lệnh sau:

ga('require', 'ec');

Lệnh này phải xảy ra sau khi bạn tạo đối tượng trình theo dõi và trước khi bạn sử dụng bất kỳ chức năng nào trong số các chức năng dành riêng cho thương mại điện tử nâng cao.

Gửi dữ liệu thương mại điện tử nâng cao

Sau khi tải, một vài lệnh mới dành riêng cho thương mại điện tử nâng cao sẽ được thêm vào trình theo dõi mặc định và bạn có thể bắt đầu gửi dữ liệu thương mại điện tử.

Đo lường hoạt động thương mại điện tử

Thông thường, quy trình triển khai sự kiện thương mại điện tử nâng cao sẽ đo lường số lượt hiển thị sản phẩm và bất kỳ hành động nào sau đây:

  • Số lượt nhấp vào đường liên kết sản phẩm.
  • Xem chi tiết sản phẩm.
  • Số lượt hiển thị và lượt nhấp của chương trình khuyến mãi nội bộ.
  • Thêm/xoá sản phẩm khỏi giỏ hàng.
  • Bắt đầu quy trình thanh toán cho một sản phẩm.
  • Giao dịch mua và hoàn tiền.

Đo lường số lượt hiển thị

Số lượt hiển thị sản phẩm được đo lường bằng lệnh ec:addImpression. Thông tin chi tiết về sản phẩm được thêm trong impressionFieldObject.

Ví dụ: mã sau đây đo lường lượt hiển thị của một sản phẩm trong danh sách kết quả tìm kiếm:

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 phải có giá trị name hoặc id. Tất cả các giá trị khác là không bắt buộc và không cần phải đặt.

Hành động đo lường

Các hành động được đo lường bằng cách sử dụng lệnh ec:addProduct với productFieldObject để thêm chi tiết sản phẩm và lệnh ec:setAction để chỉ định hành động đang được thực hiện.

Ví dụ: Mã sau đây đo lường một lượt nhấp vào đường liên kết sản phẩm xuất hiện trong danh sách kết quả tìm kiếm:

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 phải có giá trị name hoặc id. Tất cả các giá trị khác là không bắt buộc và không cần phải đặt.

Kết hợp lượt hiển thị và hành động

Trong trường hợp mà bạn có cả lượt hiển thị sản phẩm và hành động, bạn có thể kết hợp và đo lường chỉ số này trong một lượt truy cập duy nhất.

Ví dụ bên dưới cho biết cách đo lường chế độ xem chi tiết sản phẩm bằng mục sản phẩm có liên quan:

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

Đo lường giao dịch

Đo lường một giao dịch bằng cách dùng lệnh ec:setAction và đặt loại hành động thành purchase. Thông tin chi tiết về cấp giao dịch như tổng doanh thu, thuế và thông tin vận chuyển được cung cấp trong 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).
});

actionFieldObject phải có giá trị id nếu loại hành động là purchase hoặc refund. Tất cả các giá trị khác là không bắt buộc và không cần phải đặt.

Đo lường số tiền hoàn lại

Để hoàn tiền toàn bộ giao dịch, hãy đặt thao tác refund và cung cấp mã giao dịch:

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

Nếu không tìm thấy giao dịch trùng khớp, hệ thống sẽ không xử lý lượt truy cập refund.

Để đo lường khoản hoàn tiền một phần, hãy đặt thao tác refund và chỉ định mã giao dịch, (các) mã sản phẩm cũng như số lượng sản phẩm cần hoàn tiền:

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

Sử dụng các sự kiện không tương tác để hoàn tiền

Nếu cần gửi dữ liệu hoàn tiền bằng một sự kiện và sự kiện đó không thuộc hành vi được đo lường bình thường trên trang web (tức là không do người dùng thực hiện), thì bạn nên gửi sự kiện không tương tác. Việc này sẽ ngăn các chỉ số như tỷ lệ thoát, thời gian trên trang web, v.v. không bị sự kiện này ảnh hưởng. Ví dụ:

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

Đo lường quy trình thanh toán

Cách đo lường từng bước trong quy trình thanh toán:

  • Thêm mã để đo lường từng bước của quy trình thanh toán.
  • Nếu có thể, hãy thêm mã để đo lường các hình thức thanh toán.
  • Nếu muốn, bạn có thể đặt tên bước thân thiện với người dùng cho báo cáo phễu thanh toán bằng cách định cấu hình Cài đặt thương mại điện tử trong phần quản trị của giao diện web.

1. Đo lường các bước thanh toán

Đối với mỗi bước trong quy trình thanh toán, bạn cần triển khai mã tương ứng để gửi dữ liệu đến Google Analytics:

  • step Trường

    Đối với mỗi bước thanh toán mà bạn đo lường, bạn nên thêm giá trị step. Giá trị này được dùng để liên kết các hành động thanh toán của bạn với những nhãn mà bạn đã định cấu hình cho từng bước trong phần Cài đặt thương mại điện tử.

  • option Trường

    Nếu có thêm thông tin về bước thanh toán nhất định tại thời điểm bước đó được đo lường, bạn có thể đặt trường option bằng hành động checkout để thu thập thông tin này. Ví dụ: loại thanh toán mặc định cho người dùng (ví dụ: Visa).

  • Đo lường bước thanh toán

    Để đo lường một bước thanh toán, hãy sử dụng ec:addProduct cho từng sản phẩm và ec:setAction chỉ báo một bước thanh toán. Nếu thích hợp, ec:setAction có thể lấy thêm một actionFieldObject để mô tả bước thanh toán bằng stepoption.

    Ví dụ sau đây cho biết cách đo lường bước đầu tiên của quy trình thanh toán, với một sản phẩm duy nhất và một số thông tin bổ sung về loại hình thanh toán:

    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. Đo lường các tuỳ chọn thanh toán

Các tuỳ chọn thanh toán cho phép bạn đo lường thêm thông tin về trạng thái của quy trình thanh toán. Điều này hữu ích trong trường hợp bạn đã đo lường một bước thanh toán trong lần xem trang ban đầu nhưng thông tin bổ sung về cùng một bước thanh toán đó sẽ xuất hiện sau khi người dùng đặt lựa chọn của bạn. Ví dụ: người dùng chọn một phương thức vận chuyển.

Để đo lường một tuỳ chọn thanh toán, hãy sử dụng ec:setAction để biểu thị checkout_option, đồng thời bao gồm số bước và nội dung mô tả tuỳ chọn.

Bạn nên đo lường hành động này sau khi người dùng nhấp để chuyển sang bước tiếp theo trong quy trình thanh toán. Ví dụ:

// (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. Cấu hình phễu thanh toán

Bạn có thể đặt một tên mô tả cho mỗi bước trong quy trình thanh toán để sử dụng trong các báo cáo. Để định cấu hình các tên này, hãy truy cập vào phần Quản trị của Giao diện web Google Analytics, chọn chế độ xem (hồ sơ) và nhấp vào Cài đặt thương mại điện tử. Làm theo hướng dẫn thiết lập Thương mại điện tử để gắn nhãn từng bước thanh toán mà bạn định đo lường.

Cài đặt thương mại điện tử trong phần Quản trị trên giao diện web
     Google Analytics. Đã bật tính năng Thương mại điện tử và thêm 4 nhãn bước phễu thanh toán: 1. Xem lại giỏ hàng, 2. Thu thập thông tin thanh toán, 3. Xác nhận thông tin mua hàng, 4. Biên nhận
Hình 1: Thiết lập thương mại điện tử – Phễu thanh toán

Đo lường quảng cáo nội bộ

Trình bổ trợ thương mại điện tử nâng cao hỗ trợ việc đo lường số lượt hiển thị và số lượt nhấp vào chương trình khuyến mãi nội bộ, chẳng hạn như các biểu ngữ hiển thị để quảng bá chương trình ưu đãi trên một phần khác của trang web.

Số lượt hiển thị quảng cáo

Số lượt hiển thị quảng cáo nội bộ thường được đo khi trang tải và được gửi cùng với lượt xem trang ban đầu bằng cách sử dụng lệnh ec:addPromo. Ví dụ:

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).
});

Số nhấp chuột vào quảng cáo

Bạn có thể đo lường số lượt nhấp vào chương trình khuyến mãi nội bộ bằng cách đặt hành động promo_click. Ví dụ:

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

Ví dụ: để đo lường một trang chi tiết sản phẩm có một lượt hiển thị và một lượt nhấp vào quảng cáo, trước tiên hãy gửi dữ liệu về sản phẩm và lượt hiển thị với số lượt xem trang ban đầu, sau đó gửi dữ liệu về lượt nhấp vào quảng cáo trong một sự kiện riêng:

// 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 phải có giá trị name hoặc id. Tất cả các giá trị khác là không bắt buộc và không cần đặt.

Ví dụ đầy đủ

Các đoạn mã dưới đây cho thấy cách đo lường vòng đời thương mại điện tử của một sản phẩm từ lần hiển thị đầu tiên đến khi giao dịch bằng trình bổ trợ thương mại điện tử nâng cao.

Đo lường lượt hiển thị sản phẩm

Trong ví dụ này, trước tiên, người dùng sẽ xem sản phẩm trong danh sách kết quả tìm kiếm. Để đo lường lượt hiển thị sản phẩm này, hãy sử dụng lệnh ec:addImpression và cung cấp chi tiết sản phẩm trong một 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.

Đo lường lượt nhấp vào sản phẩm

Tiếp theo, người dùng thể hiện sự quan tâm đến sản phẩm cụ thể này bằng cách nhấp vào trang thông tin sản phẩm để xem thêm chi tiết.

Để đo lường lượt nhấp vào sản phẩm đó, hãy sử dụng 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';
    }
  });
}

Sau đó, đường liên kết sản phẩm có thể được triển khai như sau:

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

Đo lường chế độ xem chi tiết sản phẩm

Sau khi nhấp vào trang thông tin sản phẩm, người dùng sẽ xem trang chi tiết sản phẩm.

Để đo lường chế độ xem chi tiết sản phẩm này, hãy sử dụng ec:addProductec:setAction để chỉ định một hành động 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.

Đo lường hành động thêm hoặc xóa khỏi giỏ hàng

Người dùng thể hiện ý định mua mặt hàng bằng cách thêm mặt hàng đó vào giỏ hàng.

Để đo lường lượt thêm hoặc xoá sản phẩm khỏi giỏ hàng, hãy sử dụng ec:addProduct và đặt loại add hoặc remove:

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

Đo lường quy trình thanh toán

Bây giờ, người dùng đã sẵn sàng bắt đầu quy trình thanh toán. Trong ví dụ này, bao gồm 2 bước, mỗi bước nằm trên các trang riêng biệt:

  • Thêm thông tin thanh toán (payment.html).
  • Thêm thông tin vận chuyển (shipping.html).

Nếu có thể, hãy đảm bảo bạn đã định cấu hình phễu quy trình thanh toán đúng cách trong mục Quản trị giao diện web trong phần Cài đặt thương mại điện tử. Ví dụ:

Cài đặt thương mại điện tử trong phần Quản trị trên giao diện web
     Google Analytics. Đã bật tính năng Thương mại điện tử và thêm nhãn bước kênh thanh toán: 1. Chi tiết thanh toán và 2. Chi tiết giao hàng
Hình 2: Thiết lập thương mại điện tử – Phễu thanh toán

Bước 1 – Thanh toán

Để đo lường bước đầu tiên của quy trình thanh toán, hãy sử dụng ec:addProduct cho từng sản phẩm trong giỏ hàng và ec:setAction để biểu thị checkout. ec:setAction lấy actionFieldObject để mô tả bước thanh toán bằng số và thông tin bổ sung về hình thức thanh toán mặc định cho người dùng này bằng cách sử dụng trường 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

Bước 2 – Giao hàng

Để đo lường bước thứ hai của quy trình thanh toán, hãy sử dụng ec:addProduct cho từng sản phẩm trong giỏ hàng và ec:setAction để chỉ định quy trình thanh toán. Trong trường hợp này, chúng tôi không có thêm thông tin về lựa chọn vận chuyển đã chọn khi lượt xem trang ban đầu được gửi. Vì vậy, vấn đề này sẽ được xử lý riêng bằng cách sử dụng ec:setAction để biểu thị 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.
     }
  });
}

Sau đó, biểu mẫu có thể được triển khai như sau:

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

Đo lường giao dịch

Cuối cùng, người dùng hoàn tất quy trình thanh toán và gửi giao dịch mua.

Để đo lường doanh số bán một hoặc nhiều sản phẩm, hãy sử dụng ec:addProduct để thêm từng sản phẩm, sau đó sử dụng ec:setAction để chỉ định purchase. Bạn có thể chỉ định thông tin cấp giao dịch như tổng doanh thu, thuế, v.v. thông qua actionFieldObject. Ví dụ:

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.

Chỉ định đơn vị tiền tệ cục bộ

Theo mặc định, bạn có thể định cấu hình một đơn vị tiền tệ chung, chung cho tất cả các giao dịch và mục thông qua giao diện web quản lý Google Analytics. Theo mặc định, đơn vị tiền tệ toàn cầu sẽ được sử dụng cho tất cả các mặt hàng và giao dịch. Đối với các trang web thực hiện giao dịch bằng nhiều đơn vị tiền tệ, trình bổ trợ thương mại điện tử cho phép bạn chỉ định nội tệ của giao dịch.

Bạn phải chỉ định nội tệ theo tiêu chuẩn ISO 4217. Hãy đọc tài liệu Tham khảo về mã đơn vị tiền tệ để biết danh sách đầy đủ các loại tiền tệ được hỗ trợ.

Nội tệ được chỉ định bằng thuộc tính trình theo dõi currencyCode. Ví dụ: trình theo dõi này sẽ gửi giá trị đơn vị tiền tệ dưới dạng Euro:

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