本文档简要介绍了如何使用 Android 版 Google Analytics(分析)SDK v3 来衡量应用内付款和收入。
概览
借助电子商务衡量功能,您可以向 Google Analytics(分析)发送应用内购买和销售数据。Google Analytics(分析)中的电子商务数据由交易和商品匹配组成,两者与一个共享交易 ID 相关联。
交易数据包含以下字段:
字段名称 | 跟踪器字段 | 类型 | 必需 | 说明 |
---|---|---|---|---|
交易 ID | Fields.TRANSACTION_ID
|
String
|
是 | 代表某次交易的唯一 ID。此 ID 不应与其他交易 ID 重复。 |
关联公司 | Fields.TRANSACTION_AFFILIATION
|
String
|
是 | 此次交易关联的实体(例如某家商店)。 |
收入 | Fields.TRANSACTION_REVENUE
|
Double
|
是 | 交易的总收入,含税费和运费。 |
税务 | Fields.TRANSACTION_TAX
|
Double
|
是 | 交易的总税费。 |
运费 | Fields.TRANSACTION_SHIPPING
|
Double
|
是 | 交易的总运费。 |
货币代码 | Fields.CURRENCY_CODE
|
String
|
否 | 交易的局部货币。默认值为此次交易对应的数据视图(配置文件)的货币。 |
商品数据包含以下字段:
字段名称 | 跟踪器字段 | 类型 | 必需 | 说明 |
---|---|---|---|---|
交易 ID | Fields.TRANSACTION_ID
|
String
|
是 | 该商品关联的交易 ID。 |
名称 | Fields.ITEM_NAME
|
String
|
是 | 产品名称。 |
库存单位 (SKU) | Fields.ITEM_SKU
|
String
|
是 | 产品 SKU。 |
类别 | Fields.ITEM_CATEGORY
|
String
|
否 | 产品所属的类别。 |
价格 | Fields.ITEM_PRICE
|
Double
|
是 | 产品的价格。 |
数量 | Fields.ITEM_QUANTITY
|
Long
|
是 | 产品的数量。 |
货币代码 | Fields.CURRENCY_CODE
|
String
|
否 | 交易的局部货币。默认值为交易报告所用的数据视图(配置文件)的币种。 |
电子商务数据主要用于以下标准报告中:
- 电子商务概览
- 产品业绩
- 销售业绩
- 交易次数
- 购买前所耗时间
实现
为了向 Google Analytics(分析)发送交易和商品数据,您需要在跟踪器中逐一设置交易和商品字段值并进行发送。例如:
import android.app.Activity; import com.google.analytics.tracking.android.EasyTracker; import com.google.analytics.tracking.android.MapBuilder; public class CheckoutActivity extends Activity { /* * Called when a purchase is processed and verified. */ public void onPurchaseCompleted() { // May return null if EasyTracker has not yet been initialized with a // property ID. EasyTracker easyTracker = EasyTracker.getInstance(this); easyTracker.send(MapBuilder .createTransaction("0_123456", // (String) Transaction ID "In-app Store", // (String) Affiliation 2.16d, // (Double) Order revenue 0.17d, // (Double) Tax 0.0d, // (Double) Shipping "USD") // (String) Currency code .build() ); easyTracker.send(MapBuilder .createItem("0_123456", // (String) Transaction ID "Level Pack: Space", // (String) Product name "L_789", // (String) Product SKU "Game expansions", // (String) Product category 1.99d, // (Double) Product price 1L, // (Long) Product quantity "USD") // (String) Currency code .build() ); } // ... Rest of the Activity definition }
电子商务货币字段支持负数货币值,以用于退款或退货的情况。
指定货币
默认情况下,交易值会被视为采用相应数据视图(配置文件)的货币。
要覆盖某次交易或相关产品的局部货币值,请将交易和商品匹配的货币代码字段设置为新的货币代码。如需所支持货币和货币代码的完整列表,请参阅“支持的货币”参考。
import android.app.Activity; import com.google.analytics.tracking.android.EasyTracker; import com.google.analytics.tracking.android.MapBuilder; public class CheckoutActivity extends Activity { /** * 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). */ public void onPurchaseCompleted() { // Assumes a tracker has already been initialized with a property ID, otherwise // this call returns null. EasyTracker easyTracker = EasyTracker.getInstance(this); easyTracker.send(MapBuilder .createTransaction("0_123456", // (String) Transaction ID, should be unique among transactions. "In-app Store", // (String) Affiliation (long) 2.16, // (long) Order revenue (includes tax and shipping) (long) 0.17, // (long) Tax 0.0, // (long) Shipping cost "EUR") // (String) Currency code .build(); } // ... Rest of the Activity definition. }