Kurzanleitung für Entwickler der Google Analytics Admin API

In dieser Kurzanleitung erstellen und senden Sie list-Anfragen an die Google Analytics Admin API und sehen sich dann die Antworten an, um Ihren API-Zugriff einzurichten und zu bestätigen.

Sie können diese Kurzanleitung mit einem SDK oder der REST API in Ihrer lokalen Umgebung oder einer Google Cloud-VM-Instanz ausführen.

Hier eine Zusammenfassung der Schritte:

  • Richten Sie ein Google Cloud-Projekt ein und aktivieren Sie die Google Analytics Admin API.
  • Auf Ihrem lokalen Computer oder in Ihrer Cloud-VM-Instanz:
    • Installieren, initialisieren und bei der Google Cloud authentifizieren.
    • Installieren Sie das SDK für Ihre Sprache (optional).
  • Konfigurieren Sie die Authentifizierung.
  • Konfigurieren Sie den Google Analytics-Zugriff.
  • Richten Sie ein SDK ein.
  • Führen Sie einen API-Aufruf aus.

Google Cloud-Projekt einrichten

Klicken Sie auf die Schaltfläche Google Analytics Admin API aktivieren, um ein neues Google Cloud-Projekt auszuwählen oder zu erstellen und die Google Analytics Admin API automatisch zu aktivieren.

Google Analytics Admin API aktivieren

Google Cloud einrichten

Richten Sie auf Ihrem lokalen Computer oder einer Cloud-VM-Instanz eine Authentifizierung bei Google Cloud ein.

  1. Installieren und initialisieren Sie Google Cloud.

  2. Führen Sie den folgenden Befehl aus, um sicherzustellen, dass Ihre gcloud-Komponenten auf dem neuesten Stand sind.

    gcloud components update

Damit Sie Ihre Projekt-ID nicht an Google Cloud weitergeben müssen, können Sie mit dem Befehl gcloud config set ein Standardprojekt und eine Standardregion festlegen.

Authentifizierung konfigurieren

In dieser Kurzanleitung werden Standardanmeldedaten für Anwendungen verwendet, um Anmeldedaten automatisch basierend auf der Anwendungsumgebung zu finden. Sie müssen den Clientcode also nicht zur Authentifizierung ändern.

Die Google Analytics Admin API unterstützt Nutzerkonten und Dienstkonten:

  • Nutzerkonten stellen einen Entwickler, Administrator oder eine andere Person dar, die mit Google APIs und Diensten interagiert.
  • Dienstkonten stehen nicht für einen bestimmten menschlichen Nutzer. Sie bieten eine Möglichkeit zur Authentifizierung und Autorisierung, wenn ein Mensch nicht direkt beteiligt ist, z. B. wenn eine Anwendung auf Google Cloud-Ressourcen zugreifen muss.

Weitere Informationen zur Authentifizierung und zum Einrichten von Kontoanmeldedaten für Ihre Anwendung finden Sie unter Authentifizierungsmethoden bei Google.

Generieren Sie eine lokale Datei mit Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC), indem Sie den folgenden Befehl ausführen. Mit diesem Befehl wird ein Web-Vorgang gestartet, in dem Sie Ihre Nutzeranmeldedaten angeben.

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

Geben Sie im Befehl die Bereiche an, die von der Google Analytics Admin API benötigt werden. Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen einrichten.

So authentifizieren Sie sich mit einem Dienstkonto:

  1. Erstellen Sie ein Dienstkonto.
  2. Hängen Sie das Dienstkonto an Ihre Cloud-VM-Instanz an, indem Sie den folgenden gcloud-Befehl ausführen:
  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"

Geben Sie im Befehl die Bereiche an, die von der Google Analytics Admin API benötigt werden. Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen einrichten.

Zugriff auf Google Analytics konfigurieren

Gewährten Sie der E-Mail-Adresse, die mit Ihrem Nutzer- oder Dienstkonto verknüpft ist, Google Analytics-Zugriff.

SDK für Ihre Programmiersprache einrichten

Installieren Sie das SDK für Ihre Programmiersprache auf Ihrem lokalen Computer.

Installationsanleitung für die Java-Clientbibliothek

Anleitung zur Installation der PHP-Clientbibliothek

Installationsanleitung für die Python-Clientbibliothek

Installationsanleitung für die Node.js-Clientbibliothek

Installationsanleitung für.NET-Clientbibliotheken

Anleitung zur Installation der Ruby-Clientbibliothek

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

Konfigurieren Sie die Umgebungsvariablen. Dazu geben Sie Folgendes ein. Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.

  EXPORT PROJECT_ID=PROJECT_ID

API aufrufen

Führen Sie den folgenden Code aus, um Ihren ersten Aufruf auszuführen:

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

Führen Sie dazu den Befehl „curl“ über die Befehlszeile aus oder fügen Sie den REST-Aufruf in Ihre Anwendung ein.

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

In der Beispielcodeantwort sind die Google Analytics-Konten aufgeführt, auf die Ihr Nutzer oder Ihr Dienstkonto zugreifen kann:

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