Guia de implementação de apps para dispositivos móveis

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Este documento é voltado para desenvolvedores de dispositivos móveis e descreve como usar o Google Analytics para avaliar as interações do usuário e responder a perguntas sobre o uso do aplicativo.

Introdução

O Google Analytics para aplicativos para dispositivos móveis fornece uma plataforma para avaliar as interações do usuário, permitindo que você compreenda e otimize melhor o engajamento dos usuários com seu aplicativo.

A implementação padrão do Google Analytics fornecerá automaticamente as seguintes informações sobre seu aplicativo:

  • número de usuários e sessões
  • duração da sessão
  • sistemas operacionais
  • modelos de dispositivos
  • região geográfica

Este guia explica como você pode implementar recursos adicionais do Google Analytics para entender melhor seus usuários e o comportamento deles.

Antes de começar

Antes de analisar este guia, recomendamos que você confira os recursos abaixo para saber como configurar o Google Analytics para aplicativos para dispositivos móveis:

Visão geral

Dragon Catcher

Este guia usa um aplicativo de exemplo para oferecer a você orientações detalhadas sobre os recursos adicionais do Google Analytics. O aplicativo é chamado de Dragon Catcher e tem as seguintes características de jogabilidade:

  • Um nível consiste em um jogador, dragões, uma área cercada, um poço e árvores
  • O objetivo do jogador é capturar dragões e prendê-los na área cercada
  • O jogador pode visitar diferentes áreas do nível e objetos como um poço ou uma árvore mágica
  • O jogador avança para o próximo nível depois de capturar todos os dragões
  • O jogador começa o jogo no primeiro nível, que se chama "Barren Fields".

Usando o Google Analytics, algumas das perguntas sobre o comportamento do usuário que podem ser respondidas sobre Dragon Catcher são:

O restante deste documento ilustra como essas perguntas podem ser respondidas com a implementação de recursos do Google Analytics ao jogo Dragon Catcher.

Que ações meus usuários estão realizando? (Eventos)

Se houver ações importantes que você quer acompanhar no seu aplicativo, os eventos poderão ser usados para descrevê-las no Google Analytics. Um evento consiste em quatro parâmetros: category, action, label e value. Para detalhes sobre como os eventos funcionam no Google Analytics, consulte Anatomia do acompanhamento de eventos.

Por exemplo, no Dragon Catcher, a captura de um dragão ou a visita a uma área específica no nível são ações importantes que queremos medir com o uso de eventos. O snippet de código abaixo ilustra como avaliar esses pontos no Google Analytics.

SDK para Android v4

// 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 para iOS v3

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

Plug-in do GA para Unity v3

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

Avaliação das "conquistas" do jogador

As "conquistas" dos jogadores podem ser avaliadas usando os eventos no Google Analytics. Por exemplo, para avaliar a conquista de capturar cinco dragões, o número de dragões que o jogador capturou é registrado e, em seguida, quando o jogador atinge o limite, um evento é enviado ao Google Analytics:

SDK para Android v4

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 para iOS v3

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

Plug-in do GA para Unity v3

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

Guias do desenvolvedor sobre eventos

Relatório de eventos

Os dados de eventos estão disponíveis:

Quanto os usuários estão gastando no meu aplicativo? (Comércio eletrônico avançado)

Se você quiser avaliar as compras no aplicativo dos usuários, o acompanhamento de comércio eletrônico pode ser usado para acompanhar a compra e entender o desempenho do produto relacionado e o comportamento do usuário. Esse recurso pode ser usado para avaliar a compra de um item específico ou uma moeda virtual.

Por exemplo, no Dragon Catcher, para avaliar a compra de alguns itens, os dados da transação são enviados para o Google Analytics com um evento:

SDK para Android v4

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 para iOS v3

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

Plug-in do GA para Unity v3

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

Se um usuário compra moeda virtual, convém avaliar o câmbio de dinheiro real ao enviar os dados da transação para o Google Analytics. Quando o usuário gasta a moeda virtual para comprar itens, avalie essa ação usando eventos. Exemplo:

SDK para Android v4

/**
 * 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 para iOS v3

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

Plug-in do GA para Unity v3

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

Guias do desenvolvedor para comércio eletrônico avançado

Relatório de comércio eletrônico avançado

Os dados de comércio eletrônico estão disponíveis:

Os usuários estão concluindo os objetivos do meu aplicativo? (Metas)

Se você quiser que os usuários concluam objetivos específicos no seu aplicativo, defina e avalie esses objetivos usando as metas do Google Analytics. Por exemplo, uma meta poderia ser chegar a um determinado nível do jogo ou comprar um item. Para saber mais sobre como as metas funcionam, consulte Sobre as metas (Central de Ajuda).

No jogo Dragon Catcher, uma meta pode ser configurada para medir quando as compras no app são feitas se um evento é enviado ao Google Analytics para cada compra. A meta pode ser definida no administrador da interface da Web sem qualquer código adicional, utilizando os seguintes parâmetros:

  • Tipo de meta (é igual a): evento
  • Categoria (é igual a): loja no jogo
  • Ação (é igual a): compra
  • Usar o valor do evento como o valor da meta para a conversão: sim

Relatórios de metas

Os dados de metas estão disponíveis:

Como se comportam os usuários com uma característica específica? (dimensões e métricas personalizadas)

Se você quer acompanhar os usuários com atributos/características/metadados específicos, as dimensões personalizadas podem ser utilizadas para enviar esse tipo de dados para o Google Analytics e para análise. Veja a Referência do recurso de dimensões e métricas personalizadas para saber mais sobre como as dimensões personalizadas funcionam.

Por exemplo, no Dragon Catcher, para descobrir a porcentagem de usuários que estão no primeiro nível, segundo nível etc., uma dimensão personalizada pode ser definida com o nível atual do usuário e enviada para o Google Analytics. Essas etapas são:

  1. Crie uma dimensão personalizada com um escopo User. O escopo User é usado porque esse valor precisa persistir em todas as sessões desse usuário. Consulte Configurar ou editar dimensões personalizadas (Central de Ajuda).
  2. Atualizar o valor da dimensão personalizada quando o nível do usuário tiver mudado.

O snippet a seguir ilustra como atualizar o estado do usuário no Google Analytics, em que o índice da dimensão personalizada no nível do usuário é 1 e o nível do usuário mudou para Barren Fields:

SDK para Android v4

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

SDK para iOS v3

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

Plug-in do GA para Unity v3

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

Guias do desenvolvedor para dimensões e métricas personalizadas

Relatório de dimensões e métricas personalizadas

As dimensões personalizadas podem ser aplicadas como um segmento e incluídas:

Aplicar a dimensão personalizada como um segmento permite a você analisar os usuários que estão atualmente em um nível específico do jogo.

Quanto tempo um usuário leva para realizar uma tarefa? (tempos personalizados)

Se você quer avaliar quanto tempo leva para uma tarefa ser realizada no aplicativo, a velocidade do usuário pode ser usada para avaliações com base em tempo no Google Analytics. A velocidade do usuário é semelhante a eventos, mas é baseada em tempo e pode incluir category, value, name (variable) e label. Para saber mais sobre como a velocidade do usuário funciona, consulte Sobre a velocidade do site.

Por exemplo, no Dragão Catcher, para avaliar quanto tempo leva para um usuário para capturar seu primeiro dragão, você pode enviar algo como:

SDK para Android v4

// 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 para iOS v3

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

Plug-in do GA para Unity v3

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

Guias do desenvolvedor sobre tempos personalizados

Relatório de tempos personalizados

Os dados de tempos personalizados estão disponíveis:

  • Analytics Academy - melhore suas habilidades no Google Analytics com cursos on-line sem custo financeiro, incluindo os princípios básicos do Mobile App Analytics.
  • APIs e SDKs de coleta - conheça todas as maneiras como você pode enviar dados para o Google Analytics.