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 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 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ê acabou de criar 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 de cliente do Google

Acesse a biblioteca de cliente das APIs do Google para PHP fazendo o download da versão ou usando o Composer:

composer require google/apiclient:^2.0

Etapa 3: configurar a amostra

Você precisa criar dois arquivos:

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

index.php

Esse arquivo contém a lógica principal para consultar as APIs Google Analytics e exibir os resultados. Copie ou faça o download do primeiro exemplo de código 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

Ele cuida da resposta do OAuth 2.0. Copie ou faça o download do segundo exemplo de código 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 que você ativar a API Google Analytics, instalar a biblioteca de cliente das APIs do Google para PHP e configurar o código-fonte da amostra, ela estará pronta para ser executada.

Execute a amostra com um servidor da Web configurado para disponibilizar PHP. Se você usa o PHP 5.4 ou mais recente, é possível utilizar o servidor da Web de teste integrado do PHP 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 Management. Por exemplo, tente alterar o código para usar o método accountSummaries.list.