Guía de inicio rápido para desarrolladores de la API de Google Analytics Admin

En esta guía de inicio rápido, crearás y enviarás solicitudes list a la API de Administrador de Google Analytics y, luego, verás las respuestas para configurar y verificar tu acceso a la API.

Puedes completar esta guía de inicio rápido con un SDK, la API de REST en tu entorno local o una instancia de VM de Google Cloud.

Este es un resumen de los pasos:

  • Configura un proyecto de Google Cloud y habilita la API de Google Analytics Admin.
  • En tu máquina local o instancia de VM de Cloud, haz lo siguiente:
    • Instala, inicializa y autentica con Google Cloud.
    • Instala el SDK para tu idioma (opcional).
  • Configura la autenticación.
  • Configura el acceso a Google Analytics.
  • Configura un SDK.
  • Realiza una llamada a la API.

Configura un proyecto de Google Cloud

Haz clic en el siguiente botón Habilita la API de Google Analytics Admin para seleccionar o crear un proyecto de Google Cloud nuevo y habilitar automáticamente la API de Google Analytics Admin.

Habilita la API de Google Analytics Admin

Configura Google Cloud

En tu máquina local o una instancia de VM de Cloud, configura y autentica con Google Cloud.

  1. Instala e inicializa Google Cloud.

  2. Para asegurarte de que tus componentes gcloud estén actualizados, ejecuta el siguiente comando.

    gcloud components update

Para evitar proporcionar el ID de tu proyecto a Google Cloud, puedes usar el comando gcloud config set para establecer un proyecto y una región predeterminados.

Configura la autenticación

En esta guía de inicio rápido, se usan las Credenciales predeterminadas de la aplicación para encontrar credenciales automáticamente según el entorno de la aplicación, de modo que no tengas que cambiar el código del cliente para autenticarte.

La API de Google Analytics Admin admite cuentas de usuario y cuentas de servicio:

  • Las cuentas de usuario representan a un desarrollador, un administrador o cualquier otra persona que interactúe con los servicios y las APIs de Google.
  • Las cuentas de servicio no representan a un usuario humano específico. Proporcionan una forma de administrar la autenticación y autorización cuando una persona no está involucrada de forma directa, como cuando una aplicación necesita acceder a los recursos de Google Cloud.

Para obtener más información sobre la autenticación y la configuración de credenciales de la cuenta para tu aplicación, consulta Métodos de autenticación en Google.

Ejecuta el siguiente comando para generar un archivo de credenciales predeterminadas de la aplicación (ADC) local. Este comando inicia un flujo web en el que proporcionas tus credenciales de usuario.

  gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"

Recuerda especificar los permisos que requiere la API de Google Analytics Admin en el comando. Para obtener más información, consulta Configura credenciales predeterminadas de la aplicación.

Estos son los pasos para autenticar con una cuenta de servicio:

  1. Crea una cuenta de servicio.
  2. Para vincular la cuenta de servicio a tu instancia de VM de Cloud, ejecuta el siguiente comando de la CLI de gcloud:
  gcloud compute instances stop YOUR-VM-INSTANCE-ID

  gcloud compute instances set-service-account YOUR-VM-INSTANCE-ID \
    --service-account YOUR-SERVICE-ACCOUNT-EMAIL-ALIAS  \
    --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"

Recuerda especificar los permisos que requiere la API de Google Analytics Admin en el comando. Para obtener más información, consulta Configura credenciales predeterminadas de la aplicación.

Cómo configurar el acceso a Google Analytics

Otorga acceso a Google Analytics al correo electrónico asociado con tu cuenta de usuario o de servicio.

Configura el SDK para tu lenguaje de programación

En tu máquina local, instala el SDK para tu lenguaje de programación.

Guía de instalación de la biblioteca cliente de Java

Guía de instalación de la biblioteca cliente de PHP

Guía de instalación de la biblioteca cliente de Python

Guía de instalación de la biblioteca cliente de Node.js

Guía de instalación de la biblioteca cliente de.NET

Guía de instalación de la biblioteca cliente de Ruby

go get google.golang.org/genproto/googleapis/analytics/admin/v1beta

Ingresa lo siguiente para configurar tus variables de entorno. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

  EXPORT PROJECT_ID=PROJECT_ID

Realiza una llamada a la API

Ejecuta el siguiente código para realizar tu primera llamada:

import com.google.analytics.admin.v1beta.Account;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient.ListAccountsPage;
import com.google.analytics.admin.v1beta.AnalyticsAdminServiceClient.ListAccountsPagedResponse;
import com.google.analytics.admin.v1beta.ListAccountsRequest;

/**
 * This application demonstrates the usage of the Analytics Admin API using service account
 * credentials. For more information on service accounts, see
 * https://cloud.google.com/iam/docs/understanding-service-accounts.
 *
 * <p>The following document provides instructions on setting service account credentials for your
 * application: https://cloud.google.com/docs/authentication/production
 *
 * <p>In a nutshell, you need to:
 *
 * <ol>
 *   <li>Create a service account and download the key JSON file as described at
 *       https://cloud.google.com/docs/authentication/production#creating_a_service_account.
 *   <li>Provide service account credentials using one of the following options:
 *       <ul>
 *         <li>Set the {@code GOOGLE_APPLICATION_CREDENTIALS} environment variable. The API client
 *             will use the value of this variable to find the service account key JSON file. See
 *             https://cloud.google.com/docs/authentication/production#setting_the_environment_variable
 *             for more information.
 *             <p>OR
 *         <li>Manually pass the path to the service account key JSON file to the API client by
 *             specifying the {@code keyFilename} parameter in the constructor. See
 *             https://cloud.google.com/docs/authentication/production#passing_the_path_to_the_service_account_key_in_code
 *             for more information.
 *       </ul>
 * </ol>
 *
 * <p>To run this sample using Maven:
 *
 * <pre>{@code
 * cd google-analytics-data
 * mvn compile exec:java -Dexec.mainClass="com.google.analytics.admin.samples.QuickstartSample"
 * }</pre>
 */
public class QuickstartSample {

  public static void main(String... args) throws Exception {
    listAccounts();
  }

  // This is an example snippet that calls the Google Analytics Admin API and lists all Google
  // Analytics accounts available to the authenticated user.
  static void listAccounts() throws Exception {
    // Instantiates a client using default credentials.
    // See https://cloud.google.com/docs/authentication/production for more information
    // about managing credentials.
    try (AnalyticsAdminServiceClient analyticsAdmin = AnalyticsAdminServiceClient.create()) {
      // Calls listAccounts() method of the Google Analytics Admin API and prints
      // the response for each account.
      ListAccountsPagedResponse response =
          analyticsAdmin.listAccounts(ListAccountsRequest.newBuilder().build());
      for (ListAccountsPage page : response.iteratePages()) {
        for (Account account : page.iterateAll()) {
          System.out.printf("Account name: %s%n", account.getName());
          System.out.printf("Display name: %s%n", account.getDisplayName());
          System.out.printf("Country code: %s%n", account.getRegionCode());
          System.out.printf("Create time: %s%n", account.getCreateTime().getSeconds());
          System.out.printf("Update time: %s%n", account.getUpdateTime().getSeconds());
          System.out.println();
        }
      }
    }
  }
}

require 'vendor/autoload.php';

use Google\Analytics\Admin\V1beta\Account;
use Google\Analytics\Admin\V1beta\Client\AnalyticsAdminServiceClient;
use Google\Analytics\Admin\V1beta\ListAccountsRequest;

/**
 * TODO(developer): Replace this variable with your Google Analytics 4
 *   property ID before running the sample.
 */
$property_id = 'YOUR-GA4-PROPERTY-ID';

// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
// See https://cloud.google.com/docs/authentication/production for more information
// about managing credentials.
$client = new AnalyticsAdminServiceClient();

// Calls listAccounts() method of the Google Analytics Admin API and prints
// the response for each account.
$request = new ListAccountsRequest();
$response = $client->listAccounts($request);

print 'Result:' . PHP_EOL;
foreach ($response->iterateAllElements() as $account) {
    print 'Account name: ' . $account->getName() . PHP_EOL;
    print 'Display name: ' . $account->getDisplayName() . PHP_EOL;
    print 'Country code: ' . $account->getRegionCode() . PHP_EOL;
    print 'Create time: ' . $account->getCreateTime()->getSeconds() . PHP_EOL;
    print 'Update time: ' . $account->getUpdateTime()->getSeconds() . PHP_EOL;
}

def list_accounts(transport: str = None):
    """
    Lists the available Google Analytics accounts.

    Args:
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    from google.analytics.admin import AnalyticsAdminServiceClient

    # Using a default constructor instructs the client to use the credentials
    # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    client = AnalyticsAdminServiceClient(transport=transport)

    results = client.list_accounts()

    # Displays the configuration information for all Google Analytics accounts
    # available to the authenticated user.
    print("Result:")
    for account in results:
        print(account)

  // Imports the Google Analytics Admin API client library.
  const analyticsAdmin = require('@google-analytics/admin');

  // Using a default constructor instructs the client to use the credentials
  // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
  const analyticsAdminClient = new analyticsAdmin.AnalyticsAdminServiceClient();

  // Lists all Google Analytics accounts available to the authenticated user.
  async function listAccounts() {
    // Uses listAccounts() with no arguments to fetch all pages. For more
    // information on pagination in the Node.js library, see:
    // https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#auto-pagination
    const [response] = await analyticsAdminClient.listAccounts();

    console.log('Accounts:');
    for (const account of response) {
      console.log('Account name:', account.name);
      console.log('Display name:', account.displayName);
      console.log('Region code:', account.regionCode);
      console.log('Create time:', account.createTime.seconds);
      console.log('Update time:', account.updateTime.seconds);
    }
  }

  listAccounts();

using Google.Analytics.Admin.V1Beta;
using Google.Api.Gax;
using System;

namespace AnalyticsSamples
{
    class QuickStart
    {
        static void Main(string[] args)
        {
            AnalyticsAdminServiceClient client = AnalyticsAdminServiceClient.Create();
            PagedEnumerable<ListAccountsResponse, Account> response =
                client.ListAccounts( new ListAccountsRequest() );
            foreach( Account account in response )
            {
                Console.WriteLine("Account name: {0}", account.Name);
                Console.WriteLine("Display name: {0}", account.DisplayName);
                Console.WriteLine("Region code: {0}", account.RegionCode);
                Console.WriteLine("Update time: {0}", account.UpdateTime);
                Console.WriteLine("Create time: {0}", account.CreateTime);
                Console.WriteLine();
            }
        }
    }
}

Para enviar esta solicitud, ejecuta el comando curl desde la línea de comandos o incluye la llamada REST en tu aplicación.

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "x-goog-user-project: ${PROJECT_ID}" \
  -H "Content-Type: application/json" \
  https://analyticsadmin.googleapis.com/v1beta/accounts

En la respuesta del código de muestra, se enumeran las cuentas de Google Analytics que tu usuario o cuenta de servicio tiene acceso para ver:

{
  "accounts": [
    {
      "name": "accounts/123456789",
      "createTime": "2025-01-01T00:12:23.456Z",
      "createTime": "2025-01-01T00:12:23.456Z",
      "displayName": "Demo Account",
      "regionCode": "US",
      "gmpOrganization": "marketingplatformadmin.googleapis.com/organizations/abcdef12345678"
    }
}