电子商务跟踪 - Android SDK

本文档将大略介绍如何使用 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.
}