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 fornece 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
- Geografia
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 de configuração do Google Analytics para aplicativos para dispositivos móveis:
- Instale o SDK específico da plataforma que você segmenta:
- Analise as Práticas recomendadas para a configuração do Mobile App Analytics
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 o Dragon Catcher são:
- Que ações meus usuários estão realizando? (Eventos)
- Quanto os usuários estão gastando no meu aplicativo? (Comércio eletrônico)
- Os usuários estão concluindo os objetivos do meu aplicativo? (Metas)
- Como se comportam os usuários com uma característica específica? (Dimensões / métricas personalizadas)
- Quanto tempo um usuário leva para realizar uma tarefa? (Tempos personalizados)
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
.
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
// 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
// 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
// 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
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
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
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
- Acompanhamento de eventos: SDK para Android
- Acompanhamento de eventos: SDK para iOS
- Eventos: plug-in do GA para Unity
Relatório de eventos
Os dados de eventos estão disponíveis:
- Na interface da Web, em Comportamento >> Eventos >> Principais eventos
- Nos relatórios personalizados
- Na API de relatórios principais
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
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
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
// 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. Por exemplo:
SDK para 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 para 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]];
Plug-in do GA para 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);
Guias do desenvolvedor para comércio eletrônico avançado
- Acompanhamento de comércio eletrônico avançado - SDK para Android
- Acompanhamento de comércio eletrônico avançado - SDK para iOS
- Comércio eletrônico - plug-in do GA para Unity
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 poderá ser configurada para avaliar a realização de compras no aplicativo se um evento for 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:
- Na interface da Web, em Conversões >> Metas >> Visão geral
- Nos relatórios personalizados
- Na API de relatórios principais
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. As etapas são:
- Criar uma dimensão personalizada com um escopo
User
. O escopoUser
é usado porque esse valor deve persistir em todas as sessões desse usuário. Consulte Configurar ou editar dimensões personalizadas (Central de Ajuda). - 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, onde o índice de dimensão personalizada do nível do usuário é 1
, e o nível do usuário mudou para Barren Fields
:
SDK para 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 para 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]];
Plug-in do GA para 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"));
Guias do desenvolvedor para dimensões e métricas personalizadas
- Dimensões e métricas personalizadas: SDK para Android
- Dimensões e métricas personalizadas: SDK para iOS
- Dimensões e métricas personalizadas: plug-in do GA para Unity
Relatório de dimensões e métricas personalizadas
As dimensões personalizadas podem ser aplicadas como um segmento e incluídas:
- Na maioria dos relatórios padrão na interface da Web
- Nos relatórios personalizados
- Na API de relatórios principais
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 aos eventos, mas tem o tempo como base 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
// 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
[tracker send:[[GAIDictionaryBuilder createTimingWithCategory:@"Barren Fields" interval:@45000 // 45 seconds. name:@"First Rescue" label:@"Dragon"] build]];
Plug-in do GA para Unity
// Build and send a timing hit. googleAnalytics.LogTiming("Barren Fields",45000,"First Rescue","Dragon");
Guias do desenvolvedor sobre tempos personalizados
- Velocidades do usuário – SDK para Android
- Velocidades do usuário – SDK para iOS
- Velocidades do usuário – plug-in do GA para Unity
Relatório de tempos personalizados
Os dados de tempos personalizados estão disponíveis:
- Na interface da Web, em Comportamento > Velocidade do aplicativo
- Nos relatórios personalizados
- Na API de relatórios principais
Recursos relacionados
- Analytics Academy: melhore suas habilidades no Google Analytics com cursos on-line gratuitos, incluindo os princípios básicos do Mobile App Analytics.
- APIs e SDKs de coleta: conheça todas as maneiras de enviar dados ao Google Analytics.