Android v3 (legado) – Tags do Universal Analytics

Neste guia, descrevemos como implementar tags comuns do Universal Analytics usando o SDK do Gerenciador de tags do Google para Android.

  1. Configurações comuns de tag do Universal Analytics (UA)
    1. Enviar visualizações do app (exibições de tela)
    2. Enviar eventos
    3. Envio de transações de e-commerce
      1. Variáveis da camada de dados de e-commerce
    4. Atribuição do referenciador de instalação

Configurações comuns de tag do Universal Analytics (UA)

Ao implementar o Universal Analytics no seu aplicativo com o Gerenciador de tags do Google, você faz mudanças na implementação do Google Analytics que não exigem a recriação e o reenvio do binário do app aos marketplaces.

Neste guia, mostramos como realizar as seguintes tarefas usando as tags do Universal Analytics e o SDK do Gerenciador de tags do Google para Android:

Envio de visualizações do app (exibições de tela)

Para enviar uma visualização do aplicativo (exibição de tela) ao Google Analytics cada vez que uma nova tela for aberta em um aplicativo:

  1. Criar uma macro de nome de tela
  2. Criar uma regra OpenScreenEvent
  3. Criar uma tag de visualização do aplicativo (exibição de tela) do UA
  4. Atualizar o código para enviar o evento e o nome da tela para a camada de dados

1. Criar uma macro de nome de tela

Crie uma nova macro de nome de tela com os seguintes valores de configuração:

Nome da macro : screen name
Tipo de macro : Data Layer Variable
Nome da variável da camada de dados : screenName

2. Criar uma regra OpenScreenEvent

Crie uma nova regra que será usada para disparar a nova tag de visualização do aplicativo (exibição de tela) do UA usando os seguintes valores de configuração:

Nome da regra : OpenScreenEvent
Condições: {{ event }} é igual a openScreen

3. Criar uma tag do UA (exibição de tela) do aplicativo

Crie uma nova tag do UA usando os seguintes valores de configuração:

Nome da tag : Screen Open
ID de acompanhamento : Seu ID da propriedade
Tipo de tag : Universal Analytics (beta)
Tipo de acompanhamento : AppView
Configuração básica - Nome do app : {{ app name }}
Configuração básica - Versão do app : {{ app version }}
Configuração básica - Nome da tela : {{ screen name }}}

4. Atualizar o código para enviar o evento e o nome da tela para a camada de dados

Adicione o código ao app para enviar um evento openScreen e um valor screenName à camada de dados, como neste exemplo:

// Push an 'openScreen' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

  private static final String SCREEN_NAME = "Home Screen";
  private DataLayer mDataLayer;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate();
  }

  @Override
  public void onStart() {
    super.onStart();
    mDataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    mDataLayer.push(DataLayer.mapOf("event", "openScreen",        // Event, Name of Open Screen Event.
                                    "screenName", SCREEN_NAME));  // Name of screen name field, Screen name value.
  }
}

Como enviar eventos

Para enviar um evento ao Google Analytics quando um usuário interage com os controles de IU ou o conteúdo no seu app:

  1. (Opcional) Criar macros de eventos
  2. Criar uma regra de evento
  3. Criar uma tag de evento do UA
  4. Atualizar o código para "Enviar evento" e qualquer valor de macro de evento para a camada de dados

As etapas a seguir mostram como isso funcionaria para um evento que é disparado quando um usuário inicia uma reprodução de vídeo.

1. (Opcional) Criar macros de evento

Se o evento usar qualquer variável da camada de dados para os campos de categoria, ação, rótulo ou valor, você precisará configurar essas macros primeiro na interface. Neste exemplo, a tag de evento de reprodução de vídeo vai depender de uma variável da camada de dados que fornece o nome do vídeo que foi reproduzido.

Para implementar esse nome de vídeo, criaríamos uma nova macro com os seguintes valores de configuração:

Nome da macro : video name
Tipo de macro: Data Layer Variable
Nome da variável da camada de dados : videoName

2. Criar uma regra de evento

Crie uma regra que faça com que a tag de evento seja disparada quando enviada para a camada de dados. No exemplo de reprodução de vídeo, essa nova regra teria os seguintes valores de configuração:

Nome da regra : VideoPlayEvent
Condições : {{ event }} é igual a videoPlay

Criar uma tag de evento do UA

Crie uma tag de evento do UA que será disparada quando a regra criada na etapa anterior for avaliada como true. No exemplo de reprodução de vídeo, essa tag ficaria assim:

Nome da tag : Video Play Event
ID de acompanhamento : ID da sua propriedade
Tipo de tag : Universal Analytics (beta)
Tipo de tag: Event
Parâmetros de acompanhamento de eventos - Categoria: Video
Parâmetros de acompanhamento de eventos - Ação: Play
Parâmetros de acompanhamento de eventos - Etiqueta: {{ video name }}
Configuração básica - Nome do app: {{ app name }}
Configuração básica - Versão do app: {{ app version }}

{{ screen name }}

Atualizar código para enviar o evento à camada de dados

Por fim, atualize seu código para enviar à camada de dados o valor do evento e as variáveis da camada de dados exigidas pela tag quando o usuário concluir a interação. No exemplo de reprodução de vídeo, o código ficaria assim:

//  Push a 'videoPlay' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

public class VideoPlayer {

  // Called when a user initiates a video playback.
  public void onPlay(Video v) {
    DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    dataLayer.push(DataLayer.mapOf("event", "videoPlay",        // Event, Name of Open Screen Event.
                                   "videoName", v.getName());   // Additional data layer variables used by the event tag.
    play(v);
  }

  // Rest of implementation;

}

Envio de transações de e-commerce

Para enviar uma transação e qualquer item associado ao Google Analytics quando um usuário concluir uma compra no app:

  1. Criar uma regra de transação
  2. Criar uma tag de transação do UA
  3. Atualizar o código para enviar os dados do evento e da transação / do item para o DataLayer

1. Criar uma regra de transação

Em seguida, crie uma nova regra com os seguintes valores de configuração:

Nome da regra : TransactionCompleted
Condições : {{ event }} é igual a transaction

2. Criar uma tag de transação do UA

Crie uma tag de transação do UA com os seguintes valores:

Nome da tag : Transaction Completed
ID de acompanhamento : Seu ID da propriedade
Tipo de tag : Universal Analytics (beta)
Tipo de acompanhamento : Transaction
Configuração básica - Nome do app : {{ app name }}
Configuração básica - Versão do app : {{ app version }}
Configuração básica - Nome da tela : {{ screen name }}

3. Atualizar o código para enviar os dados do evento e da transação / do item para o DataLayer

Por fim, atualize seu código para enviar o evento da transação, bem como os dados associados da transação e do item, para a camada de dados. Use os Nomes de variáveis da camada de dados compatíveis para transações e dados do item:

// Called when a user completes a transaction.
public void onPurchaseCompleted(Purchase p) {

  DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

  // Put maps of item data into an array that will be pushed to the data layer.
  ArrayList<Map<String, String>> purchasedItems = new ArrayList<Map<String, String>>();
  for (Item i : p.items) {
    HashMap<String, String> currentItem = new HashMap<String, String>();

    currentItem.put("name", i.getProductName());
    currentItem.put("sku", i.getProductSku());
    currentItem.put("category", i.getProductCategory());
    currentItem.put("price", i.getProductPrice());
    currentItem.put("currency", "USD");
    currentItem.put("quantity", i.getProductQty());

    purchasedItems.add(currentItem);
  }

  // This call assumes the container has already been opened, otherwise events
  // pushed to the DataLayer will not fire tags in that container.
  dataLayer.push(DataLayer.mapOf("event", "transaction",               // Event, Name of Transaction Event.
                                 "transactionId", p.getTransId(),      // Additional fields required by the tag.
                                 "transactionTotal", p.getTotal(),
                                 "transactionAffiliation", "In-app Store",
                                 "transactionTax", p.getTax(),
                                 "transactionShipping", p.getShippingCost(),
                                 "transactionCurrency", "USD",
                                 "transactionProducts", purchasedItems));

  // Since the data layer is persistent, you should reset fields to null after
  // you are done pushing the transaction.
  dataLayer.push(DataLayer.mapOf("transactionId", null,
                                 "transactionTotal", null,
                                 "transactionAffiliation", null,
                                 "transactionTax", null,
                                 "transactionShipping", null,
                                 "transactionCurrency", null,
                                 "transactionProducts", null));
}

Variáveis da camada de dados de e-commerce compatíveis

As tags de transação do UA são compatíveis com as seguintes variáveis de camada de dados:

Variáveis da transação

Nome da variável Descrição Tipo Obrigatório
transactionId Identificador exclusivo da transação string Sim
transactionAffiliation Parceiro ou loja string Não
transactionTotal Valor total da transação string Não
transactionTax O valor do imposto da transação string Não
transactionShipping O custo do frete para a transação string Não
transactionCurrency Moeda da transação string Não
transactionProducts Lista de itens comprados na transação uma matriz de mapas contendo variáveis de item. Não

Variáveis de item

Nome da variável Descrição Tipo Obrigatório
name Nome do produto string Sim
sku SKU do produto string Não
category Categoria do produto string Não
price Preço do produto string Não
currency O tipo de moeda de price string Não
quantity Quantidade de itens string Não

Instalar atribuição do referenciador

Quando disponíveis, os dados do referenciador de instalação serão incluídos automaticamente com todos os hits do Google Analytics ou com solicitações de pixel de remarketing do Google Ads quando o serviço e o destinatário a seguir estiverem registrados no arquivo AndroidManifest.xml:

<!-- Used for install referrer tracking -->
<service android:name="com.google.tagmanager.InstallReferrerService" />
<receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>