เริ่มต้นใช้งาน Google Analytics Admin API สําหรับนักพัฒนาซอฟต์แวร์

ในบทแนะนำเริ่มต้นใช้งานนี้ คุณจะต้องสร้างและส่งคําขอ 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

  1. ติดตั้งและเริ่มต้นใช้งาน Google Cloud

  2. เรียกใช้คําสั่งต่อไปนี้เพื่อให้แน่ใจว่าคอมโพเนนต์ 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 ในคําสั่ง ดูข้อมูลเพิ่มเติมได้ที่ตั้งค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน

ขั้นตอนการตรวจสอบสิทธิ์ด้วยบัญชีบริการมีดังนี้

  1. สร้างบัญชีบริการ
  2. แนบบัญชีบริการกับอินสแตนซ์ 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 สําหรับภาษาโปรแกรมในเครื่องของคุณ

JavaPHPPythonNode.js.NETRubyGoREST

คู่มือการติดตั้งไลบรารีของไคลเอ็นต์ Java

คู่มือการติดตั้งไลบรารีของไคลเอ็นต์ PHP

คู่มือการติดตั้งไลบรารีของไคลเอ็นต์ Python

คำแนะนำในการติดตั้งไลบรารีของไคลเอ็นต์ Node.js

คู่มือการติดตั้งไลบรารีของไคลเอ็นต์.NET

คู่มือการติดตั้งไลบรารีของไคลเอ็นต์ Ruby

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

กำหนดค่าตัวแปรสภาพแวดล้อมโดยป้อนข้อมูลต่อไปนี้ แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์ Google Cloud

  EXPORT PROJECT_ID=PROJECT_ID

เรียก API

เรียกใช้โค้ดต่อไปนี้เพื่อโทรครั้งแรก

JavaPHPPythonNode.js.NETREST

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