行動應用程式導入指南

本文件適用於行動開發人員,並說明如何使用 Google Analytics (分析) 評估使用者互動,並回答應用程式使用情形的相關問題。

引言

Google Analytics (分析) 行動應用程式提供了評估使用者互動的平台,可讓您進一步瞭解使用者及與應用程式互動的方式。

Google Analytics (分析) 的預設導入方式會自動提供下列應用程式相關資訊:

  • 使用者人數和工作階段
  • 工作階段持續時間
  • 作業系統
  • 裝置型號
  • 地理位置

本指南將說明如何導入額外的 Google Analytics (分析) 功能,進一步瞭解使用者及其行為。

事前準備

在開始設定行動應用程式的 Google Analytics (分析) 之前,請先完成下列事項:

總覽

龍拳

本指南使用範例應用程式逐步引導您實作其他 Google Analytics (分析) 功能。名為 Dragon Catcher 的應用程式,其遊戲特性如下:

  • 關卡由玩家、龍、圍欄區和樹木構成
  • 玩家的目標是將龍子移至設有圍欄的區域
  • 玩家可以造訪關卡的不同區域,以及洞穴或魔法樹等物件
  • 玩家抓到所有龍族後,晉級到下一個關卡
  • 玩家可以在第一層遊戲開始,名為「Barren Fields」。

使用 Google Analytics (分析),您可以回答有關 Dragon Catcher 的使用者行為相關問題:

本文件的其餘部分將說明如何針對 Dragon Catcher 遊戲導入 Google Analytics (分析) 功能來回答這些問題。

我的使用者有哪些動作?(事件)

如果您想在應用程式中追蹤重要動作,可以使用事件在 Google Analytics (分析) 中說明這項動作。事件包含四個參數:categoryactionlabelvalue

舉例來說,在 Dragon Catcher 中,使用者取得拖曳或造訪等級的特定區域時,是我們想使用事件來評估的重要動作。下方程式碼片段說明如何在 Google Analytics (分析) 中評估。

Android SDK

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Rescue")
    .setLabel("Dragon")
    .setValue(1)
    .build());

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Visited")
    .setLabel("Magic Tree")
    .setValue(1)
    .build());

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Visited")
    .setLabel("Well")
    .setValue(1)
    .build());

iOS SDK

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Rescue"
                                                       label:@"Dragon"
                                                       value:@1] build]];

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Visited"
                                                       label:@"Magic Tree"
                                                       value:@1] build]];

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Visited"
                                                       label:@"Well"
                                                       value:@1] build]];

適用於 Unity 的 Google Analytics (分析) 外掛程式

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
googleAnalytics.LogEvent("Barren Fields", "Rescue", "Dragon", 1);

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
googleAnalytics.LogEvent("Barren Fields", "Visited", "Magic Tree", 1);

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
googleAnalytics.LogEvent("Barren Fields", "Visited", "Well", 1);

測量玩家「成就」

「玩家成就」:可使用 Google Analytics (分析) 中的事件來評估。舉例來說,如要測量救援 5 個龍的成就,系統會記錄玩家已取得的蟠龍數量,並在玩家達到事件門檻時傳送至 Google Analytics (分析):

Android SDK

if (numDragonsRescued > 5) {
  if (!user.hasAchievement(RESCUED_ACHIEVEMENT) {
    tracker.send(new HitBuilders.EventBuilder()
        .setCategory("Achievement")
        .setAction("Unlocked")
        .setLabel("5 Dragons Rescued")
        .setValue(1)
        .build());
  } else {
    tracker.send(new HitBuilders.EventBuilder()
        .setCategory("Achievement")
        .setAction("Earned")
        .setLabel("5 Dragons Rescued")
        .setValue(1)
        .build());
  }
}

iOS SDK

if (numDragonsRescued > 5) {
  if (![user hasAchievement:RESCUED_ACHIEVEMENT]) {
    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Achievement"
                                                          action:@"Unlocked"
                                                           label:@"5 Dragons Rescued"
                                                           value:@1] build]];
  } else {
    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Achievement"
                                                          action:@"Earned"
                                                           label:@"5 Dragons Rescued"
                                                           value:@1] build]];
  }
}

適用於 Unity 的 Google Analytics (分析) 外掛程式

if (numDragonsRescued > 5) {
  if (!user.HasAchievement(RESCUED_ACHIEVEMENT)) {
    googleAnalytics.LogEvent("Achievement", "Unlocked", "5 Dragons Rescued", 1);
  } else {
    googleAnalytics.LogEvent("Achievement", "Earned", "5 Dragons Rescued", 1);
  }
}

活動開發人員指南

事件報表

事件資料適用於:

使用者在應用程式中花費多少錢?(加強型電子商務)

如果您想依使用者評估應用程式內購,則可使用電子商務追蹤來追蹤購買,並瞭解相關產品成效和使用者行為。電子商務追蹤可用於評估特定商品或虛擬貨幣的購買情形。

例如,在 Dragon Catcher 中,如要評估部分商品的購買情形,系統會將交易資料連同事件一起傳送至 Google Analytics (分析):

Android SDK

Product product = new Product()
    .setName("Dragon Food")
    .setPrice(40.00);

ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T12345");

// Add the transaction data to the event.
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setCategory("In-Game Store")
    .setAction("Purchase")
    .addProduct(product)
    .setProductAction(productAction);

// Send the transaction data with the event.
tracker.send(builder.build());

iOS SDK

GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setName:@"Dragon Food"];
[product setPrice:@40.00];

GAIEcommerceProductAction *productAction = [[GAIEcommerceProductAction alloc] init];
[productAction setAction:kGAIPAPurchase];
[productAction setTransactionId:@"T12345"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store"
                                                                       action:@"Purchase"
                                                                        label:nil
                                                                        value:nil];
// Add the transaction data to the event.
[builder setProductAction:productAction];
[builder addProduct:product];

// Send the transaction data with the event.
[tracker send:[builder build]];

適用於 Unity 的 Google Analytics (分析) 外掛程式

// Note: Using Android SDK v3 and standard Ecommerce tracking.

googleAnalytics.LogItem("T12345", "Dragon Food", "Food_SKU", "Items", 40.00, 1);
googleAnalytics.LogTransaction("T12345", "In-Game Store", 40.00, 0.00, 0.00);

如果使用者購買虛擬貨幣,建議在將交易資料傳送至 Google Analytics (分析) 時評估實際貨幣的交換。當使用者以虛擬貨幣購買商品時,請使用事件來評估。例如:

Android SDK

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */
Product product = new Product()
    .setName("2500 Gems")
    .setPrice(5.99);

ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T67890");

// Add the transaction to the screenview.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

// Send the transaction with the screenview.
tracker.setScreenName("In-Game Store");
tracker.send(builder.build());


/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setCategory("In-Game Store")
    .setAction("Purchase")
    .setLabel("Sword")
    .setValue(35);
tracker.send(builder.build());

iOS SDK

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setName:@"2500 Gems"];
[product setPrice:@5.99];

GAIEcommerceProductAction *productAction = [[GAIEcommerceProductAction alloc] init];
[productAction setAction:kGAIPAPurchase];
[productAction setTransactionId:@"T67890"];

GAIDictionaryBuilder *viewBuilder = [GAIDictionaryBuilder createScreenView];

// Add the transaction data to the screenview.
[viewBuilder setProductAction:productAction];
[viewBuilder addProduct:product];

// Send the transaction with the screenview.
[tracker set:kGAIScreenName value:@"In-Game Store"];
[tracker send:[viewBuilder build]];


/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
GAIDictionaryBuilder *eventBuilder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store"
                                                                       action:@"Purchase"
                                                                        label:@"Sword"
                                                                        value:@35];
[tracker send:[eventBuilder build]];

適用於 Unity 的 Google Analytics (分析) 外掛程式

// Note: Using Android SDK v3 and standard Ecommerce tracking.

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */

googleAnalytics.LogItem("T12345", "2500 Gems", "GEM2500_SKU", "Items", 5.99, 1);
googleAnalytics.LogTransaction("T12345", "In-Game Store", 5.99, 0.00, 0.00);

/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
googleAnalytics.LogEvent("In-Game Store", "Purchase", "Sword", 35);

加強型電子商務開發人員指南

加強型電子商務報表

電子商務資料適用於:

使用者完成應用程式目標了嗎?(目標)

如果您想讓應用程式達成特定目標,可以使用 Google Analytics (分析) 中的目標來定義和評估這些目標。舉例來說,目標可以是使用者達到特定遊戲等級或購買商品。如要進一步瞭解目標的運作方式,請參閱「關於目標 (說明中心)」。

Dragon Catcher 遊戲中,您可以設定目標,以便在每次購買交易將事件傳送至 Google Analytics (分析) 時,評估應用程式內購的時間。你可以使用下列參數,在網頁介面管理員中定義目標,無需使用任何額外程式碼:

  • 目標類型 (等於):事件
  • 類別 (等於):遊戲內商店
  • 動作 (等於):購買
  • 使用「事件價值」做為轉換的目標價值:

目標報表

目標資料適用於:

具有特定特徵的使用者會有什麼行為?(自訂維度和指標)

如要追蹤特定屬性/特性/中繼資料的使用者,則可使用自訂維度傳送這類資料給 Google Analytics (分析) 並進行分析。如要進一步瞭解自訂維度的運作方式,請參閱「自訂維度和指標功能參考資料」一文。

以「Dragon Catcher」為例,如要瞭解第一層和第二層等使用者的百分比,可以使用使用者目前的層級設定自訂維度並傳送至 Google Analytics (分析)。步驟如下:

  1. 使用 User 範圍建立自訂維度。 之所以使用 User 範圍,是因為這個值會套用至每位使用者的所有工作階段。請參閱設定或編輯自訂維度 (說明中心) 一文。
  2. 在使用者層級變更時,更新自訂維度值。

下列程式碼片段說明如何在 Google Analytics (分析) 中更新使用者狀態,也就是使用者層級自訂維度索引為 1,且使用者層級已變更為 Barren Fields

Android SDK

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
tracker.setScreenName("BarrenFields");
tracker.send(new HitBuilders.ScreenViewBuilder()
    .setCustomDimension(1, "Barren Fields")
    .build()
);

iOS SDK

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
[tracker set:kGAIScreenName value:@"BarrenFields"];
[tracker send:[[[GAIDictionaryBuilder createScreenView]
         set:@"Barren Fields"
      forKey:[GAIFields customDimensionForIndex:1]] build]];

適用於 Unity 的 Google Analytics (分析) 外掛程式

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
googleAnalytics.LogScreen(new AppViewHitBuilder()
    .SetScreenName("BarrenFields").SetCustomDimension(1, "Barren Fields"));

自訂維度開發人員指南 指標

自訂維度報表 與指標

自訂維度可以納入並做為區隔套用:

將自訂維度套用為區隔,您就能分析目前在遊戲中特定關卡的使用者。

使用者需要多久時間才能完成工作?(自訂時間)

如要評估使用者在應用程式中完成多久時間,可以在 Google Analytics (分析) 中根據時間進行評估。使用者載入時間與事件相似,但以時間為準,可以加入 categoryvaluename (variable)label。如要瞭解使用者載入時間的運作方式,請參閱「關於網站速度」一文。

例如,在 Dragon Catcher 中,對於使用者執行第一個拖曳龍所需的時間,如要測量他們需要多久時間,您可以傳送如下的內容:

Android SDK

// Build and send a timing hit.
tracker.send(new HitBuilders.TimingBuilder()
    .setCategory("Barren Fields")
    .setValue(45000)  // 45 seconds.
    .setVariable("First Rescue")
    .setLabel("Dragon")
    .build());

iOS SDK

[tracker send:[[GAIDictionaryBuilder createTimingWithCategory:@"Barren Fields"
                                                     interval:@45000   // 45 seconds.
                                                         name:@"First Rescue"
                                                        label:@"Dragon"] build]];

適用於 Unity 的 Google Analytics (分析) 外掛程式

// Build and send a timing hit.
googleAnalytics.LogTiming("Barren Fields",45000,"First Rescue","Dragon");

自訂時間碼的開發人員指南

自訂時間報表

自訂時間資料支援以下語言: