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 ứng dụng di động và mô tả cách sử dụng Google Analytics để đo lường hoạt động tương tác của người dùng và trả lời các thắc mắc về mức sử dụng ứng dụng.

Giới thiệu

Google Analytics cho ứng dụng di động cung cấp một nền tảng để đo lường mức độ tương tác của người dùng, giú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.

Theo mặc định, cách triển khai Google Analytics sẽ tự động cung cấp 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 thực hiện 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ó tên là Dragoncatcher và có các đặc điểm về lối chơi như sau:

  • Một cấp độ bao gồm một người chơi, những chú rồng, một khu vực có hàng rào, một 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ó rào chắn
  • Người chơi có thể ghé thăm nhiều khu vực trong cấp độ và các vật thể như một chiếc giếng hoặc cây ma thuật
  • 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à Bard field.

Khi sử dụng Google Analytics, bạn có thể tìm được một số câu trả lời 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 trả lời 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 có các hành động quan trọng mà bạn muốn theo dõi trong ứng dụng của mình thì các sự kiện có thể được dùng để mô tả hành động này trong Google Analytics. Một sự kiện bao gồm 4 tham số: category, action, labelvalue.

Ví dụ: trong Dragoncatcher, người dùng giải cứu một con 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 các sự kiện. Đoạn mã dưới đây minh hoạ cách đo lường chỉ số 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 lường "thành tích" của người chơi

Có thể đo lường "thành tích" của người chơi bằng cách sử dụng 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 được ghi lại và sau khi người chơi đạt đến ngưỡng, một sự kiện sẽ được gửi đế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ó trong:

Người dùng chi 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 lượt mua hàng và hiểu rõ 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 một đơ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 thông qua 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 hoạt động trao đổ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 các mặt hàng, hãy đo lường mức độ này bằng cách sử dụng các 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ề 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 trong:

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

Nếu có mục tiêu cụ thể cho ứng dụng và bạn 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 một 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 trang quản trị giao diện web mà không cần thêm mã nào bằng cách sử dụng các thông số sau:

  • Loại mục tiêu (Bằng): Event
  • Danh mục (Bằng): In-Game Store
  • 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 trong:

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

Nếu muốn theo dõi người dùng có các thuộc tính/đặc điểm/siêu dữ liệu cụ thể, thì bạn có thể sử dụng thứ nguyên tùy chỉnh để gửi loại dữ liệu này đến Google Analytics và trong bản phân tích. Hãy xem Tài liệu tham khảo về tính năng Phương diện và Chỉ số 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 ra tỷ lệ phần trăm người dùng ở cấp thứ nhất, cấp thứ hai, v.v., bạn có thể đặ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 phương diện tuỳ chỉnh có phạm vi User. Phạm vi User được dùng vì giá trị này sẽ vẫn tồn tại trên tất cả các phiên hoạt động 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ề Phương diện và Chỉ số tuỳ chỉnh

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

Bạn có thể đưa vào và áp dụng thứ nguyên tùy chỉnh dưới dạng một phân đoạn cho:

Việc áp dụng thứ nguyên tùy chỉnh làm phân đoạn sẽ cho phép bạn phân tích 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 tác vụ? (Thời gian tùy chỉnh)

Nếu muốn đo lường thời gian hoàn tất một công việc trong ứng dụng, bạn có thể sử dụng thời gian người dùng để đo lường dựa trên thời gian trong Google Analytics. Thời gian người dùng cũng tương tự như 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 Dragoncatcher, để đo lường khoảng thời gian người dùng cần để giải cứu con rồng đầu tiên của họ, bạn có thể gửi những 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 cho nhà phát triển về dấu thời gian tuỳ chỉnh

Báo cáo cho dấu thời gian tuỳ chỉnh

Dữ liệu dấu thời gian tuỳ chỉnh có tại:

  • Học viện Analytics – Cải thiện kỹ năng Analytics của bạn thông qua các khóa học trực tuyến miễn phí, bao gồm cả kiến thức cơ bản về phân tích ứng dụng dành cho thiết bị di động.
  • API và SDK 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