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

Hướng dẫn này mô tả cách thu thập dữ liệu thương mại điện tử bằng analytics.js.

Tổng quan

Tính năng đo lường thương mại điện tử giúp bạn đo lường số lượng giao dịch và doanh thu mà trang web của bạn tạo ra. Trên trang web thương mại điện tử thông thường, khi người dùng nhấp vào nút "mua hàng" trong trình duyệt, thông tin mua hàng của người dùng sẽ được gửi đến máy chủ web để thực hiện giao dịch. Nếu thành công, máy chủ sẽ chuyển hướng người dùng đến trang "Cảm ơn" hoặc trang biên nhận có thông tin giao dịch và biên nhận mua hàng. Bạn có thể sử dụng thư viện analytics.js để gửi dữ liệu thương mại điện tử từ trang "Cảm ơn" đến Google Analytics.

Bạn có thể gửi hai loại dữ liệu thương mại điện tử bằng cách sử dụng analytics.js: dữ liệu transactionitem.

Dữ liệu giao dịch

Giao dịch đại diện cho toàn bộ giao dịch diễn ra trên trang web của bạn và có 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 Mã giao dịch. (ví dụ: 1234)
affiliation văn bản Không Cửa hàng hoặc đơn vị liên kết đã thực hiện giao dịch này (ví dụ: Acme Quần áo).
revenue currency 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 khi tính toán doanh thu.
shipping currency Không Cho biết tổng phí vận chuyển của giao dịch. (ví dụ: 5)
tax currency Không Cho biết tổng thuế của giao dịch. (ví dụ: 1.29)

Dữ liệu về mục

Một mặt hàng đại diện cho từng sản phẩm có trong giỏ hàng 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 Mã giao dịch. Mã này liên kết các mặt hàng với giao dịch chứa những mặt hàng đó. (ví dụ: 1234)
name văn bản Tên mục. (ví dụ: Thỏ hồng lông mịn)
sku văn bản Không Chỉ định SKU hoặc mã mặt hàng. (ví dụ: SKU47)
category văn bản Không Danh mục chứa mặt hàng đó (ví dụ: Đồ chơi tiệc tùng)
price currency Không Đơn vị, giá của từng mặt hàng. (ví dụ: 11.99)
quantity số nguyên Không Số lượng đơn vị được mua trong giao dịch. Nếu chuyển một giá trị không phải là số nguyên vào trường này (ví dụ: 1,5), giá trị đó sẽ được làm tròn thành giá trị số nguyên gần nhất.

Triển khai

Bạn thường triển khai hoạt động đo lường thương mại điện tử sau khi người dùng hoàn tất quy trình thanh toán. Lệnh này thường diễn ra trên trang "Cảm ơn". Khi đã sẵn sàng gửi dữ liệu thương mại điện tử đến Google Analytics, bạn cần thực hiện một số bước sau:

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 đo lường thương mại điện tử 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ô-đ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ử, hãy dùng lệnh sau:

ga('require', 'ecommerce');

Lệnh này phải xuất hiện 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 dành riêng cho thương mại điện tử.

Sau khi tải, một vài lệnh mới dành riêng cho hoạt động đo lường thương mại điện tử sẽ được thêm vào trình theo dõi mặc định.

Thêm giao dịch

Khi đã tải xong, trình bổ trợ sẽ tạo một đối tượng giỏ hàng trong suốt. Bạn có thể thêm dữ liệu giao dịch và dữ liệu mặt hàng vào giỏ hàng. Sau khi định cấu hình đầy đủ, bạn có thể gửi tất cả dữ liệu cùng một lúc.

Bạn thêm dữ liệu giao dịch vào giỏ hàng bằng lệnh ecommerce:addTransaction:

ga('ecommerce:addTransaction', {
  'id': '1234',                     // Transaction ID. Required.
  'affiliation': 'Acme Clothing',   // Affiliation or store name.
  'revenue': '11.99',               // Grand Total.
  'shipping': '5',                  // Shipping.
  'tax': '1.29'                     // Tax.
});

Thêm mục

Tiếp theo, để thêm mặt hàng vào giỏ hàng, bạn sử dụng lệnh ecommerce:addItem:

ga('ecommerce:addItem', {
  'id': '1234',                     // Transaction ID. Required.
  'name': 'Fluffy Pink Bunnies',    // Product name. Required.
  'sku': 'DD23444',                 // SKU/code.
  'category': 'Party Toys',         // Category or variation.
  'price': '11.99',                 // Unit price.
  'quantity': '1'                   // Quantity.
});

Đang gửi dữ liệu

Cuối cùng, sau khi định cấu hình tất cả dữ liệu thương mại điện tử của mình trong giỏ hàng, bạn sẽ gửi dữ liệu đó đến Google Analytics bằng lệnh ecommerce:send:

ga('ecommerce:send');

Lệnh này sẽ đi qua từng giao dịch và mặt hàng trong giỏ hàng, đồng thời gửi dữ liệu tương ứng đến Google Analytics. Sau khi hoàn tất, giỏ hàng sẽ được xoá và sẵn sàng gửi dữ liệu cho giao dịch mới. Nếu một lệnh ecommerce:send trước đó đã được phát hành, thì chỉ dữ liệu giao dịch và mặt hàng mới sẽ được gửi.

Xoá dữ liệu

Nếu cần xoá giỏ hàng của tất cả các giao dịch và mặt hàng theo cách thủ công, bạn hãy sử dụng lệnh sau:

ga('ecommerce:clear');

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ệ chung đượ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 cũng như từng sản phẩm riêng lẻ.

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 đơn vị tiền tệ được hỗ trợ.

Để đặt nội tệ của một giao dịch cụ thể và tất cả các mục của giao dịch đó, bạn chỉ cần chỉ định đơn vị tiền tệ cho giao dịch đó:

ga('ecommerce:addTransaction', {
  'id': '1234',
  'affiliation': 'Acme Clothing',
  'revenue': '11.99',
  'shipping': '5',
  'tax': '1.29',
  'currency': 'EUR'  // local currency code.
});

Cuối cùng, bạn cũng có thể chỉ định đơn vị tiền tệ cho mỗi mặt hàng:

  ga('ecommerce:addItem', {
    'id': '1234',
    'name': 'Fluffy Pink Bunnies',
    'sku': 'DD23444',
    'category': 'Party Toys',
    'price': '11.99',
    'quantity': '1',
    'currency': 'GBP' // local currency code.
  });

Hỗ trợ nhiều thiết bị theo dõi

Bạn cũng có thể sử dụng trình bổ trợ thương mại điện tử nếu đã triển khai nhiều trình theo dõi (được đặt tên) trên trang của mình. Trình bổ trợ này hoạt động giống hệt như trình theo dõi mặc định, ngoại trừ định dạng là: trackerName.pluginName:method. Ví dụ: nếu bạn đã tạo một trình theo dõi có tên myTracker:

ga('create', 'UA-XXXXX-Y', 'auto', {'name': 'myTracker'});

Sau đó, bạn sẽ tải trình bổ trợ thương mại điện tử cho trình theo dõi được đặt tên đó bằng cách sử dụng:

ga('myTracker.require', 'ecommerce');

Để gửi một giao dịch, bạn có thể tạo một đối tượng giao dịch rồi truyền đối tượng đó đến trình theo dõi đã đặt tên như sau:

var transaction = {
  'id': '1234',                    // Transaction ID.
  'affiliation': 'Acme Clothing',  // Affiliation or store name.
  'revenue': '11.99',              // Grand Total.
  'shipping': '5' ,                // Shipping.
  'tax': '1.29'                    // Tax.
};

ga('myTracker.ecommerce:addTransaction', transaction);

Khi sử dụng cú pháp này, bạn có thể sử dụng đối tượng giao dịch trên nhiều trình theo dõi.

Cuối cùng, bạn sẽ gửi dữ liệu giao dịch như sau:

ga('myTracker.ecommerce:send');

Ví dụ:

Hầu hết các trang web thương mại điện tử thực hiện giao dịch trên máy chủ, trong khi thư viện analytics.js gửi dữ liệu đến Google Analytics từ trình duyệt. Vì vậy, máy chủ và ứng dụng cần có sự phối hợp một chút để gửi dữ liệu thương mại điện tử đến Google Analytics đúng cách.

Hầu hết các trang web thương mại điện tử đều hiển thị trang "Cảm ơn" bằng một công cụ tạo mẫu phía máy chủ. Trong trường hợp này, bạn sẽ thêm mã đo lường thương mại điện tử vào mẫu phía máy chủ và sử dụng logic máy chủ để tự động ghi các giá trị dữ liệu thương mại điện tử vào trang cuối cùng. Sau đây là một ví dụ về định dạng này sẽ được hiển thị trong PHP.

Trong PHP, bạn thường sẽ trình bày một số dữ liệu thương mại điện tử. Trong ví dụ này, dữ liệu được lưu trữ trong một mảng liên kết:

<?php
// Transaction Data
$trans = array('id'=>'1234', 'affiliation'=>'Acme Clothing',
               'revenue'=>'11.99', 'shipping'=>'5', 'tax'=>'1.29');

// List of Items Purchased.
$items = array(
  array('sku'=>'SDFSDF', 'name'=>'Shoes', 'category'=>'Footwear', 'price'=>'100', 'quantity'=>'1'),
  array('sku'=>'123DSW', 'name'=>'Sandals', 'category'=>'Footwear', 'price'=>'87', 'quantity'=>'1'),
  array('sku'=>'UHDF93', 'name'=>'Socks', 'category'=>'Footwear', 'price'=>'5.99', 'quantity'=>'2')
);
?>

Bước đầu tiên là viết một số logic để chuyển đổi dữ liệu thương mại điện tử thành chuỗi JavaScript theo yêu cầu của analytics.js:

<?php
// Function to return the JavaScript representation of a TransactionData object.
function getTransactionJs(&$trans) {
  return <<<HTML
ga('ecommerce:addTransaction', {
  'id': '{$trans['id']}',
  'affiliation': '{$trans['affiliation']}',
  'revenue': '{$trans['revenue']}',
  'shipping': '{$trans['shipping']}',
  'tax': '{$trans['tax']}'
});
HTML;
}

// Function to return the JavaScript representation of an ItemData object.
function getItemJs(&$transId, &$item) {
  return <<<HTML
ga('ecommerce:addItem', {
  'id': '$transId',
  'name': '{$item['name']}',
  'sku': '{$item['sku']}',
  'category': '{$item['category']}',
  'price': '{$item['price']}',
  'quantity': '{$item['quantity']}'
});
HTML;
}
?>

Sau đó, trong thẻ <script>, bạn sẽ thêm logic PHP bổ sung để xuất dữ liệu giao dịch và mặt hàng một cách linh động:

<!-- Begin HTML -->
<script>
ga('require', 'ecommerce');

<?php
echo getTransactionJs($trans);

foreach ($items as &$item) {
  echo getItemJs($trans['id'], $item);
}
?>

ga('ecommerce:send');
</script>

Sau khi tập lệnh PHP hoàn tất việc thực thi, dữ liệu giao dịch và mặt hàng theo yêu cầu của analytics.js sẽ được in vào trang. Khi JavaScript trên trang được hiển thị trong trình duyệt, tất cả dữ liệu thương mại điện tử sẽ được gửi đến Google Analytics.

Loại đơn vị tiền tệ

Loại đơn vị tiền tệ mặc định có thể được định cấu hình thông qua Giao diện quản lý. Khi bạn gửi giá trị đơn vị tiền tệ bằng analytics.js, giá trị này sẽ đại diện cho tổng giá trị của một đơn vị tiền tệ.

Bạn có thể dùng dấu thập phân làm dấu phân cách giữa phần nguyên và phần thập phân của đơn vị tiền tệ. Độ chính xác lên tới 6 chữ số phần thập phân. Giá trị sau đây là hợp lệ đối với trường đơn vị tiền tệ:

1000.000001

Sau khi giá trị được gửi đến Google Analytics, tất cả văn bản sẽ bị xoá cho đến chữ số đầu tiên, ký tự - hoặc ký tự . (thập phân). Vì vậy:

$-55.00

sẽ trở thành:

-55.00