若要針對 Google Analytics (分析) 導入作業進行執行階段變更,而不必重新建構應用程式二進位檔並重新提交到市集,請使用 Google 代碼管理工具 (GTM) 在應用程式中導入通用 Analytics (分析) (UA)。
本指南將說明如何使用通用 Analytics (分析) 代碼和 Android 專用 Google 代碼管理工具 SDK 達成以下目的:
傳送畫面瀏覽
若要在 Google Analytics (分析) 每次開啟應用程式新的畫面時傳送畫面瀏覽,請依下列步驟操作:
1. 建立畫面名稱變數
如何在 Google 代碼管理工具中建立畫面名稱變數:
- 登入 Google 代碼管理工具帳戶。
- 請選取行動容器。
- 點按左側導覽列中的「變數」。
- 在「使用者定義的變數」下方點擊 [新增]。
- 按一下「未命名的變數」,輸入變數名稱「畫面名稱」。
- 選擇「資料層變數」做為變數類型。
- 輸入 screenName 做為「資料層變數名稱」,並將其預設值設為「unknown screen」(不明畫面)。
- 按一下 [建立變數]。
2. 建立開啟畫面事件觸發條件
如要在 GTM 中建立觸發條件,以觸發通用 Analytics (分析) 畫面瀏覽代碼:
- 登入 Google 代碼管理工具帳戶。
- 請選取行動容器。
- 按一下左側導覽列中的「觸發條件」。
- 按一下「新增」。
- 按一下「Untitled Trigger」,輸入觸發條件名稱 OpenScreenEvent。
- 選擇「自訂事件」。
- 在「啟動時機」下方,輸入下列條件:
- 按一下 [Create trigger] (建立觸發條件)。
3. 建立通用 Analytics (分析) 畫面瀏覽代碼
如何建立由開啟畫面事件觸發的通用 Analytics (分析) 畫面瀏覽代碼:
- 登入 Google 代碼管理工具帳戶。
- 請選取行動容器。
- 按一下左側導覽列中的「代碼」。
- 按一下「新增」。
- 按一下「未命名的代碼」,輸入代碼名稱「開啟畫面」。
- 選擇「Google Analytics (分析)」產品。
- 輸入追蹤 ID。
- 選取「App View」做為「追蹤類型」。
- 按一下「更多設定」。
- 按一下「要設定的欄位」。
- 重複點選「+ 新增欄位」,新增下列欄位:
- 按一下 [繼續]。
- 在「啟動時機」下方,點選「自訂」。
- 選取自訂觸發條件 OpenScreenEvent。
- 點按「儲存」。
- 按一下「建立代碼」。
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 (分析),請按照下列步驟操作:
下列步驟顯示使用者開始播放影片時,事件如何傳送至 Google Analytics (分析)。
1. (選用) 建立事件變數
如果事件使用資料層變數來代表其類別、動作、標籤或值欄位,您必須先建立這些變數。在此範例中,影片播放事件代碼使用資料層變數取得影片名稱。
如何在 Google 代碼管理工具中建立影片名稱變數:
- 登入 Google 代碼管理工具帳戶。
- 請選取行動容器。
- 點按左側導覽列中的「變數」。
- 在「使用者定義的變數」下方點擊 [新增]。
- 按一下「未命名的變數」,輸入變數名稱「影片名稱」。
- 選擇「資料層變數」做為變數類型。
- 輸入 videoName 做為「資料層變數名稱」,並將其預設值設為「不明影片」。
- 按一下 [建立變數]。
2. 建立事件觸發條件
如要在 GTM 中建立事件觸發條件來觸發通用 Analytics (分析) 事件代碼,請按照下列步驟操作:
- 登入 Google 代碼管理工具帳戶。
- 請選取行動容器。
- 按一下左側導覽列中的「觸發條件」。
- 按一下「新增」。
- 按一下「未命名的觸發條件」,輸入觸發條件名稱 VideoPlayEvent。
- 選擇「自訂事件」。
- 在「啟動時機」下方,輸入下列條件:
- 按一下 [Create trigger] (建立觸發條件)。
3. 建立通用 Analytics (分析) 事件代碼
如何建立由影片播放事件觸發的通用 Analytics (分析) 事件代碼:
- 登入 Google 代碼管理工具帳戶。
- 請選取行動容器。
- 按一下左側導覽列中的「代碼」。
- 按一下「新增」。
- 按一下「未命名的代碼」,輸入「影片播放事件」代碼名稱。
- 選擇「Google Analytics (分析)」產品。
- 輸入追蹤 ID。
- 選取「事件」做為「追蹤類型」。
- 輸入下列事件追蹤參數:
- 按一下「更多設定」。
- 按一下「要設定的欄位」。
- 重複點選「+ 新增欄位」,新增下列欄位:
- 按一下 [繼續]。
- 在「啟動時機」下方,點選「自訂」。
- 選取自訂觸發條件「VideoPlayEvent」VideoPlayEvent。
- 點按「儲存」。
- 按一下「建立代碼」。
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. 建立交易觸發條件
如要在 GTM 中建立交易觸發條件,以觸發通用 Analytics (分析) 交易代碼,請按照下列步驟操作:
- 登入 Google 代碼管理工具帳戶。
- 請選取行動容器。
- 按一下左側導覽列中的「觸發條件」。
- 按一下「新增」。
- 按一下「Untitled Trigger」,輸入觸發條件名稱 TransactionCompleted。
- 選擇「自訂事件」。
- 在「啟動時機」下方,輸入下列條件:
- 按一下 [Create trigger] (建立觸發條件)。
2. 建立通用 Analytics (分析) 交易代碼
如何建立由交易事件觸發的通用 Analytics (分析) 交易代碼:
- 登入 Google 代碼管理工具帳戶。
- 請選取行動容器。
- 按一下左側導覽列中的「代碼」。
- 按一下「新增」。
- 按一下「未命名的代碼」,輸入代碼名稱「交易完成」。
- 選擇「Google Analytics (分析)」產品。
- 輸入追蹤 ID。
- 選取「交易」做為「追蹤類型」。
- 按一下「更多設定」。
- 按一下「要設定的欄位」。
- 重複點選「+ 新增欄位」,新增下列欄位:
- 按一下 [繼續]。
- 在「啟動時機」下方,點選「自訂」。
- 選取自訂觸發條件「TransactionCompleted」(交易已完成)TransactionCompleted。
- 點按「儲存」。
- 按一下「建立代碼」。
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>