API de Hello Analytics: Guía de inicio rápido de PHP para cuentas de servicio

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En este instructivo, se explican los pasos necesarios para acceder a una cuenta de Google Analytics, consultar las API de Analytics, manejar las respuestas de la API y generar los resultados. En este instructivo, se usan las API Core Reporting API v3.0, Management API v3.0 y la OAuth2.0.

Paso 1: Habilita la API de Analytics

Para comenzar a usar la API de Google Analytics, primero debes usar la herramienta de configuración, que te guiará para crear un proyecto en Google API Console, habilitar la API y crear credenciales.

Crear un ID de cliente

  1. Abre la página Cuentas de servicio. Si se te solicita, selecciona un proyecto.
  2. Haz clic en Crear cuenta de servicio y, luego, ingresa un nombre y una descripción para la cuenta de servicio. Puedes usar el ID predeterminado de la cuenta de servicio o elegir uno que sea único y diferente. Cuando hayas terminado, haz clic en Crear.
  3. No es obligatoria la sección de Permisos de cuenta de servicio (opcional) que aparece a continuación. Haz clic en Continuar.
  4. En la pantalla Otorga a usuarios acceso a esta cuenta de servicio, desplázate hacia abajo hasta encontrar la sección Crear clave. Haz clic en Crear clave.
  5. En el panel lateral que aparece, selecciona el formato para tu clave: se recomienda el código JSON.
  6. Haga clic en Crear. Ya se generó y descargó el nuevo par de claves pública y privada en tu equipo, que será la única copia. Para obtener más información a fin de almacenarla de forma segura, consulta Cómo administrar claves para cuentas de servicio.
  7. Haz clic en Cerrar, en el diálogo Se guardó la clave privada en tu computadora, y luego haz clic en Listo para regresar a la tabla de tus cuentas de servicio.

Agregar una cuenta de servicio a una cuenta de Google Analytics

La cuenta de servicio recién creada tendrá una dirección de correo electrónico, <projectId>-<uniqueId>@developer.gserviceaccount.com. Usa esta dirección de correo electrónico para agregar un usuario a la cuenta de Google Analytics a la que deseas acceder a través de la API. Para este instructivo, solo se necesitan los permisos de lectura y análisis.

Paso 2: Instala la biblioteca cliente de Google

Puedes obtener la biblioteca cliente de las API de Google para PHP descargar la versión o usar Composer:

composer require google/apiclient:^2.0

Paso 3: Configura la muestra

Deberás crear un solo archivo llamado HelloAnalytics.php, que contendrá el siguiente código de muestra.

  1. Copia o descarga el siguiente código fuente a HelloAnalytics.php.
  2. Mueve el service-account-credentials.json descargado anteriormente dentro del mismo directorio que el código de muestra.

HelloAnalytics.php

<?php

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

$analytics = initializeAnalytics();
$profile = getFirstProfileId($analytics);
$results = getResults($analytics, $profile);
printResults($results);

function initializeAnalytics()
{
  // Creates and returns the Analytics Reporting service object.

  // Use the developers console and download your service account
  // credentials in JSON format. Place them in this directory or
  // change the key file location if necessary.
  $KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';

  // Create and configure a new client object.
  $client = new Google_Client();
  $client->setApplicationName("Hello Analytics Reporting");
  $client->setAuthConfig($KEY_FILE_LOCATION);
  $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
  $analytics = new Google_Service_Analytics($client);

  return $analytics;
}

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 "First view (profile) found: $profileName\n";
    print "Total sessions: $sessions\n";
  } else {
    print "No results found.\n";
  }
}


Paso 4: Ejecuta la muestra

Una vez que hayas habilitado la API de Analytics, instalado la biblioteca cliente de las API de Google para PHP y configurado el código fuente de muestra, la muestra estará lista para ejecutarse.

Ejecuta la muestra con el siguiente comando:

php HelloAnalytics.php

Cuando completas estos pasos, la muestra muestra el nombre de la primera vista (perfil) de Google Analytics del usuario autorizado y la cantidad de sesiones de los últimos siete días.

Con el objeto de servicio de Analytics autorizado, ahora puedes ejecutar cualquiera de las muestras de código que se encuentran en los documentos de referencia de la API de Management. Por ejemplo, puedes intentar cambiar el código para usar el método accountsummaries.list.