ในบทแนะนำเริ่มต้นใช้งานนี้ คุณจะต้องสร้างและส่งคําขอ list
ไปยัง Google Analytics Admin API จากนั้นดูคําตอบเพื่อตั้งค่าและยืนยันการเข้าถึง API
คุณเริ่มต้นใช้งานอย่างรวดเร็วนี้โดยใช้ SDK หรือ REST API ในสภาพแวดล้อมภายในหรืออินสแตนซ์ VM ของ Google Cloud ได้
สรุปขั้นตอนมีดังนี้
- ตั้งค่าโปรเจ็กต์ Google Cloud และเปิดใช้ Google Analytics Admin API
- ในเครื่องหรืออินสแตนซ์ VM ของ Cloud ให้ทำดังนี้
- ติดตั้ง เริ่มต้นใช้งาน และตรวจสอบสิทธิ์กับ 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
ตั้งค่าและตรวจสอบสิทธิ์กับ Google Cloud ในเครื่องหรืออินสแตนซ์ VM ของ Cloud
-
ติดตั้งและเริ่มต้นใช้งาน Google Cloud
-
เรียกใช้คําสั่งต่อไปนี้เพื่อให้แน่ใจว่าคอมโพเนนต์
gcloud
เป็นเวอร์ชันล่าสุดgcloud components update
หากไม่ต้องการป้อนรหัสโปรเจ็กต์ให้กับ Google Cloud คุณสามารถใช้คำสั่ง gcloud config set
เพื่อตั้งค่าโปรเจ็กต์และภูมิภาคเริ่มต้นได้
กำหนดค่าการตรวจสอบสิทธิ์
บทแนะนำเริ่มต้นใช้งานนี้ใช้ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันเพื่อค้นหาข้อมูลเข้าสู่ระบบโดยอัตโนมัติตามสภาพแวดล้อมของแอปพลิเคชัน คุณจึงไม่ต้องเปลี่ยนโค้ดไคลเอ็นต์เพื่อตรวจสอบสิทธิ์
Google Analytics Admin API รองรับบัญชีผู้ใช้และบัญชีบริการ ดังนี้
- บัญชีผู้ใช้แสดงถึงนักพัฒนาซอฟต์แวร์ ผู้ดูแลระบบ หรือบุคคลอื่นๆ ที่โต้ตอบกับ Google API และบริการ
- บัญชีบริการไม่ได้แสดงถึงผู้ใช้ที่เป็นบุคคล ซึ่งจะเป็นวิธีจัดการการตรวจสอบสิทธิ์และการให้สิทธิ์เมื่อไม่มีบุคคลใดเกี่ยวข้องโดยตรง เช่น เมื่อแอปพลิเคชันต้องเข้าถึงทรัพยากร Google Cloud
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์และการตั้งค่าข้อมูลเข้าสู่ระบบของบัญชีสําหรับแอปพลิเคชันได้ที่วิธีการตรวจสอบสิทธิ์ที่ Google
บัญชีผู้ใช้
สร้างไฟล์ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) ในพื้นที่โดยเรียกใช้คำสั่งต่อไปนี้ คำสั่งนี้จะเปิดใช้งานขั้นตอนการดำเนินการบนเว็บซึ่งคุณต้องระบุข้อมูลเข้าสู่ระบบของผู้ใช้
gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly"
อย่าลืมระบุขอบเขตที่จําเป็นโดย Google Analytics Admin API ในคําสั่ง ดูข้อมูลเพิ่มเติมได้ที่ตั้งค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
บัญชีบริการ
ขั้นตอนการตรวจสอบสิทธิ์ด้วยบัญชีบริการมีดังนี้
- สร้างบัญชีบริการ
- แนบบัญชีบริการกับอินสแตนซ์ Cloud VM โดยเรียกใช้คำสั่ง 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"
อย่าลืมระบุขอบเขตที่จําเป็นโดย 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
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"
}
}