ในบทแนะนำเริ่มต้นใช้งานนี้ คุณจะต้องสร้างและส่งคําขอ 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 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 สําหรับภาษาโปรแกรมในเครื่องของคุณ
go get google.golang.org/genproto/googleapis/analytics/admin/v1beta
กำหนดค่าตัวแปรสภาพแวดล้อมโดยป้อนข้อมูลต่อไปนี้
แทนที่ PROJECT_ID
ด้วยรหัสโปรเจ็กต์ Google Cloud
EXPORT PROJECT_ID=PROJECT_ID
เรียก API
เรียกใช้โค้ดต่อไปนี้เพื่อโทรครั้งแรก
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(); } } } }
หากต้องการส่งคําขอนี้ ให้เรียกใช้คําสั่ง 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"
}
}