通用 Analytics (分析) 代碼

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

本指南將說明如何使用通用 Analytics (分析) 代碼和 iOS 版 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 值推送至資料層,例如:

//  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 (分析),請按照下列步驟操作:

  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 值推送至資料層,例如:

//  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. 建立交易觸發條件
  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.
- (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 商品數量 字串

傳送加強型電子商務資料

如要瞭解如何傳送加強型電子商務資料,請參閱加強型電子商務開發人員指南