Guida rapida per gli sviluppatori dell'API Google Analytics Admin

In questa guida introduttiva, crei e invii richieste list all'API Admin di Google Analytics, quindi visualizzi le risposte per configurare e verificare il tuo accesso all'API.

Puoi completare questa guida rapida utilizzando un SDK o l'API REST nel tuo ambiente locale o un'istanza VM Google Cloud.

Ecco un riepilogo dei passaggi:

  • Configura un progetto Google Cloud e abilita l'API di amministrazione di Google Analytics.
  • Sulla tua macchina locale o sull'istanza VM Cloud:
    • Installa, inizializza e autenticati con Google Cloud.
    • Installa l'SDK per la tua lingua (facoltativo).
  • Configura l'autenticazione.
  • Configura l'accesso a Google Analytics.
  • Configura un SDK.
  • Esegui una chiamata API.

Configura un progetto Google Cloud

Fai clic sul seguente pulsante Abilita l'API Google Analytics Admin per selezionare o creare un nuovo progetto Google Cloud e attivare automaticamente l'API Google Analytics Admin.

Abilita l'API Google Analytics Admin

Configurare Google Cloud

Sulla tua macchina locale o su un'istanza VM Cloud, configura e autenticati con Google Cloud.

  1. Installa e inizializza Google Cloud.

  2. Per assicurarti che i componenti di gcloud siano aggiornati, esegui il seguente comando.

    gcloud components update

Per evitare di fornire il tuo ID progetto a Google Cloud, puoi utilizzare il comando gcloud config set per impostare un progetto e una regione predefiniti.

Configura autenticazione

Questa guida rapida utilizza le credenziali predefinite dell'applicazione per trovare automaticamente le credenziali in base all'ambiente dell'applicazione, quindi non devi modificare il codice client per l'autenticazione.

L'API di amministrazione di Google Analytics supporta gli account utente e gli account di servizio:

  • Gli account utente rappresentano uno sviluppatore, un amministratore o un'altra persona che interagisce con le API e i servizi Google.
  • Gli account di servizio non rappresentano un utente specifico. Forniscono un modo per gestire l'autenticazione e l'autorizzazione quando non è coinvolto un utente, ad esempio quando un'applicazione deve accedere alle risorse Google Cloud.

Per scoprire di più sull'autenticazione e sulla configurazione delle credenziali dell'account per la tua applicazione, consulta Metodi di autenticazione di Google.

Genera un file Credenziali predefinite dell'applicazione (ADC) locale eseguendo il seguente comando. Questo comando avvia un flusso web in cui fornisci le tue credenziali utente.

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

Ricordati di specificare nel comando gli ambiti richiesti dall'API Google Analytics Admin. Per ulteriori informazioni, vedi Configurare le credenziali predefinite dell'applicazione.

Ecco i passaggi per autenticarsi con un account di servizio:

  1. Crea un account di servizio.
  2. Collega il service account all'istanza VM Cloud eseguendo il seguente comando gcloud CLI:
  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"

Ricordati di specificare gli ambiti richiesti dall'API Google Analytics Admin nel comando. Per ulteriori informazioni, vedi Configurare le credenziali predefinite dell'applicazione.

Configurare l'accesso a Google Analytics

Concedi l'accesso a Google Analytics all'indirizzo email associato al tuo account utente o di servizio.

Configura l'SDK per il tuo linguaggio di programmazione

Sulla tua macchina locale, installa l'SDK per il tuo linguaggio di programmazione.

Guida all'installazione della libreria client Java

Guida all'installazione della libreria client PHP

Guida all'installazione della libreria client Python

Guida all'installazione della libreria client Node.js

Guida all'installazione della libreria client.NET

Guida all'installazione della libreria client Ruby

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

Configura le variabili di ambiente inserendo quanto segue. Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

  EXPORT PROJECT_ID=PROJECT_ID

Esegui una chiamata API

Esegui il seguente codice per effettuare la prima chiamata:

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();
            }
        }
    }
}

Per inviare questa richiesta, esegui il comando curl dalla riga di comando o includi la chiamata REST nella tua applicazione.

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

La risposta del codice di esempio elenca gli account Google Analytics a cui l'account utente o servizio ha accesso:

{
  "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"
    }
}