Apresentação da API Google Analytics: início rápido de PHP para aplicativos da Web

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 de relatórios principais v3.0, a API de gerenciamento v3.0 e o OAuth2.0 são usados neste tutorial.

Etapa 1: ativar a Google Analytics API

Para começar a usar a Google Analytics API, 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 Client-ID

Na página "Credenciais":

  1. Clique em Criar credenciais e selecione OAuth Client-ID.
  2. Selecione Aplicativo da Web em TIPO DE APLICATIVO.
  3. Defina um nome para a credencial.
  4. Deixe as ORIGENS DE JAVASCRIPT AUTORIZADAS em branco. Elas não são necessárias neste tutorial.
  5. Defina os URIS DE REDIRECIONAMENTO AUTORIZADOS como http://localhost:8080/oauth2callback.php.
  6. Clique em Criar.

Selecione a credencial que você criou e clique em Fazer o download do JSON. Salve o arquivo como client_secrets.json. Você precisará dele mais adiante no tutorial.

Etapa 2: instalar a biblioteca cliente do Google

Para ver a biblioteca de cliente das APIs do Google para PHP, faça o download da versão ou use o Composer (em inglês):

composer require google/apiclient:^2.0

Etapa 3: configurar a amostra

Você precisará criar dois arquivos:

  1. index.php será a página principal visitada pelo usuário.
  2. oauth2callback.php cuidará da resposta do OAuth 2.0.

index.php

Este arquivo contém a principal lógica para consultar as Google Analytics APIs e exibir os resultados. Copie ou faça o download do primeiro código de exemplo para index.php.

<?php
// Load the Google API PHP Client Library.
require_once __DIR__ . '/vendor/autoload.php';

// Start a session to persist credentials.
session_start();

// Create the client object and set the authorization configuration
// from the client_secretes.json you downloaded from the developer console.
$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

// If the user has already authorized this app then get an access token
// else redirect to ask the user to authorize access to Google Analytics.
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  // Set the access token on the client.
  $client->setAccessToken($_SESSION['access_token']);

  // Create an authorized analytics service object.
  $analytics = new Google_Service_Analytics($client);

  // Get the first view (profile) id for the authorized user.
  $profile = getFirstProfileId($analytics);

  // Get the results from the Core Reporting API and print the results.
  $results = getResults($analytics, $profile);
  printResults($results);
} else {
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

function getFirstProfileId($analytics) {
  // Get the user's first view (profile) ID.

  // Get the list of accounts for the authorized user.
  $accounts = $analytics->management_accounts->listManagementAccounts();

  if (count($accounts->getItems()) > 0) {
    $items = $accounts->getItems();
    $firstAccountId = $items[0]->getId();

    // Get the list of properties for the authorized user.
    $properties = $analytics->management_webproperties
        ->listManagementWebproperties($firstAccountId);

    if (count($properties->getItems()) > 0) {
      $items = $properties->getItems();
      $firstPropertyId = $items[0]->getId();

      // Get the list of views (profiles) for the authorized user.
      $profiles = $analytics->management_profiles
          ->listManagementProfiles($firstAccountId, $firstPropertyId);

      if (count($profiles->getItems()) > 0) {
        $items = $profiles->getItems();

        // Return the first view (profile) ID.
        return $items[0]->getId();

      } else {
        throw new Exception('No views (profiles) found for this user.');
      }
    } else {
      throw new Exception('No properties found for this user.');
    }
  } else {
    throw new Exception('No accounts found for this user.');
  }
}

function getResults($analytics, $profileId) {
  // Calls the Core Reporting API and queries for the number of sessions
  // for the last seven days.
  return $analytics->data_ga->get(
      'ga:' . $profileId,
      '7daysAgo',
      'today',
      'ga:sessions');
}

function printResults($results) {
  // Parses the response from the Core Reporting API and prints
  // the profile name and total sessions.
  if (count($results->getRows()) > 0) {

    // Get the profile name.
    $profileName = $results->getProfileInfo()->getProfileName();

    // Get the entry for the first entry in the first row.
    $rows = $results->getRows();
    $sessions = $rows[0][0];

    // Print the results.
    print "<p>First view (profile) found: $profileName</p>";
    print "<p>Total sessions: $sessions</p>";
  } else {
    print "<p>No results found.</p>";
  }
}

?>

oauth2callback.php

Este arquivo cuida da resposta do OAuth 2.0. Copie ou faça o download do segundo código de exemplo para oauth2callback.php.

<?php

// Load the Google API PHP Client Library.
require_once __DIR__ . '/vendor/autoload.php';

// Start a session to persist credentials.
session_start();

// Create the client object and set the authorization configuration
// from the client_secrets.json you downloaded from the Developers Console.
$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

// Handle authorization flow from the server.
if (! isset($_GET['code'])) {
  $auth_url = $client->createAuthUrl();
  header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

Etapa 4: executar a amostra

Depois de você ter ativado a Google Analytics API, instalado a biblioteca cliente das Google APIs para PHP e configurado o código-fonte da amostra, ela está pronta para ser executada.

Execute a amostra com um servidor da Web configurado para veicular PHP. Se você usa o PHP 5.4 ou mais recente, utilize o servidor de testes da Web incorporado executando o seguinte comando:

php -S localhost:8080 /path/to/sample

Em seguida, acesse http://localhost:8080 no seu navegador.

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 de gerenciamento. Por exemplo, tente alterar o código para usar o método accountSummaries.list.