Este tutorial mostra as etapas necessárias para acessar uma conta do Google Analytics, consultar as APIs do Google Analytics, lidar com as respostas da API e gerar os resultados. A API Core Reporting v3.0, a API Management v3.0 e o OAuth2.0 são usados neste tutorial.
Etapa 1: ativar a API Google Analytics
Para começar a usar a API Google Analytics, primeiro use a ferramenta de configuração, que fornece orientações para você criar um projeto no console de APIs do Google, ativar a API e criar credenciais.
Criar um ID de cliente
- Abra a página Contas de serviço. Se solicitado, selecione um projeto.
- Clique em Criar conta de serviço, digite um nome e uma descrição para a conta correspondente. Você pode usar o ID da conta de serviço padrão ou escolher um código diferente e único. Quando terminar, clique em Criar.
- A seção seguinte ,Permissões da conta de serviço (opcional), não é necessária. Clique em Continuar.
- Em Conceda aos usuários acesso a essa conta de serviço, role a tela para baixo até a seção Criar chave. Clique em Criar chave.
- No painel lateral exibido, selecione o formato da sua chave: JSON é a opção recomendada.
- Clique em Criar. Seu novo par de chave pública/privada é gerado, e o download é feito na sua máquina. Essa é a única cópia da chave. Para saber mais sobre como armazenar com segurança, consulte Como gerenciar chaves de contas de serviço.
- Clique em Fechar na caixa de diálogo Chave privada salva no seu computador e clique em Concluir para retornar à tabela das suas contas de serviço.
Adicionar conta de serviço à conta do Google Analytics
A conta de serviço recém-criada terá um endereço de e-mail, <projectId>-<uniqueId>@developer.gserviceaccount.com
. Use esse endereço de e-mail para adicionar um usuário à conta do Google Analytics que você quer acessar pela API.
Neste tutorial, são necessárias apenas permissões de leitura e análise.
Etapa 2: Instalar a biblioteca de cliente do Google
Para instalar o cliente Java da Google Analytics API, você precisa fazer o download de um arquivo ZIP com todos os jars necessários para extrair e copiar para seu caminho de classe Java.
- Faça o download da biblioteca cliente de Java do Google Analytics, que está agrupada como um arquivo ZIP com todas as dependências necessárias.
- Extraia o arquivo ZIP.
- Adicione todos os JARs no
diretório
libs
ao seu caminho de classe. - Adicione o jar
google-api-services-analytics-v3-[version].jar
ao seu caminho de classe.
Etapa 3: configurar a amostra
Você precisará criar um único arquivo chamado HelloAnalytics.java
, que conterá o código de amostra fornecido.
- Copie ou
faça o download do código-fonte a seguir para
HelloAnalytics.java
. - Mova o
client_secrets.JSON
salvo anteriormente para o mesmo diretório que o exemplo de código. - Substitua os valores de
KEY_FILE_LOCATION
pelos valores apropriados do Developer Console.
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.analytics.Analytics; import com.google.api.services.analytics.AnalyticsScopes; import com.google.api.services.analytics.model.Accounts; import com.google.api.services.analytics.model.GaData; import com.google.api.services.analytics.model.Profiles; import com.google.api.services.analytics.model.Webproperties; import java.io.FileInputStream; import java.io.IOException; import java.security.GeneralSecurityException; import java.io.IOException; /** * A simple example of how to access the Google Analytics API using a service * account. */ public class HelloAnalytics { private static final String APPLICATION_NAME = "Hello Analytics"; private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); private static final String KEY_FILE_LOCATION = "<REPLACE_WITH_JSON_FILE>"; public static void main(String[] args) { try { Analytics analytics = initializeAnalytics(); String profile = getFirstProfileId(analytics); System.out.println("First Profile Id: "+ profile); printResults(getResults(analytics, profile)); } catch (Exception e) { e.printStackTrace(); } } /** * Initializes an Analytics service object. * * @return An authorized Analytics service object. * @throws IOException * @throws GeneralSecurityException */ private static AnalyticsReporting initializeAnalytic() throws GeneralSecurityException, IOException { HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential credential = GoogleCredential .fromStream(new FileInputStream(KEY_FILE_LOCATION)) .createScoped(AnalyticsScopes.all()); // Construct the Analytics service object. return new Analytics.Builder(httpTransport, JSON_FACTORY, credential) .setApplicationName(APPLICATION_NAME).build(); } private static String getFirstProfileId(Analytics analytics) throws IOException { // Get the first view (profile) ID for the authorized user. String profileId = null; // Query for the list of all accounts associated with the service account. Accounts accounts = analytics.management().accounts().list().execute(); if (accounts.getItems().isEmpty()) { System.err.println("No accounts found"); } else { String firstAccountId = accounts.getItems().get(0).getId(); // Query for the list of properties associated with the first account. Webproperties properties = analytics.management().webproperties() .list(firstAccountId).execute(); if (properties.getItems().isEmpty()) { System.err.println("No Webproperties found"); } else { String firstWebpropertyId = properties.getItems().get(0).getId(); // Query for the list views (profiles) associated with the property. Profiles profiles = analytics.management().profiles() .list(firstAccountId, firstWebpropertyId).execute(); if (profiles.getItems().isEmpty()) { System.err.println("No views (profiles) found"); } else { // Return the first (view) profile associated with the property. profileId = profiles.getItems().get(0).getId(); } } } return profileId; } private static GaData getResults(Analytics analytics, String profileId) throws IOException { // Query the Core Reporting API for the number of sessions // in the past seven days. return analytics.data().ga() .get("ga:" + profileId, "7daysAgo", "today", "ga:sessions") .execute(); } private static void printResults(GaData results) { // Parse the response from the Core Reporting API for // the profile name and number of sessions. if (results != null && !results.getRows().isEmpty()) { System.out.println("View (Profile) Name: " + results.getProfileInfo().getProfileName()); System.out.println("Total Sessions: " + results.getRows().get(0).get(0)); } else { System.out.println("No results found"); } } }
Etapa 4: executar a amostra
Depois que você ativar a API Analytics, instalar a biblioteca cliente das APIs do Google para Java e configurar o código-fonte da amostra, ela está pronta para ser executada.
Se você estiver usando um ambiente de desenvolvimento integrado, verifique se tem uma execução padrão definida
para a classe HelloAnalytics
.
Em caso negativo, você pode compilar e executar o aplicativo a partir da linha de comando:
- Compile a amostra usando:
javac -classpath /path/to/google/lib/*:/path/to/google/lib/libs/* HelloAnalytics.java
- Execute a amostra usando:
java -classpath ./:/path/to/google/lib/*:/path/to/google/lib/libs/* HelloAnalytics
Quando você concluir essas etapas, a amostra gerará o nome da primeira vista (perfil) do Google Analytics do usuário autorizado, além do número de sessões dos últimos sete dias.
Com o objeto de serviço autorizado do Google Analytics, agora você pode executar qualquer uma das amostras de código nos documentos de referência da API Management. Por exemplo, tente alterar o código para usar o método accountSummaries.list.