Adicionar o Google Analytics ao seu aplicativo para Android

Este guia mostra como adicionar o Google Analytics ao seu aplicativo para Android com o objetivo de avaliar a atividade do usuário em telas nomeadas. Se você não tiver um aplicativo ainda e só quiser ver como funciona o Google Analytics, confira nosso aplicativo de exemplo.

Obrigatório: versões mais recentes do Android Studio e do Google Play Services

Configuração do projeto

Atualize o arquivo AndroidManifest.xml do seu projeto para incluir as permissões INTERNET e ACCESS_NETWORK_STATE:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.analytics">

  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

  <application android:name="AnalyticsApplication">
    ...
  </application>
</manifest>

Adicione a seguinte dependência ao arquivo build.gradle no nível do projeto:

dependencies {
  // ...
  classpath 'com.google.gms:google-services:3.0.0'
}

Adicione a seguinte dependência ao arquivo app/build.gradle no Google Play Services:

dependencies {
  // ...
  compile 'com.google.android.gms:play-services-analytics:10.2.4'
}

Criar o arquivo global_tracker.xml

Crie o arquivo app/src/res/xml/global_tracker.xml com o seguinte conteúdo:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="ga_trackingId" translatable="false">${YOUR_TRACKING_ID}</string>
</resources>

Substitua ${YOUR_TRACKING_ID} pelo seu ID de acompanhamento.

Adicionar o acompanhamento de telas

Aqui você envia uma exibição de tela nomeada ao Google Analytics sempre que o usuário abre ou muda de telas no seu aplicativo. Seu código deve fazer o seguinte:

  • Fornecer o rastreador compartilhado por meio de uma subclasse de aplicativo.
  • Substituir o método de retorno de chamada para a atividade em primeiro plano.
  • Fornecer um nome para a tela e executar o acompanhamento.

Aplicativo

Você deve acessar a subclasse Application e fornecer um método auxiliar que retorne o rastreador do seu aplicativo.

/*
 * Copyright Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.samples.quickstart.analytics;

import android.app.Application;

import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;

/**
 * This is a subclass of {@link Application} used to provide shared objects for this app, such as
 * the {@link Tracker}.
 */
public class AnalyticsApplication extends Application {

  private static GoogleAnalytics sAnalytics;
  private static Tracker sTracker;

  @Override
  public void onCreate() {
    super.onCreate();

    sAnalytics = GoogleAnalytics.getInstance(this);
  }

  /**
   * Gets the default {@link Tracker} for this {@link Application}.
   * @return tracker
   */
  synchronized public Tracker getDefaultTracker() {
    // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
    if (sTracker == null) {
      sTracker = sAnalytics.newTracker(R.xml.global_tracker);
    }

    return sTracker;
  }
}

Atividade ou fragmento

Abra a atividade que você deseja acompanhar. Você também pode acompanhar um Fragment, mas ele precisa representar corretamente a exibição de tela.

Substitua o método onCreate da Activity ou do Fragment que você deseja acompanhar para acessar a instância do Tracker compartilhado:

// Obtain the shared Tracker instance.
AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();

Substitua o método apropriado, como onResume para uma Activity ou onPageSelected para um ViewPager com a finalidade de registrar quando a tela muda.

Log.i(TAG, "Setting screen name: " + name);
mTracker.setScreenName("Image~" + name);
mTracker.send(new HitBuilders.ScreenViewBuilder().build());

Adicione o código de acompanhamento a cada Activity ou Fragment que representa uma tela. Defina um nome dentro de cada Activity ou Fragment se você quiser diferenciar exibições de tela para seu aplicativo no Google Analytics. Todas as atividades gravadas no rastreador compartilhado enviam o nome de tela mais recente até que ele seja substituído ou apagado (definido como null).

Envio de um evento

Para enviar um evento, defina os valores dos campos de tela no rastreador e envie o hit. O exemplo a seguir usa o HitBuilders.EventBuilder para enviar um Event:

mTracker.send(new HitBuilders.EventBuilder()
    .setCategory("Action")
    .setAction("Share")
    .build());

Próximas etapas