Thương mại điện tử nâng cao Universal Analytics cho iOS

Thương mại điện tử nâng cao là một tính năng của Google Analytics có sẵn trong các tài sản Universal Analytics, cho phép đo lường hoạt động tương tác của người dùng với các sản phẩm trên trải nghiệm mua sắm của người dùng. Việc này có thể bao gồm lượt hiển thị sản phẩm, lượt nhấp vào sản phẩm, lượt xem chi tiết sản phẩm, thêm mặt hàng vào giỏ hàng, bắt đầu quy trình thanh toán, giao dịch và hoàn tiền.

Các thế hệ mới nhất của cả Trình quản lý thẻ của Google và Google Analytics cho ứng dụng dành cho thiết bị di động hoạt động cùng với Firebase, nền tảng ứng dụng dành cho thiết bị di động của Google. Khi đo lường ứng dụng bằng SDK Firebase, bạn sẽ có quyền truy cập vào một loạt báo cáo ứng dụng di động được tạo tự động – báo cáo này có thể được tuỳ chỉnh và bổ sung bằng mã trong ứng dụng. Các báo cáo này sẽ tự động bao gồm dữ liệu về các giao dịch mua hàng trong ứng dụng do App Store xử lý trên iTunes và Google Play. Bạn có thể tạo thêm các báo cáo liên quan đến thương mại điện tử bằng cách triển khai các sự kiện đề xuất cho ứng dụng thương mại điện tử. Báo cáo chuyên sâu về hành vi mua sắm (tức là thương mại điện tử nâng cao) hiện chỉ có trong các tài sản Universal Analytics.

Tài liệu này mô tả cách sử dụng Trình quản lý thẻ cho ứng dụng iOS kết hợp với SDK Firebase để gửi dữ liệu thương mại điện tử nâng cao đến các tài sản Universal Analytics. Bạn nên sử dụng cùng một cú pháp sự kiện và thông số để thiết lập giai đoạn cho các báo cáo thương mại điện tử bổ sung trong tương lai.

Các bước đầu tiên

Trước khi bắt đầu, hãy thiết lập các điều kiện tiên quyết sau đây cho ứng dụng của bạn:

  1. Cài đặt và định cấu hình Firebase và Trình quản lý thẻ của Google trong ứng dụng của bạn. Đảm bảo rằng bạn đang sử dụng SDK Firebase phiên bản 11 trở lên cho iOS.
  2. Định cấu hình biến do người dùng xác định trong vùng chứa của Trình quản lý thẻ có tên là "chương trình khuyến mãi", với các chế độ cài đặt sau:
    • Loại sự kiện: Thông số tùy chỉnh
    • Khoá thông số sự kiện: promotion
    • Giá trị mặc định: không xác định

Triển khai

Các phần sau minh hoạ cách ghi nhật ký sự kiện bằng các thông số cần thiết để đo lường các hoạt động thương mại điện tử nâng cao, chẳng hạn như:

Số lượt hiển thị sản phẩm

Đo lường số lượt hiển thị sản phẩm bằng cách ghi lại một sự kiện có thông số kFIRParameterItemID và một hoặc nhiều mặt hàng (tức là các sản phẩm) được xác định bằng các trường liên quan.

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @2          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewSearchResults
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Lượt xem màn hình
  • Tên cần đặt: (Tên trường) screenName (value, ví dụ) Màn hình kết quả tìm kiếm
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tùy chỉnh > Một số sự kiện) Tên sự kiện bằng view_search_results

Số lượt nhấp/chọn sản phẩm

Đo lường số lượt nhấp vào sản phẩm bằng cách ghi lại một sự kiện kFIREventSelectContent với một mặt hàng (tức là sản phẩm) được xác định bằng các trường có liên quan:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Sự kiện
  • Danh mục sự kiện, ví dụ: Thương mại điện tử
  • Hành động sự kiện, ví dụ: Lượt nhấp vào sản phẩm
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tuỳ chỉnh > Một số sự kiện) Tên sự kiện bằng select_content AND {{promotions}} bằng Unknown

Số lượt xem chi tiết sản phẩm

Đo lường các chế độ xem chi tiết sản phẩm bằng cách ghi lại một sự kiện kFIREventViewItem với một mặt hàng (tức là sản phẩm) được xác định bằng các trường có liên quan:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log view_item event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Lượt xem màn hình
  • Tên cần đặt: (Tên trường) screenName (value, ví dụ) Màn hình Chi tiết sản phẩm
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tuỳ chỉnh > Một số sự kiện) Tên sự kiện bằng view_item VÀ
  • {{promotions}} bằng không xác định

Số lượt thêm vào giỏ hàng

Đo lường một sản phẩm đang được thêm vào giỏ hàng bằng cách ghi lại sự kiện kFIREventAddToCart với một mặt hàng (tức là sản phẩm) được xác định bằng các trường có liên quan:

/// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log add_to_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventAddToCart
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Sự kiện
  • Danh mục sự kiện, ví dụ: Thương mại điện tử
  • Hành động sự kiện, ví dụ: Thêm vào giỏ hàng
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tùy chỉnh > Một số sự kiện) Tên sự kiện bằng add_to_cart

Số lượt xóa khỏi giỏ hàng

Đo lường một sản phẩm đang bị xóa khỏi giỏ hàng bằng cách ghi lại sự kiện kFIREventRemoveFromCart với một mặt hàng (tức là sản phẩm) được xác định bằng các trường liên quan:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log remove_from_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventRemoveFromCart
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Sự kiện
  • Danh mục sự kiện, ví dụ: Thương mại điện tử
  • Hành động sự kiện, ví dụ: : Xóa khỏi giỏ hàng
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tùy chỉnh > Một số sự kiện) Tên sự kiện bằng remove_from_cart

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

Đo lường số lượt hiển thị khuyến mãi bằng cách ghi lại sự kiện kFIREventViewItem với một mục khuyến mãi được xác định bằng các trường có liên quan:

/// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
NSDictionary *ecommerce = @{
   @"promotions" : promotions
};

// Log view_item, view_item_list, or view_search_results
// event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Sự kiện
  • Danh mục sự kiện, ví dụ: Quảng cáo thành phần bên trong
  • Hành động sự kiện, ví dụ: Hiển thị
  • Lượt truy cập không tương tác: Đúng
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tuỳ chỉnh > Một số sự kiện) Tên sự kiện bằng view_item VÀ
  • {{promotions}} không bằng không xác định

Số lượt nhấp/chọn quảng cáo

Đo lường số lượt nhấp vào chương trình khuyến mãi bằng cách ghi lại sự kiện kFIREventSelectContent với một chương trình khuyến mãi được xác định bằng các trường có liên quan:

// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];

// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.
NSDictionary *ecommerce = @{
   kFIRParameterItemID : @"PROMO_1234",
   kFIRParameterContentType : @"Internal Promotions",
   @"promotions" : promotions
};

// Log select_content, view_item_list, or view_search_results event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Sự kiện
  • Danh mục sự kiện, ví dụ: Quảng cáo thành phần bên trong
  • Hành động sự kiện, ví dụ: : Nhấp vào
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tuỳ chỉnh > Một số sự kiện) Tên sự kiện bằng select_content AND {{promotions}} không bằng không xác định

Quy trình thanh toán

Bắt đầu quy trình thanh toán

Đo lường bước đầu tiên trong quy trình thanh toán bằng cách ghi lại sự kiện kFIREventBeginCheckout với một hoặc nhiều mục (tức là sản phẩm) được xác định bằng các trường có liên quan:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @1, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log BEGIN_CHECKOUT event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventBeginCheckout
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Lượt xem màn hình
  • Tên cần đặt: (Tên trường) screenName (value, ví dụ) Màn hình giỏ hàng
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tùy chỉnh > Một số sự kiện) Tên sự kiện bằng begin_checkout

Tùy chọn thanh toán

Các tuỳ chọn thanh toán cho phép bạn đo lường thông tin bổ sung về trạng thái của quy trình thanh toán. Bạn có thể đo lường các tùy chọn thanh toán trong một sự kiện của bước thanh toán (như hiển thị ở trên) hoặc khi người dùng chọn một tùy chọn sau khi sự kiện cho một bước thanh toán nhất định đã được ghi lại.

Đo lường các tùy chọn thanh toán sau một bước thanh toán bằng cách ghi lại sự kiện kFIREventCheckoutProgress với các thông số kFIRParameterCheckoutStepkFIRParameterCheckoutOption tương ứng:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @2, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log CHECKOUT_PROGRESS event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventCheckoutProgress
                   parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • g Loại: Universal Analytics
  • Loại biểu tượng: sự kiện
  • Danh mục nội dung, ví dụ: Thương mại điện tử
  • ent Action, ví dụ: : Đặt tuỳ chọn Checkout
  • Các tính năng thương mại điện tử nâng cao: Có
  • dữ liệu quảng cáo từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tùy chỉnh > Một số sự kiện) Tên sự kiện bằng set_checkout_option

Nội dung đã mua

Đo lường lượt mua hàng bằng cách ghi nhật ký một sự kiện kFIREventEcommercePurchase với một hoặc nhiều mục (tức là sản phẩm) được xác định bằng các trường có liên quan:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results", // List name.
   kFIRParameterTransactionID : @"T12345",
   kFIRParameterAffiliation : @"Google Store - Online",
   kFIRParameterValue : @75.98, // Revenue.
   kFIRParameterTax : @3.80,
   kFIRParameterShipping : @5.34,
   kFIRParameterCurrency : @"USD",
   kFIRParameterCoupon : @"SUMMER2017"
};

// Log ecommerce_purchase event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventEcommercePurchase
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Lượt xem màn hình
  • Tên cần đặt: (Tên trường) screenName (value, ví dụ) Màn hình Cảm ơn
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tùy chỉnh > Một số sự kiện) Tên sự kiện là ecommerce_purchase

Hoàn tiền

Đo lường các khoản tiền hoàn lại bằng cách ghi lại một sự kiện kFIREventPurchaseRefund với mã giao dịch liên quan đã chỉ định và không bắt buộc (đối với các khoản tiền hoàn lại một phần) một hoặc nhiều mặt hàng (tức là các sản phẩm) được xác định bằng mã mặt hàng và số lượng:

// (OPTIONAL) For partial refunds, define the item IDs and
// quantities of products being refunded.
NSDictionary *refundedProduct = @{
   kFIRParameterItemID : @"sku1234", // Required for partial refund.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce bundle with transaction ID to be refunded.
NSDictionary *ecommerce = @{
   @"items" : @[ refundedProduct ],
   kFIRParameterTransactionID : @"T12345", // Required.
   kFIRParameterValue : @75.98 // Optional in Universal Analytics.
};

// Log purchase_refund event with ecommerce.
[FIRAnalytics logEventWithName:kFIREventPurchaseRefund
                    parameters:ecommerce];

Xem cấu hình thẻ cho ví dụ này:

  • Loại thẻ: Universal Analytics
  • Loại theo dõi: Sự kiện
  • Danh mục sự kiện, ví dụ: Thương mại điện tử
  • Hành động sự kiện, ví dụ: : Hoàn tiền
  • Bật tính năng thương mại điện tử nâng cao: Đúng
  • Đọc dữ liệu từ: Sự kiện Firebase
  • Trình kích hoạt, ví dụ: (Tùy chỉnh > Một số sự kiện) Tên sự kiện là purchase_refund