在本快速入门中,您将创建并向 Google Analytics Admin API 发送 list
请求,然后查看响应以设置和验证您的 API 访问权限。
您可以使用 SDK、本地环境中的 REST API 或 Google Cloud 虚拟机实例完成本快速入门。
下面总结了这些步骤:
- 设置 Google Cloud 项目并启用 Google Analytics Admin API。
- 在本地机器或 Cloud VM 实例上:
- 安装、初始化并使用 Google Cloud 进行身份验证。
- 安装适用于您所用语言的 SDK(可选)。
- 配置身份验证。
- 配置 Google Analytics 访问权限。
- 设置 SDK。
- 进行 API 调用。
设置 Google Cloud 项目
点击以下启用 Google Analytics Admin API 按钮,选择或创建一个新的 Google Cloud 项目,然后自动启用 Google Analytics Admin API。
启用 Google Analytics Admin API设置 Google Cloud
在本地机器或 Cloud 虚拟机实例上,设置并使用 Google Cloud 进行身份验证。
-
安装并初始化 Google Cloud。
-
如需确保您的
gcloud
组件是最新的,请运行以下命令。gcloud components update
为避免向 Google Cloud 提供您的项目 ID,您可以使用 gcloud config set
命令设置默认项目和区域。
配置身份验证
本快速入门使用应用默认凭据根据应用环境自动查找凭据,因此您无需更改客户端代码即可进行身份验证。
Google Analytics Admin API 支持用户账号和服务账号:
- 用户账号代表开发者、管理员或与 Google API 和服务进行交互的任何其他人员。
- 服务账号不代表特定真人用户。它们提供了一种在真人不直接参与(例如,应用需要访问 Google Cloud 资源)时管理身份验证和授权的方法。
如需详细了解身份验证以及为应用设置账号凭据,请参阅 Google 的身份验证方法。
用户账号
运行以下命令,生成本地应用默认凭据 (ADC) 文件。此命令会启动一个 Web 流程,您可以在其中提供用户凭据。
gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
请务必在命令中指定 Google Analytics Admin API 所需的范围。如需了解详情,请参阅设置应用默认凭据
服务账号
如需使用服务账号进行身份验证,请按以下步骤操作:
- 创建服务账号。
- 运行以下 gcloud CLI 命令,将服务账号附加到 Cloud 虚拟机实例:
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"
请务必在命令中指定 Google Analytics Admin API 所需的范围。如需了解详情,请参阅设置应用默认凭据
配置对 Google Analytics 的访问权限
向 Google Analytics 授予对与您的用户账号或服务账号关联的电子邮件的访问权限。
为您的编程语言设置 SDK
在本地机器上,安装适用于您所用编程语言的 SDK。
Java
PHP
Python
Node.js
.NET
Ruby
Go
go get google.golang.org/genproto/googleapis/analytics/admin/v1beta
REST
输入以下命令来配置环境变量。
将 PROJECT_ID
替换为您的 Google Cloud 项目的 ID。
EXPORT PROJECT_ID=PROJECT_ID
进行 API 调用
运行以下代码以进行首次调用:
Java
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(); } } } } }
PHP
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; }
Python
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)
Node.js
// 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();
.NET
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(); } } } }
REST
如需发送此请求,请从命令行运行 curl 命令,或在应用中添加 REST 调用。
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
示例代码响应会列出您的用户账号或服务账号有权查看的 Google Analytics 账号:
{
"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"
}
}