电子商务跟踪 - iOS SDK

本文档将大略介绍如何使用 iOS 版 Google Analytics(分析)SDK v3 来衡量应用内付款和收入。

概览

借助电子商务衡量功能,您可以向 Google Analytics(分析)发送应用内购买和销售数据。Google Analytics(分析)中的电子商务数据由交易匹配和商品匹配组成,两者又由共同的交易 ID 相关联。

交易数据包含以下字段:

字段名称 跟踪器字段 类型 是否必须提供 说明
交易 ID kGAITransactionId NSString 代表某次交易的唯一 ID。此 ID 不应与其他交易 ID 重复。
关联公司 kGAITransactionAffiliation NSString 此次交易关联的实体(例如某家商店)。
收入 kGAITransactionRevenue NSNumber 交易的总收入,含税费和运费。
税务 kGAITransactionTax NSNumber 交易的总税费。
运费 kGAITransactionShipping NSNumber 交易的总运费。
货币代码 kGAICurrencyCode NSString 交易的本地货币。默认值为此次交易对应的数据视图(配置文件)的货币。

商品数据包含以下字段:

字段名称 跟踪器字段 类型 是否必须提供 说明
交易 ID kGAITransactionId NSString 该商品关联的交易 ID。
名称 kGAIItemName NSString 产品名称。
库存单位 (SKU) kGAIItemSku NSString 产品 SKU。
类别 kGAIItemCategory NSString 产品所属的类别。
价格 kGAIItemPrice NSNumber 产品的价格。
数量 kGAIItemQuantity NSNumber 产品的数量。
货币代码 kGAICurrencyCode NSString 交易的本地货币。默认值为此次交易对应的数据视图(配置文件)的货币。

电子商务数据主要用于以下标准报告中:

  • 电子商务概览
  • 产品业绩
  • 销售业绩
  • 交易次数
  • 购买前所耗时间

实现

为了向 Google Analytics(分析)发送交易和商品数据,您需要在跟踪器中逐一设置交易和商品字段值并进行发送。例如:

/*
 * Called when a purchase is processed and verified.
 */
- (void)onPurchaseCompleted {

  // Assumes a tracker has already been initialized with a property ID, otherwise
  // this call returns null.
  id tracker = [[GAI sharedInstance] defaultTracker];

  [tracker send:[[GAIDictionaryBuilder createTransactionWithId:@"0_123456"             // (NSString) Transaction ID
                                                   affiliation:@"In-app Store"         // (NSString) Affiliation
                                                       revenue:@2.16F                  // (NSNumber) Order revenue (including tax and shipping)
                                                           tax:@0.17F                  // (NSNumber) Tax
                                                      shipping:@0                      // (NSNumber) Shipping
                                                  currencyCode:@"USD"] build]];        // (NSString) Currency code

  [tracker send:[[GAIDictionaryBuilder createItemWithTransactionId:@"0_123456"         // (NSString) Transaction ID
                                                              name:@"Space Expansion"  // (NSString) Product Name
                                                               sku:@"L_789"            // (NSString) Product SKU
                                                          category:@"Game expansions"  // (NSString) Product category
                                                             price:@1.9F               // (NSNumber) Product price
                                                          quantity:@1                  // (NSInteger) Product quantity
                                                      currencyCode:@"USD"] build]];    // (NSString) Currency code

}

电子商务货币字段支持负数货币值,以用于退款或退货的情况。

指定货币

默认情况下,交易值会被视为采用相应数据视图(配置文件)的货币。

要覆盖某次交易或相关产品的局部货币值,请将交易和商品匹配的货币代码字段设置为新的货币代码。如需所支持货币和货币代码的完整列表,请参阅“支持的货币”参考

/*
 In this example, the currency of the transaction is set to Euros. The
 currency values will appear in reports using the global currency
 type of the view (profile).
 */
- (void)onPurchaseCompleted {

  // Assumes a tracker has already been initialized with a property ID, otherwise
  // this call returns null.
  id tracker = [[GAI sharedInstance] defaultTracker];

  [tracker send:[[GAIDictionaryBuilder createTransactionWithId:@"0_123456",         // (NSString) Transaction ID, should be unique among transactions.
                                                   affiliation:@"In-app Store",     // (NSString) Affiliation
                                                       revenue:(int64_t) 2.16,      // (int64_t) Order revenue (including tax and shipping)
                                                           tax:(int64_t) 0.17,      // (int64_t) Tax
                                                      shipping:(int64_t) 0,         // (int64_t) Shipping
                                                  currencyCode:@"EUR"] build]];     // (NSString) Currency code
}