通用 Analytics (分析) 代碼

若要針對 Google Analytics (分析) 導入作業進行執行階段變更,而不必重新建構應用程式二進位檔並重新提交到市集,請使用 Google 代碼管理工具 (GTM) 在應用程式中導入通用 Analytics (分析) (UA)。

本指南將說明如何使用通用 Analytics (分析) 代碼和 Android 專用 Google 代碼管理工具 SDK 達成以下目的:

傳送畫面瀏覽

若要在 Google Analytics (分析) 每次開啟應用程式新的畫面時傳送畫面瀏覽,請依下列步驟操作:

  1. 建立畫面名稱變數
  2. 建立開啟畫面的事件觸發條件
  3. 建立通用 Analytics (分析) 畫面瀏覽代碼
  4. 將開啟畫面的事件和畫面名稱推送至資料層

1. 建立畫面名稱變數

如何在 Google 代碼管理工具中建立畫面名稱變數:

  1. 登入 Google 代碼管理工具帳戶。
  2. 請選取行動容器。
  3. 點按左側導覽列中的「變數」
  4. 在「使用者定義的變數」下方點擊 [新增]
  5. 按一下「未命名的變數」,輸入變數名稱「畫面名稱」
  6. 選擇「資料層變數」做為變數類型。
  7. 輸入 screenName 做為「資料層變數名稱」,並將其預設值設為「unknown screen」(不明畫面)
  8. 按一下 [建立變數]。

2. 建立開啟畫面事件觸發條件

如要在 GTM 中建立觸發條件,以觸發通用 Analytics (分析) 畫面瀏覽代碼

  1. 登入 Google 代碼管理工具帳戶。
  2. 請選取行動容器。
  3. 按一下左側導覽列中的「觸發條件」
  4. 按一下「新增」
  5. 按一下「Untitled Trigger」,輸入觸發條件名稱 OpenScreenEvent
  6. 選擇「自訂事件」
  7. 在「啟動時機」下方,輸入下列條件:

    在事件等於 openScreen 時觸發的觸發條件

  8. 按一下 [Create trigger] (建立觸發條件)

3. 建立通用 Analytics (分析) 畫面瀏覽代碼

如何建立由開啟畫面事件觸發的通用 Analytics (分析) 畫面瀏覽代碼:

  1. 登入 Google 代碼管理工具帳戶。
  2. 請選取行動容器。
  3. 按一下左側導覽列中的「代碼」
  4. 按一下「新增」
  5. 按一下「未命名的代碼」,輸入代碼名稱「開啟畫面」
  6. 選擇「Google Analytics (分析)」產品。
  7. 輸入追蹤 ID。
  8. 選取「App View」做為「追蹤類型」
  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));
  }
}

傳送事件

如要在使用者與應用程式中的 UI 控制項或內容互動時,將事件傳送至 Google Analytics (分析),請按照下列步驟操作:

  1. (選用) 建立事件變數
  2. 建立事件觸發條件
  3. 建立通用 Analytics (分析) 事件代碼
  4. 將事件和事件變數值推送至資料層

下列步驟顯示使用者開始播放影片時,事件如何傳送至 Google Analytics (分析)。

1. (選用) 建立事件變數

如果事件使用資料層變數來代表其類別、動作、標籤或值欄位,您必須先建立這些變數。在此範例中,影片播放事件代碼使用資料層變數取得影片名稱。

如何在 Google 代碼管理工具中建立影片名稱變數:

  1. 登入 Google 代碼管理工具帳戶。
  2. 請選取行動容器。
  3. 點按左側導覽列中的「變數」
  4. 在「使用者定義的變數」下方點擊 [新增]
  5. 按一下「未命名的變數」,輸入變數名稱「影片名稱」
  6. 選擇「資料層變數」做為變數類型。
  7. 輸入 videoName 做為「資料層變數名稱」,並將其預設值設為「不明影片」
  8. 按一下 [建立變數]。

2. 建立事件觸發條件

如要在 GTM 中建立事件觸發條件來觸發通用 Analytics (分析) 事件代碼,請按照下列步驟操作:

  1. 登入 Google 代碼管理工具帳戶。
  2. 請選取行動容器。
  3. 按一下左側導覽列中的「觸發條件」
  4. 按一下「新增」
  5. 按一下「未命名的觸發條件」,輸入觸發條件名稱 VideoPlayEvent
  6. 選擇「自訂事件」
  7. 在「啟動時機」下方,輸入下列條件:

    在事件等於 videoPlay 時觸發的觸發條件。

  8. 按一下 [Create trigger] (建立觸發條件)

3. 建立通用 Analytics (分析) 事件代碼

如何建立由影片播放事件觸發的通用 Analytics (分析) 事件代碼:

  1. 登入 Google 代碼管理工具帳戶。
  2. 請選取行動容器。
  3. 按一下左側導覽列中的「代碼」
  4. 按一下「新增」
  5. 按一下「未命名的代碼」,輸入「影片播放事件」代碼名稱。
  6. 選擇「Google Analytics (分析)」產品。
  7. 輸入追蹤 ID。
  8. 選取「事件」做為「追蹤類型」
  9. 輸入下列事件追蹤參數:

    輸入這些追蹤參數:類別的影片、「播放廣告」和影片名稱。

  10. 按一下「更多設定」
  11. 按一下「要設定的欄位」
  12. 重複點選「+ 新增欄位」,新增下列欄位:

    新增以下欄位:應用程式名稱、應用程式版本和畫面名稱

  13. 按一下 [繼續]。
  14. 在「啟動時機」下方,點選「自訂」
  15. 選取自訂觸發條件「VideoPlayEvent」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. 建立通用 Analytics (分析) 交易代碼
  3. 將交易事件、交易和項目推送至資料層

如需支援的交易和項目變數名稱清單,請參閱支援的電子商務資料層變數

1. 建立交易觸發條件

如要在 GTM 中建立交易觸發條件,以觸發通用 Analytics (分析) 交易代碼,請按照下列步驟操作:

  1. 登入 Google 代碼管理工具帳戶。
  2. 請選取行動容器。
  3. 按一下左側導覽列中的「觸發條件」
  4. 按一下「新增」
  5. 按一下「Untitled Trigger」,輸入觸發條件名稱 TransactionCompleted
  6. 選擇「自訂事件」
  7. 在「啟動時機」下方,輸入下列條件:

    在事件等於交易時觸發的觸發條件。

  8. 按一下 [Create trigger] (建立觸發條件)

2. 建立通用 Analytics (分析) 交易代碼

如何建立由交易事件觸發的通用 Analytics (分析) 交易代碼:

  1. 登入 Google 代碼管理工具帳戶。
  2. 請選取行動容器。
  3. 按一下左側導覽列中的「代碼」
  4. 按一下「新增」
  5. 按一下「未命名的代碼」,輸入代碼名稱「交易完成」
  6. 選擇「Google Analytics (分析)」產品。
  7. 輸入追蹤 ID。
  8. 選取「交易」做為「追蹤類型」
  9. 按一下「更多設定」
  10. 按一下「要設定的欄位」
  11. 重複點選「+ 新增欄位」,新增下列欄位:

    新增以下欄位:應用程式名稱、應用程式版本和畫面名稱

  12. 按一下 [繼續]。
  13. 在「啟動時機」下方,點選「自訂」
  14. 選取自訂觸發條件「TransactionCompleted」(交易已完成)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 導入通用 Analytics (分析) 加強型電子商務功能,請參閱「加強型電子商務」一文。

支援的電子商務資料層變數

通用交易標記支援下列交易和項目變數名稱。

交易變數

變數名稱 說明 類型 需要
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>