行動應用程式導入指南

本文適用對象為行動裝置開發人員,說明如何使用 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。如要進一步瞭解事件在 Google Analytics (分析) 中的運作方式,請參閱事件追蹤剖析

舉例來說,在 Dragon Catcher 中,當使用者拯救龍或造訪樓層中的特定區域,是使用事件進行評估的重要動作。以下程式碼片段說明如何在 Google Analytics (分析) 中評估。

Android SDK 第 4 版

// 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 第 3 版

// 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 v3 適用的 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 第 4 版

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 第 3 版

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 v3 適用的 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 第 4 版

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 第 3 版

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 v3 適用的 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 第 4 版

/**
 * 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 第 3 版

/**
 * 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 *builder = [GAIDictionaryBuilder createScreenView];

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

// Send the transaction with the screenview.
[tracker set:kGAIScreenName value:@"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.
 */
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store"
                                                                       action:@"Purchase"
                                                                        label:@"Sword"
                                                                        value:@35];
[tracker send:[builder build]];

Unity v3 適用的 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 第 4 版

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

iOS SDK 第 3 版

// 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 v3 適用的 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 第 4 版

// 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 第 3 版

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

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

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

自訂時間的開發人員指南

自訂時間的報表

提供自訂時間資料的國家/地區如下: