Universal Analytics 代码

要启用 Google Analytics 实现的运行时更改且又无需重新创建应用二进制文件并将其重新提交到应用市场,请使用 Google 跟踪代码管理器 (GTM) 在您的应用中实现 Universal Analytics (UA)。

本指南将介绍如何使用 Universal Analytics 代码和 Android 版 Google 跟踪代码管理器 SDK,以便:

发送屏幕浏览数据

要在用户每次在应用中打开新屏幕时向 Google Analytics 发送屏幕浏览,请执行以下操作:

  1. 创建屏幕名称变量
  2. 创建一个开放式屏幕 事件触发器
  3. 创建 Universal Analytics “屏幕浏览”代码
  4. 推送开放式屏幕事件 和屏幕名称添加到数据层

1. 创建屏幕名称变量

要在 GTM 中创建屏幕名称变量,请执行以下操作:

  1. 登录您的 Google 跟踪代码管理器账号。
  2. 选择一个移动容器。
  3. 在左侧导航栏中,点击变量
  4. 用户定义的变量下,点击新建
  5. 点击未命名变量,输入变量名称 screen name
  6. 选择数据层变量作为变量类型。
  7. 输入 screenName 作为数据层变量名,并设置其 默认值为 unknown screen
  8. 点击创建变量

2. 创建开放式屏幕事件触发器

要在 GTM 中创建触发器,以触发 Universal Analytics 屏幕浏览代码,请执行以下操作:

  1. 登录您的 Google 跟踪代码管理器账号。
  2. 选择一个移动容器。
  3. 在左侧导航栏中,点击触发器
  4. 点击新建
  5. 点击未命名触发器,输入触发器名称 OpenScreenEvent
  6. 选择自定义事件。
  7. 触发条件下,输入以下条件:

    将在事件为 openScreen 时触发的触发器

  8. 点击创建触发器

3. 创建 Universal Analytics 屏幕浏览代码

要创建由开放式屏幕事件触发的 Universal Analytics 屏幕浏览代码,请执行以下操作:

  1. 登录您的 Google 跟踪代码管理器账号。
  2. 选择一个移动容器。
  3. 在左侧导航栏中,点击代码
  4. 点击新建
  5. 点击未命名代码,输入代码名称 Open Screen
  6. 选择产品 Google Analytics
  7. 输入相应的跟踪 ID。
  8. 选择应用浏览作为跟踪类型
  9. 点击更多设置
  10. 点击要设置的字段
  11. 反复点击 + 添加字段以添加以下字段:

    添加以下字段:应用名称、应用版本和屏幕名称

  12. 点击继续
  13. 触发条件下,点击自定义
  14. 选择自定义触发器 OpenScreenEvent
  15. 点击保存
  16. 点击创建代码

4. 将开放式屏幕事件和屏幕名称推送到数据层

向应用添加代码以推送 openScreen 事件和 screenName 值,例如:

import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

  private static final String SCREEN_NAME = "Home Screen";
  private DataLayer mDataLayer;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate();
  }

  @Override
  public void onStart() {
    super.onStart();
    mDataLayer = TagManager.getInstance(this).getDataLayer();

    // Push an openScreen event and a screenName value to the data layer.
    // This call assumes the container has already been opened, otherwise events
    // pushed to the data layer will not fire tags in that container.
    mDataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", SCREEN_NAME));
  }
}

发送事件

要在用户在应用中与界面控件或内容互动时向 Google Analytics 发送事件数据,请执行以下操作:

  1. (可选)创建事件变量
  2. 创建事件触发器
  3. 创建 Universal Analytics 事件代码
  4. 推送事件和事件变量值 数据层

以下步骤展示了如何在用户开始播放视频时向 Google Analytics 发送事件数据。

1. (可选)创建事件变量

如果该事件使用数据层变量来表示其类别, 操作、标签或值字段,您必须先创建这些变量。 在此示例中,视频播放事件代码使用数据层变量 来获取视频的名称。

要在 GTM 中创建视频名称变量,请执行以下操作:

  1. 登录您的 Google 跟踪代码管理器账号。
  2. 选择一个移动容器。
  3. 在左侧导航栏中,点击变量
  4. 用户定义的变量下,点击新建
  5. 点击未命名变量,输入变量名称 video name
  6. 选择数据层变量作为变量类型。
  7. 输入 videoName 作为数据层变量名,并设置其 默认值为 unknown video
  8. 点击创建变量

2. 创建事件触发器

要在 GTM 中创建事件触发器,以触发 Universal Analytics 事件代码,请执行以下操作:

  1. 登录您的 Google 跟踪代码管理器账号。
  2. 选择一个移动容器。
  3. 在左侧导航栏中,点击触发器
  4. 点击新建
  5. 点击未命名触发器,输入触发器名称 VideoPlayEvent
  6. 选择自定义事件。
  7. 触发条件下,输入以下条件:

    将在事件为 videoPlay 时触发的触发器。

  8. 点击创建触发器

3. 创建 Universal Analytics 事件代码

要创建由视频播放事件触发的 Universal Analytics 事件代码,请执行以下操作:

  1. 登录您的 Google 跟踪代码管理器账号。
  2. 选择一个移动容器。
  3. 在左侧导航栏中,点击代码
  4. 点击新建
  5. 点击未命名代码,输入代码名称 Video Play Event
  6. 选择产品 Google Analytics
  7. 输入相应的跟踪 ID。
  8. 选择事件作为跟踪类型
  9. 输入以下事件跟踪参数:

    输入以下跟踪参数:在“类别”下输入“Video”,“操作”下输入“Play”,“标签”下输入“video name”

  10. 点击更多设置
  11. 点击要设置的字段
  12. 反复点击 + 添加字段以添加以下字段:

    添加以下字段:应用名称、应用版本和屏幕名称

  13. 点击继续
  14. 触发条件下,点击自定义
  15. 选择自定义触发器 VideoPlayEvent
  16. 点击保存
  17. 点击创建代码

4. 将事件和事件变量值推送到数据层

编写代码以推送 videoPlay 事件和 videoName 值,例如:

import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

public class VideoPlayer {

  // Called when a user starts a video playback.
  public void onPlay(Video v) {
    DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

    // Push a videoPlay event and a videoName value to the data layer.
    // This call assumes the container has already been opened, otherwise events
    // pushed to the data layer will not fire tags in that container.
    dataLayer.push(DataLayer.mapOf("event", "videoPlay", "videoName", v.getName());
    play(v);
  }

  // Rest of the implementation.
  // ...
}

发送电子商务交易数据

要在用户完成应用内购买时向 Google Analytics 发送交易和相关商品数据,请执行以下操作:

  1. 创建交易触发器
  2. 创建 Universal Analytics 交易代码
  3. 推送事务事件、事务、 和项转移到数据层

要查看受支持的交易和商品变量名称列表,请参阅受支持的电子商务数据层变量

1. 创建交易触发器

要在 GTM 中创建交易触发器,以触发 Universal Analytics 交易代码,请执行以下操作:

  1. 登录您的 Google 跟踪代码管理器账号。
  2. 选择一个移动容器。
  3. 在左侧导航栏中,点击触发器
  4. 点击新建
  5. 点击未命名触发器,输入触发器名称 TransactionCompleted
  6. 选择自定义事件。
  7. 触发条件下,输入以下条件:

    将在事件为 transaction 时触发的触发器。

  8. 点击创建触发器

2. 创建 Universal Analytics 交易代码

要创建由交易事件触发的 Universal Analytics 交易代码,请执行以下操作:

  1. 登录您的 Google 跟踪代码管理器账号。
  2. 选择一个移动容器。
  3. 在左侧导航栏中,点击代码
  4. 点击新建
  5. 点击未命名代码,输入代码名称 Transaction Completed
  6. 选择产品 Google Analytics
  7. 输入相应的跟踪 ID。
  8. 选择交易作为跟踪类型
  9. 点击更多设置
  10. 点击要设置的字段
  11. 反复点击 + 添加字段以添加以下字段:

    添加以下字段:应用名称、应用版本和屏幕名称

  12. 点击继续
  13. 触发条件下,点击自定义
  14. 选择自定义触发器 TransactionCompleted
  15. 点击保存
  16. 点击创建代码

3. 将交易事件、交易和商品数据推送到数据层

编写代码,以将交易事件、交易及相关商品数据推送到数据层。您必须使用 支持的交易 商品变量名称来将交易和商品数据推送到数据层。 例如:

// Called when a user completes a transaction.
public void onPurchaseCompleted(Purchase p) {

  DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

  // Put maps of item data into an array to be pushed to the data layer.
  ArrayList<Map<String, String>> purchasedItems = new ArrayList<Map<String, String>>();
  for (Item i : p.items) {
    HashMap<String, String> currentItem = new HashMap<String, String>();

    currentItem.put("name", i.getProductName());
    currentItem.put("sku", i.getProductSku());
    currentItem.put("category", i.getProductCategory());
    currentItem.put("price", i.getProductPrice());
    currentItem.put("currency", "USD");
    currentItem.put("quantity", i.getProductQty());

    purchasedItems.add(currentItem);
  }

  // This call assumes the container has already been opened, otherwise events
  // pushed to the [DataLayer] data layer will not fire tags in that container.
  dataLayer.push(DataLayer.mapOf("event", "transaction",
                                 "transactionId", p.getTransId(),
                                 "transactionTotal", p.getTotal(),
                                 "transactionAffiliation", "In-app Store",
                                 "transactionTax", p.getTax(),
                                 "transactionShipping", p.getShippingCost(),
                                 "transactionCurrency", "USD",
                                 "transactionProducts", purchasedItems));

  // Because the data layer is persistent, you should reset fields to null
  // after you are done pushing the transaction.
  dataLayer.push(DataLayer.mapOf("transactionId", null,
                                 "transactionTotal", null,
                                 "transactionAffiliation", null,
                                 "transactionTax", null,
                                 "transactionShipping", null,
                                 "transactionCurrency", null,
                                 "transactionProducts", null));
}

要详细了解如何使用 Android 版 Google 跟踪代码管理器 SDK 来实施 Universal Analytics 增强型电子商务功能,请参阅增强型电子商务

受支持的电子商务数据层变量

Universal 交易代码支持以下交易和商品变量名称。

交易变量

变量名称 说明 类型 必需
transactionId 唯一交易标识符 字符串
transactionAffiliation 合作伙伴或联营店铺 字符串
transactionTotal 交易总价值 字符串
transactionTax 交易的税额 字符串
transactionShipping 交易的运费 字符串
transactionCurrency 交易所用币种 字符串
transactionProducts 交易中所购商品的列表 包含商品变量的数组。

商品变量

变量名称 说明 类型 必需
name 产品名称 字符串
sku 产品 SKU 字符串
category 产品类别 字符串
price 产品价格 字符串
currency price 的货币类型 字符串
quantity 商品数量 字符串

安装引荐来源网址归因

如果您在 AndroidManifest.xml 文件,可用的安装引荐来源网址 数据将自动包含在所有 Google Analytics 命中中 或 AdWords 再营销像素请求:

<service android:name="com.google.tagmanager.InstallReferrerService" />
<receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>