若要針對 Google Analytics (分析) 導入作業進行執行階段變更,而不必重新建構應用程式二進位檔並重新提交到市集,請使用 Google 代碼管理工具 (GTM) 在應用程式中導入通用 Analytics (分析) (UA)。
本指南將說明如何使用通用 Analytics (分析) 代碼和 iOS 版 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
值推送至資料層,例如:
// ViewController.m // Push an 'openScreen' event to the data layer. // #import "ViewController.h" #import "TAGDataLayer.h" #import "TAGManager.h" @implementation ViewController - (void)viewDidAppear { [super viewDidAppear]; // NOTE: A GTM container should already have been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; [dataLayer push:@{@"event": @"openScreen", // Event, name of Open Screen Event. @"screenName": @"Home Screen"}]; // Name of the screen name field, screen name value. } // Rest of the ViewController implementation @end
傳送事件
如要在使用者與應用程式中的 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
值推送至資料層,例如:
// VideoPlayer.m // Push a 'videoPlay' event to the data layer. // #import "TAGDataLayer.h" #import "TAGManager.h" #import "Video.h" #import "VideoPlayer.h" @implementation VideoPlayer // Called when a user initiates a video playback. - (void)onPlay:(Video *)video { TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. [dataLayer push:@{@"event": @"videoPlay", // Event, name of Video Play Event. @"videoName": video.title, // Additional data layer variables used by the event tag. @"screenName": @"Home Screen"}]; [self play:video]; } // Rest of the implementation @end
傳送電子商務交易
使用者完成應用程式內購後,請將交易和相關商品傳送至 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. - (void)onPurchaseCompleted:(Purchase *)purchase { TAGDataLayer *dataLayer = [TAGManager instance].dataLayer; // An array to store dictionaries of item data. NSMutableArray *purchasedItems = [NSMutableArray array]; // Push item data into dictionaries and store in the purchasedItems array. // Note that item.price and item.quantity must be of type NSString. for (id item in purchase.items) { [purchasedItems addObject:@{@"name": item.name, @"sku": item.sku, @"category": item.category, @"price": item.price, @"currency": @"USD", @"quantity": item.quantity}]; } // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. // Note that purchase.tax, purchase.shipping, and purchase.total must be of type NSString. [dataLayer push:@{@"event": @"transaction", // Event, name of Transaction Event. @"transactionId": purchase.transactionId, // Additional fields required by the tag. @"transactionTotal": purchase.total, @"transactionAffiliation": @"In-app Store", @"transactionTax": purchase.tax, @"transactionShipping": purchase.shipping, @"transactionCurrency": @"USD", @"transactionProducts": purchasedItems}]; // Since the data layer is persistent, you should reset fields to [NSNull null] after // you are done pushing the transaction. [dataLayer push:@{@"transactionId": [NSNull null], @"transactionTotal": [NSNull null], @"transactionAffiliation": [NSNull null], @"transactionTax": [NSNull null], @"transactionShipping": [NSNull null], @"transactionCurrency": [NSNull null], @"transactionProducts": [NSNull null]}]; }
若要進一步瞭解如何使用 Android 版 Google 代碼管理工具 SDK 導入通用 Analytics (分析) 加強型電子商務功能,請參閱「加強型電子商務」一文。
支援的電子商務資料層變數
通用交易標記支援下列交易和項目變數名稱。
交易變數
變數名稱 | 說明 | 類型 | 需要 |
---|---|---|---|
transactionId |
專屬交易識別碼 | 字串 | 是 |
transactionAffiliation |
夥伴或商店 | 字串 | 否 |
transactionTotal |
交易的總額 | 字串 | 否 |
transactionTax |
交易的稅額 | 字串 | 否 |
transactionShipping |
交易的運費 | 字串 | 否 |
transactionCurrency |
交易貨幣 | 字串 | 否 |
transactionProducts |
交易中所購商品的清單 | 項目變數陣列。 | 否 |
項目變數
變數名稱 | 說明 | 類型 | 需要 |
---|---|---|---|
name |
產品名稱 | 字串 | 是 |
sku |
產品 SKU | 字串 | 否 |
category |
產品類別 | 字串 | 否 |
price |
產品價格 | 字串 | 否 |
currency |
price 的貨幣類型 |
字串 | 否 |
quantity |
商品數量 | 字串 | 否 |
傳送加強型電子商務資料
如要瞭解如何傳送加強型電子商務資料,請參閱加強型電子商務開發人員指南。