Hướng dẫn triển khai ứng dụng di động

Tài liệu này dành cho các nhà phát triển thiết bị di động và mô tả cách sử dụng Google Analytics để đo lường các hoạt động tương tác của người dùng và trả lời các câu hỏi về việc dùng ứng dụng.

Giới thiệu

Google Analytics cho ứng dụng di động cung cấp nền tảng để đo lường các lượt tương tác của người dùng, cho phép bạn hiểu rõ hơn và tối ưu hoá mức độ tương tác của người dùng với ứng dụng của bạn.

Phương thức triển khai mặc định của Google Analytics sẽ tự động cung cấp những thông tin sau về ứng dụng của bạn:

  • Số người dùng và số phiên
  • Thời lượng phiên
  • Hệ điều hành
  • Mẫu thiết bị
  • Khu vực địa lý

Hướng dẫn này sẽ giải thích cách bạn có thể triển khai các tính năng bổ sung của Google Analytics để hiểu rõ hơn về người dùng và hành vi của họ.

Trước khi bắt đầu

Trước khi làm theo hướng dẫn thiết lập Google Analytics cho ứng dụng di động này:

Tổng quan

Người bắt rồng

Hướng dẫn này sử dụng một ứng dụng mẫu để hướng dẫn bạn cách triển khai các tính năng bổ sung của Google Analytics. Ứng dụng này được gọi là Dragon Catcher và có các đặc điểm sau đây về lối chơi:

  • Một cấp độ bao gồm người chơi, rồng, khu vực có hàng rào, giếng nước và cây cối
  • Mục tiêu của người chơi là bắt rồng bằng cách di chuyển chúng vào khu vực có hàng rào
  • Người chơi có thể ghé thăm nhiều khu vực trong cấp độ và các vật thể như giếng nước hoặc cây thần kỳ
  • Người chơi sẽ chuyển sang cấp độ tiếp theo sau khi bắt được tất cả những con rồng
  • Người chơi bắt đầu trò chơi ở cấp độ đầu tiên có tên là Barren Trường.

Khi sử dụng Google Analytics, bạn có thể tìm lời giải đáp cho một số câu hỏi về hành vi của người dùng về Dragon Catcher:

Phần còn lại của tài liệu này minh hoạ cách giải đáp những câu hỏi này bằng cách triển khai các tính năng của Google Analytics cho trò chơi Dragon Catcher.

Người dùng của tôi đang thực hiện những hành động nào? (Sự kiện)

Nếu bạn muốn theo dõi các hành động quan trọng trong ứng dụng của mình, thì bạn có thể sử dụng các sự kiện để mô tả hành động này trong Google Analytics. Một sự kiện bao gồm 4 thông số: category, action, labelvalue.

Ví dụ: trong Dragon Catcher, người dùng giải cứu rồng hoặc ghé thăm một khu vực cụ thể trong cấp độ là những hành động quan trọng mà chúng ta muốn đo lường bằng cách sử dụng sự kiện. Đoạn mã dưới đây minh hoạ cách đo lường điều này trong Google Analytics.

SDK Android

// 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());

SDK iOS

// 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]];

Trình bổ trợ GA cho Unity

// 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);

Đo "thành tích" của người chơi

Bạn có thể đo lường "thành tích" của người chơi thông qua các sự kiện trong Google Analytics. Ví dụ: để đo lường thành tích giải cứu 5 con rồng, số lượng con rồng mà người chơi đã giải cứu sẽ được ghi lại. Sau khi người chơi đạt đến ngưỡng, hệ thống sẽ gửi một sự kiện đến Google Analytics:

SDK Android

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());
  }
}

SDK iOS

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]];
  }
}

Trình bổ trợ GA cho Unity

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);
  }
}

Hướng dẫn cho nhà phát triển về sự kiện

Báo cáo cho sự kiện

Dữ liệu sự kiện có bằng:

Người dùng chi tiêu bao nhiêu tiền trong ứng dụng của tôi? (Thương mại điện tử nâng cao)

Nếu muốn đo lường lượt mua hàng trong ứng dụng của người dùng, bạn có thể sử dụng tính năng theo dõi thương mại điện tử để theo dõi giao dịch mua và tìm hiểu hiệu suất sản phẩm có liên quan cũng như hành vi của người dùng. Bạn có thể sử dụng tính năng theo dõi thương mại điện tử để đo lường lượt mua một mặt hàng cụ thể hoặc đơn vị tiền tệ ảo.

Ví dụ: trong Dragon Catcher, để đo lường giao dịch mua một số mặt hàng, dữ liệu giao dịch được gửi đến Google Analytics bằng một sự kiện:

SDK Android

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());

SDK iOS

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]];

Trình bổ trợ GA cho Unity

// 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);

Nếu người dùng mua tiền ảo, bạn nên đo lường việc đổi tiền thật khi gửi dữ liệu giao dịch đến Google Analytics. Khi người dùng chi tiêu tiền ảo để mua mặt hàng, hãy đo lường hoạt động này bằng cách sử dụng sự kiện. Ví dụ:

SDK Android

/**
 * 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());

SDK iOS

/**
 * 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]];

Trình bổ trợ GA cho Unity

// 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);

Hướng dẫn cho nhà phát triển về tính năng thương mại điện tử nâng cao

Báo cáo cho thương mại điện tử nâng cao

Dữ liệu thương mại điện tử có sẵn bằng:

Người dùng có hoàn thành các mục tiêu mà tôi đề ra cho ứng dụng không? (Mục tiêu)

Nếu có mục tiêu cụ thể cho ứng dụng và muốn người dùng hoàn thành thì bạn có thể xác định và đo lường các mục tiêu này bằng cách sử dụng Mục tiêu trong Google Analytics. Ví dụ: mục tiêu có thể là để người dùng đạt đến một cấp độ trò chơi nhất định hoặc mua một mặt hàng. Để tìm hiểu thêm về cách hoạt động của mục tiêu, hãy xem bài viết Giới thiệu về mục tiêu (Trung tâm trợ giúp).

Trong trò chơi Dragon Catcher, bạn có thể thiết lập mục tiêu để đo lường thời điểm thực hiện giao dịch mua hàng trong ứng dụng nếu sự kiện được gửi đến Google Analytics cho mỗi giao dịch mua. Bạn có thể xác định mục tiêu trong quản trị viên giao diện web mà không cần bất kỳ mã bổ sung nào bằng cách sử dụng các tham số sau:

  • Loại mục tiêu (Bằng): Sự kiện
  • Danh mục (Bằng): Cửa hàng trong trò chơi
  • Hành động (Bằng): Purchase
  • Sử dụng Giá trị sự kiện làm Giá trị mục tiêu cho lượt chuyển đổi:

Báo cáo mục tiêu

Dữ liệu mục tiêu có sẵn bằng:

Người dùng có một đặc điểm cụ thể hành xử như thế nào? (Phương diện và chỉ số tuỳ chỉnh)

Nếu muốn theo dõi người dùng bằng những thuộc tính/đặc điểm/siêu dữ liệu cụ thể thì bạn có thể sử dụng phương diện tuỳ chỉnh để gửi loại dữ liệu này đến Google Analytics và trong bản phân tích. Vui lòng xem tài liệu tham khảo về tính năng Chỉ số và Phương diện tuỳ chỉnh để tìm hiểu thêm về cách hoạt động của phương diện tuỳ chỉnh.

Ví dụ: trong Dragon Catcher, để tìm hiểu tỷ lệ phần trăm người dùng ở cấp đầu tiên, cấp thứ hai, v.v., bạn có thể đặt một phương diện tuỳ chỉnh theo cấp hiện tại của người dùng và gửi đến Google Analytics. Các bước thực hiện:

  1. Tạo một phương diện tuỳ chỉnh có phạm vi User. Phạm vi User được dùng vì giá trị này phải được duy trì trong tất cả các phiên của người dùng đó. Hãy xem bài viết Thiết lập hoặc chỉnh sửa phương diện tuỳ chỉnh (Trung tâm trợ giúp).
  2. Cập nhật giá trị phương diện tuỳ chỉnh khi cấp của người dùng thay đổi.

Đoạn mã sau minh hoạ cách cập nhật trạng thái của người dùng trong Google Analytics, trong đó chỉ mục phương diện tuỳ chỉnh cấp người dùng là 1 và cấp của người dùng đã thay đổi thành Barren Fields:

SDK Android

// 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()
);

SDK iOS

// 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]];

Trình bổ trợ GA cho Unity

// 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"));

Hướng dẫn cho nhà phát triển về chỉ số và thứ nguyên tùy chỉnh

Báo cáo cho các phương diện và chỉ số tuỳ chỉnh

Bạn có thể đưa phương diện tuỳ chỉnh vào và áp dụng dưới dạng một phân đoạn cho:

Việc áp dụng thứ nguyên tùy chỉnh dưới dạng phân đoạn sẽ cho phép bạn phân tích những người dùng hiện đang ở một cấp cụ thể trong trò chơi.

Người dùng mất bao lâu để hoàn thành một thao tác? (Thời gian tùy chỉnh)

Nếu muốn đo lường thời gian cần thiết để hoàn thành một hoạt động nào đó trong ứng dụng, thì bạn có thể sử dụng thời gian người dùng cho các hoạt động đo lường dựa trên thời gian trong Google Analytics. Thời gian người dùng tương tự như các sự kiện, nhưng dựa trên thời gian và có thể bao gồm category, value, name (variable)label. Để tìm hiểu về cách hoạt động của thời gian người dùng, hãy xem bài viết Giới thiệu về Tốc độ trang web.

Ví dụ: trong Dragon Catcher để đo thời gian người dùng giải cứu con rồng đầu tiên, bạn có thể gửi nội dung như:

SDK Android

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

SDK iOS

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

Trình bổ trợ GA cho Unity

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

Hướng dẫn dành cho nhà phát triển về dấu thời gian tuỳ chỉnh

Báo cáo về thời gian tuỳ chỉnh

Dữ liệu về thời gian tuỳ chỉnh hiện có bằng:

  • Học viện Analytics – Cải thiện kỹ năng sử dụng Analytics thông qua các khoá học trực tuyến miễn phí, bao gồm cả những kiến thức cơ bản về phân tích ứng dụng.
  • SDK và API thu thập – Tìm hiểu về tất cả các cách bạn có thể gửi dữ liệu đến Google Analytics