Theo dõi thương mại điện tử nâng cao

Tài liệu này cung cấp cho bạn thông tin tổng quan về cách đo lường các hành động và lượt hiển thị liên quan đến thương mại điện tử trong ứng dụng bằng Google Analytics SDK phiên bản 4 dành cho Android.

Tổng quan

Thương mại điện tử nâng cao cho phép đo lường các lượt tương tác của người dùng với sản phẩm 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.

Triển khai

Tính năng đo lường thương mại điện tử nâng cao yêu cầu bạn sử dụng lớp HitBuilder và tập hợp phương thức của lớp này để gửi dữ liệu thương mại điện tử về sản phẩm, lượt hiển thị và chương trình khuyến mãi. Chúng tôi cũng cung cấp một tập hợp các lớp thương mại điện tử Google Analytics để tạo thông tin liên quan đến thương mại điện tử.

Với tính năng thương mại điện tử nâng cao, bạn có thể:

Đ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:

  • Chọn một sản phẩm.
  • Xem chi tiết sản phẩm.
  • Số lượt hiển thị và lựa chọn 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ị

Để đo lường lượt hiển thị sản phẩm, hãy tạo đối tượng Product và gửi đối tượng đó cùng với một lượt truy cập bằng cách sử dụng phương thức addImpression. Product phải có giá trị tên hoặc mã nhận dạng. Tất cả các giá trị khác là không bắt buộc và không cần phải đặt.

Product product = new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1)
    .setCustomDimension(1, "Member");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addImpression(product, "Search Results");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("searchResults");
t.send(builder.build());

Xem phần Cấu hình nâng cao để biết thông tin chi tiết về phương thức getTracker.

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

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

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

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1)
    .setCustomDimension(1, "Member");
ProductAction productAction = new ProductAction(ProductAction.ACTION_CLICK)
    .setProductActionList("Search Results");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("searchResults");
t.send(builder.build());

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

Trong trường hợp 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ần 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 product from a related products section.
Product relatedProduct =  new Product()
    .setId("P12346")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("White")
    .setPosition(1);

// The product being viewed.
Product viewedProduct =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1);

ProductAction productAction = new ProductAction(ProductAction.ACTION_DETAIL);
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addImpression(relatedProduct, "Related Products")
    .addProduct(viewedProduct)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("product");
t.send(builder.build());

Đo lường giao dịch

Đo lường một giao dịch bằng cách sử dụng phương thức addProduct với đối tượng Product để thêm chi tiết sản phẩm và phương thức setProductAction với đối tượng ProductAction để chỉ định hành động mua. 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 đối tượng ProductAction.

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("black")
    .setPrice(29.20)
    .setCouponCode("APPARELSALE")
    .setQuantity(1);
ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T12345")
    .setTransactionAffiliation("Google Store - Online")
    .setTransactionRevenue(37.39)
    .setTransactionTax(2.85)
    .setTransactionShipping(5.34)
    .setTransactionCouponCode("SUMMER2013");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("transaction");
t.send(builder.build());

Chỉ định đơn vị tiền tệ

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.

Bạn phải chỉ định nội tệ theo tiêu chuẩn ISO 4217. Hãy đọc tài liệu 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:

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("transaction");
t.set("&cu", "EUR");  // Set tracker currency to Euros.
t.send(builder.build());

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

Để hoàn tiền toàn bộ giao dịch, hãy sử dụng phương thức setProductAction với đối tượng ProductAction để chỉ định mã giao dịch và loại thao tác hoàn tiền:

// Refund an entire transaction.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");  // Transaction ID is only required field for a full refund.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("refund");
t.send(builder.build());

Nếu không tìm thấy giao dịch trùng khớp, khoản tiền hoàn lại sẽ không được xử lý.

Để đo lường khoản tiền hoàn lại một phần, hãy sử dụng phương thức setProductAction với đối tượng ProductAction để chỉ định mã giao dịch, (các) mã sản phẩm và số lượng sản phẩm cần hoàn tiền:

// Refund a single product.
Product product =  new Product()
    .setId("P12345")  // Product ID is required for partial refund.
    .setQuantity(1);  // Quanity is required for partial refund.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");  // Transaction ID is required for partial refund.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("refundProduct");
t.send(builder.build());

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 của người dùng (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. Nhờ đó, sự kiện sẽ không ảnh hưởng đến một số chỉ số nhất định. Ví dụ:

// Refund an entire transaction.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setProductAction(productAction)
    .setNonInteraction(true)
    .setCategory("Ecommerce")
    .setAction("Refund");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());

Đ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:

  1. Thêm mã theo dõi để đo lường từng bước của quy trình thanh toán.
  2. Nếu có thể, hãy thêm mã theo dõi để đo lường các lựa chọn thanh toán.
  3. Nếu muốn, hãy đặ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 phải triển khai mã theo dõi 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 với các 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 thao tác 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 phương thức addProduct với đối tượng Product để thêm chi tiết sản phẩm và phương thức setProductAction có đối tượng ProductAction để chỉ ra thao tác thanh toán. Nếu được, bạn cũng có thể đặt stepoption với quy trình thanh toán.

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:

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("black")
    .setPrice(29.20)
    .setQuantity(1);
// Add the step number and additional info about the checkout to the action.
ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT)
    .setCheckoutStep(1)
    .setCheckoutOptions("Visa");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("checkoutStep1");
t.send(builder.build());

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 nhưng thông tin bổ sung về cùng một bước thanh toán đó sẽ xuất hiện sau khi bạn đặt tuỳ chọn do người dùng chọ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 setAction để cho biết tuỳ chọn thanh toán và bao gồm số bước cũng như 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 thực hiện một số hành động để chuyển sang bước tiếp theo trong quy trình thanh toán. Ví dụ:

// (On "Next" button click.)
ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT_OPTIONS)
    .setCheckoutStep(1)
    .setCheckoutOptions("FedEx");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setProductAction(productAction)
    .setCategory("Checkout")
    .setAction("Option");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());

// 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 theo dõi.

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ộ

Tính năng 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 của chương trình khuyến mãi nội bộ, chẳng hạn như biểu ngữ hiển thị để quảng bá chương trình giảm giá.

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

Số lượt hiển thị chương trình khuyến mãi nội bộ thường được đo bằng lượt xem màn hình ban đầu, sử dụng phương thức addPromotion với đối tượng Promotion để chỉ định thông tin chi tiết về chương trình khuyến mãi. Ví dụ:

Promotion promotion = new Promotion()
    .setId("PROMO_1234")
    .setName("Summer Sale")
    .setCreative("summer_banner2")
    .setPosition("banner_slot1");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addPromotion(promotion);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("promotions");
t.send(builder.build());

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 sử dụng phương thức addPromotion với đối tượng Promotion và phương thức setPromotionAction được đặt thành Promotion.ACTION_CLICK hoặc Promotion.ACTION_VIEW để cho biết số lượt nhấp hoặc lượt xem chương trình khuyến mãi tương ứng. Ví dụ:

Promotion promotion = new Promotion()
    .setId("PROMO_1234")
    .setName("Summer Sale")
    .setCreative("summer_banner2")
    .setPosition("banner_slot1");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .addPromotion(promotion)
    .setPromotionAction(Promotion.ACTION_CLICK)
    .setCategory("Internal Promotions")
    .setAction("click")
    .setLabel("Summer Sale");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());