Este tutorial te guiará a través de los pasos necesarios para acceder a una cuenta de Google Analytics, consultar las API de Google Analytics, gestionar las respuestas de la API y extraer los resultados. Para ello, se usan la API de informes centrales v3.0, la API de administración v3.0 y OAuth 2.0.
Paso 1: Habilitar la API de Analytics
Para empezar a usar la API de Google Analytics, primero debes utilizar la herramienta de configuración, que te guiará por los pasos necesarios para crear un proyecto en la consola de la API de Google, habilitar la API y crear las credenciales.
Crear un ID de cliente
- Abre la página Cuentas de servicio. Si se te solicita, selecciona un proyecto.
- Haz clic en Create service account (Crear cuenta de servicio).
- En la ventana Create service account (Crear cuenta de servicio), escribe el nombre de la cuenta de servicio y selecciona Furnish a new private key (Suministrar una nueva clave privada). Si quieres conceder autoridad en todo el dominio de G Suite a la cuenta de servicio, selecciona también Habilitar delegación en todo el dominio de G Suite. A continuación, haz clic en Guardar.
Se genera el par de claves pública/privada y se descarga en el equipo, lo que sirve de copia única de esta clave. Eres responsable de almacenarla de forma segura.
Agregar la cuenta de servicio a la cuenta de Google Analytics
La cuenta de servicio recién creada tendrá la dirección de correo electrónico <projectId>-<uniqueId>@developer.gserviceaccount.com
. Utiliza esta dirección para agregar un usuario a la cuenta de Google Analytics a la que quieras acceder a través de la API. Para este tutorial solo se necesitan los permisos Leer y analizar.
Paso 2: instalar la biblioteca de cliente de Google
Para obtener la biblioteca de cliente de APIs de Google para PHP, descarga la versión o utiliza la herramienta Composer:
composer require google/apiclient:^2.0
Paso 3: configurar el código de muestra
Deberás crear un archivo llamado HelloAnalytics.php
, que contendrá el código de muestra siguiente.
- Copia o descarga el siguiente código fuente en
HelloAnalytics.php
. - Coloca el archivo
service-account-credentials.json
que has descargado en el 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: ejecutar la muestra
Después de haber habilitado la API de Analytics, de haber instalado la biblioteca de cliente para PHP de las API de Google y de haber configurado el código fuente, la muestra estará lista para ejecutarse.
Ejecuta la muestra con el siguiente comando:
php HelloAnalytics.php
Cuando finalices estos pasos, la muestra envía el nombre de la primera vista (perfil) de Google Analytics del usuario autorizado y el número de sesiones de los últimos siete días.
Con el objeto de servicio de Analytics autorizado ya puedes ejecutar cualquiera de las muestras de código que se encuentran en los documentos de referencia de la API de administración. Por ejemplo, podrías intentar cambiar el código para usar el método accountSummaries.list.