Szybki start dla deweloperów korzystających z interfejsu Google Analytics Data API w wersji 1

W tym samouczku utworzysz i wyślesz żądania list do interfejsu Google Analytics Data API w wersji 1, a potem wyświetlisz odpowiedzi, aby skonfigurować i potwierdzić dostęp do interfejsu API.

Możesz wykonać ten samouczek za pomocą pakietu SDK lub interfejsu REST API w środowisku lokalnym albo instancji maszyny wirtualnej Google Cloud.

Oto podsumowanie kroków:

  • skonfigurować projekt Google Cloud i włączyć interfejs Google Analytics Data API w wersji 1;
  • Na komputerze lokalnym lub instancji maszyny wirtualnej w chmurze:
    • Instalowanie, inicjowanie i uwierzytelnianie się w Google Cloud.
    • Zainstaluj pakiet SDK dla wybranego języka (opcjonalnie).
  • skonfigurować uwierzytelnianie,
  • Skonfiguruj dostęp do Google Analytics.
  • Skonfiguruj pakiet SDK.
  • Wywołaj interfejs API.

Konfigurowanie projektu Google Cloud

Kliknij przycisk Włącz interfejs Google Analytics Data API w wersji 1, aby wybrać lub utworzyć nowy projekt Google Cloud i automatycznie włączyć interfejs Google Analytics Data API w wersji 1.

Włączanie interfejsu Google Analytics Data API w wersji 1

Konfigurowanie Google Cloud

Na komputerze lokalnym lub instancji maszyny wirtualnej w Google Cloud skonfiguruj Google Cloud i zaloguj się na swoje konto.

  1. Zainstaluj i inicjuj Google Cloud.

  2. Aby mieć pewność, że komponenty gcloud są aktualne, uruchom to polecenie.

    gcloud components update

Aby uniknąć podawania identyfikatora projektu w Google Cloud, możesz użyć polecenia gcloud config set, aby ustawić domyślny projekt i region.

Konfigurowanie uwierzytelniania

W tym krótkim wprowadzeniu użyjemy domyślnych danych logowania aplikacji, aby automatycznie znajdować dane logowania na podstawie środowiska aplikacji. Dzięki temu nie musisz zmieniać kodu klienta, aby uwierzytelnić aplikację.

Interfejs Google Analytics Data API w wersji 1 obsługuje konta użytkownikówkonta usługi:

  • Konta użytkowników reprezentują programistę, administratora lub dowolną inną osobę korzystającą z interfejsów API i usług Google.
  • Konta usługi nie reprezentują konkretnego użytkownika. Umożliwiają one zarządzanie uwierzytelnianiem i autoryzacją, gdy nie jest bezpośrednio zaangażowana osoba, np. gdy aplikacja musi uzyskać dostęp do zasobów Google Cloud.

Więcej informacji o uwierzytelnianiu i konfiguracji danych logowania do konta w aplikacji znajdziesz w artykule Metody uwierzytelniania w Google.

Konto użytkownika

Wygeneruj lokalny plik domyślnych danych uwierzytelniających aplikacji (ADC), uruchamiając to polecenie. To polecenie uruchamia proces internetowy, w którym podajesz dane logowania użytkownika.

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

Pamiętaj, aby w komendach podać zakresy wymagane przez interfejs Google Analytics Data API w wersji 1. Więcej informacji znajdziesz w artykule Konfigurowanie domyślnego uwierzytelniania aplikacji.

Konto usługi

Aby uwierzytelnić się za pomocą konta usługi przy użyciu instancji maszyny wirtualnej w Google Cloud:

  1. Utwórz konto usługi
  2. Załącz konto usługi do instancji maszyny wirtualnej w chmurze, uruchamiając to polecenie 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"

Pamiętaj, aby w komendach podać zakresy wymagane przez interfejs Google Analytics Data API w wersji 1. Więcej informacji znajdziesz w artykule Konfigurowanie domyślnego uwierzytelniania aplikacji.

Konfigurowanie dostępu do Google Analytics

Przyznaj Google Analytics dostęp do adresu e-mail powiązanego z kontem użytkownika lub usługi.

Konfigurowanie pakietu SDK pod kątem języka programowania

Zainstaluj na komputerze pakiet SDK dla wybranego języka programowania.

Java

Przewodnik po instalacji biblioteki klienta Java

PHP

Przewodnik po instalacji biblioteki klienta PHP

Python

Przewodnik po instalacji biblioteki klienta Pythona

Node.js

Przewodnik po instalacji biblioteki klienta Node.js

.NET

Przewodnik instalacji biblioteki klienta.NET

Ruby

Przewodnik instalacji biblioteki klienta Ruby

Przeczytaj

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

REST

Aby skonfigurować zmienne środowiskowe, wpisz: Zastąp PROJECT_ID identyfikatorem swojego projektu Google Cloud, a PROPERTY_ID identyfikatorem swojej usługi w Google Analytics.

  export PROJECT_ID=PROJECT_ID
  export PROPERTY_ID=PROPERTY_ID

Wywoływanie interfejsu API

Aby wykonać pierwsze wywołanie, uruchom ten kod:

Java

import com.google.analytics.data.v1beta.BetaAnalyticsDataClient;
import com.google.analytics.data.v1beta.DateRange;
import com.google.analytics.data.v1beta.Dimension;
import com.google.analytics.data.v1beta.Metric;
import com.google.analytics.data.v1beta.Row;
import com.google.analytics.data.v1beta.RunReportRequest;
import com.google.analytics.data.v1beta.RunReportResponse;

/**
 * Google Analytics Data API sample quickstart application.
 *
 * <p>This application demonstrates the usage of the Analytics Data API using service account
 * credentials.
 *
 * <p>Before you start the application, please review the comments starting with "TODO(developer)"
 * and update the code to use correct values.
 *
 * <p>To run this sample using Maven:
 *
 * <pre>{@code
 * cd google-analytics-data
 * mvn compile exec:java -Dexec.mainClass="com.google.analytics.data.samples.QuickstartSample"
 * }</pre>
 */
public class QuickstartSample {

  public static void main(String... args) throws Exception {
    /**
     * TODO(developer): Replace this variable with your Google Analytics 4 property ID before
     * running the sample.
     */
    String propertyId = "YOUR-GA4-PROPERTY-ID";
    sampleRunReport(propertyId);
  }

  // This is an example snippet that calls the Google Analytics Data API and runs a simple report
  // on the provided GA4 property id.
  static void sampleRunReport(String propertyId) throws Exception {
    // Using a default constructor instructs the client to use the credentials
    // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) {

      RunReportRequest request =
          RunReportRequest.newBuilder()
              .setProperty("properties/" + propertyId)
              .addDimensions(Dimension.newBuilder().setName("city"))
              .addMetrics(Metric.newBuilder().setName("activeUsers"))
              .addDateRanges(DateRange.newBuilder().setStartDate("2020-03-31").setEndDate("today"))
              .build();

      // Make the request.
      RunReportResponse response = analyticsData.runReport(request);

      System.out.println("Report result:");
      // Iterate through every row of the API response.
      for (Row row : response.getRowsList()) {
        System.out.printf(
            "%s, %s%n", row.getDimensionValues(0).getValue(), row.getMetricValues(0).getValue());
      }
    }
  }
}

PHP

require 'vendor/autoload.php';

use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\RunReportRequest;

/**
 * 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.
$client = new BetaAnalyticsDataClient();

// Make an API call.
$request = (new RunReportRequest())
    ->setProperty('properties/' . $property_id)
    ->setDateRanges([
        new DateRange([
            'start_date' => '2020-03-31',
            'end_date' => 'today',
        ]),
    ])
    ->setDimensions([new Dimension([
            'name' => 'city',
        ]),
    ])
    ->setMetrics([new Metric([
            'name' => 'activeUsers',
        ])
    ]);
$response = $client->runReport($request);

// Print results of an API call.
print 'Report result: ' . PHP_EOL;

foreach ($response->getRows() as $row) {
    print $row->getDimensionValues()[0]->getValue()
        . ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL;
}

Python

from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
    DateRange,
    Dimension,
    Metric,
    RunReportRequest,
)


def sample_run_report(property_id="YOUR-GA4-PROPERTY-ID"):
    """Runs a simple report on a Google Analytics 4 property."""
    # TODO(developer): Uncomment this variable and replace 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.
    client = BetaAnalyticsDataClient()

    request = RunReportRequest(
        property=f"properties/{property_id}",
        dimensions=[Dimension(name="city")],
        metrics=[Metric(name="activeUsers")],
        date_ranges=[DateRange(start_date="2020-03-31", end_date="today")],
    )
    response = client.run_report(request)

    print("Report result:")
    for row in response.rows:
        print(row.dimension_values[0].value, row.metric_values[0].value)

Node.js

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

  // Imports the Google Analytics Data API client library.
  const {BetaAnalyticsDataClient} = require('@google-analytics/data');

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

  // Runs a simple report.
  async function runReport() {
    const [response] = await analyticsDataClient.runReport({
      property: `properties/${propertyId}`,
      dateRanges: [
        {
          startDate: '2020-03-31',
          endDate: 'today',
        },
      ],
      dimensions: [
        {
          name: 'city',
        },
      ],
      metrics: [
        {
          name: 'activeUsers',
        },
      ],
    });

    console.log('Report result:');
    response.rows.forEach((row) => {
      console.log(row.dimensionValues[0], row.metricValues[0]);
    });
  }

  runReport();

.NET

using Google.Analytics.Data.V1Beta;
using System;

namespace AnalyticsSamples
{
    class QuickStart
    {
        static void SampleRunReport(string propertyId="YOUR-GA4-PROPERTY-ID")
        {
            /**
             * TODO(developer): Uncomment this variable and replace with your
             *  Google Analytics 4 property ID before running the sample.
             */
            // propertyId = "YOUR-GA4-PROPERTY-ID";

            // Using a default constructor instructs the client to use the credentials
            // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
            BetaAnalyticsDataClient client = BetaAnalyticsDataClient.Create();

            // Initialize request argument(s)
            RunReportRequest request = new RunReportRequest
            {
                Property = "properties/" + propertyId,
                Dimensions = { new Dimension{ Name="city"}, },
                Metrics = { new Metric{ Name="activeUsers"}, },
                DateRanges = { new DateRange{ StartDate="2020-03-31", EndDate="today"}, },
            };

            // Make the request
            RunReportResponse response = client.RunReport(request);

            Console.WriteLine("Report result:");
            foreach(Row row in response.Rows)
            {
                Console.WriteLine("{0}, {1}", row.DimensionValues[0].Value, row.MetricValues[0].Value);
            }
        }
        static int Main(string[] args)
        {
            if (args.Length > 0) {
                SampleRunReport(args[0]);
            } else {
                SampleRunReport();
            }
            return 0;
        }
    }
}

REST

Aby wysłać to żądanie, uruchom polecenie curl z wiersza poleceń lub dodaj wywołanie REST w aplikacji.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "x-goog-user-project: ${PROJECT_ID}" \
  -H "Content-Type: application/json" \
  -d '
  {
    "dateRanges": [
      {
        "startDate": "2025-01-01",
        "endDate": "2025-02-01"
      }
    ],
    "dimensions": [
      {
        "name": "country"
      }
    ],
    "metrics": [
      {
        "name": "activeUsers"
      }
    ]
  }'  https://analyticsdata.googleapis.com/v1beta/properties/${PROPERTY_ID}:runReport

Odpowiedź będzie zawierać raport z aktywnymi użytkownikami podzielonymi według kraju, np.:

{
  "dimensionHeaders": [
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "3242"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        }
      ],
      "metricValues": [
        {
          "value": "3015"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "India"
        }
      ],
      "metricValues": [
        {
          "value": "805"
        }
      ]
    }
  ],
  "rowCount": 3,
  "metadata": {
    "currencyCode": "USD",
    "timeZone": "America/Los_Angeles"
  },
  "kind": "analyticsData#runReport"
}