Authentication

Giống như các API khác của Google, Google Ads API sử dụng giao thức OAuth 2.0 để xác thực và uỷ quyền. OAuth 2.0 cho phép ứng dụng khách Google Ads API truy cập vào tài khoản Google Ads của người dùng mà không cần xử lý hoặc lưu trữ thông tin đăng nhập của người dùng.

Tìm hiểu mô hình truy cập của Google Ads

Để làm việc hiệu quả với Google Ads API, hãy tìm hiểu cách hoạt động của mô hình truy cập của Google Ads. Tham khảo hướng dẫn về mô hình truy cập của Google Ads.

Quy trình OAuth

Có 3 quy trình phổ biến được sử dụng khi làm việc với Google Ads API.

Quy trình tài khoản dịch vụ

Đây là quy trình được đề xuất nếu quy trình của bạn không yêu cầu bất kỳ hoạt động tương tác nào của con người. Quy trình này yêu cầu một bước định cấu hình, trong đó người dùng thêm một tài khoản dịch vụ vào tài khoản Google Ads của họ. Sau đó, ứng dụng có thể sử dụng thông tin xác thực của tài khoản dịch vụ để quản lý tài khoản Google Ads của người dùng.

Bạn có thể định cấu hình thư viện PHP như sau:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withJsonKeyFilePath('INSERT_PATH_TO_JSON_KEY_FILE_HERE')
    // Optional in v32.1.0 and later (defaults to
    // 'https://www.googleapis.com/auth/adwords').
    ->withScopes('https://www.googleapis.com/auth/adwords')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

Hãy tham khảo hướng dẫn về quy trình tài khoản dịch vụ để tìm hiểu thêm.

Quy trình xác thực một người dùng

Bạn có thể sử dụng quy trình này nếu không thể sử dụng tài khoản dịch vụ. Quy trình này yêu cầu 2 bước định cấu hình:

  1. Cấp quyền truy cập cho một người dùng vào tất cả các tài khoản cần quản lý bằng Google Ads API. Một phương pháp phổ biến là cấp cho người dùng quyền truy cập vào tài khoản người quản lý Google Ads API và liên kết tất cả tài khoản Google Ads trong tài khoản người quản lý đó.
  2. Sau đó, người dùng đó chạy một công cụ dòng lệnh như GenerateUserCredentials để cho phép ứng dụng của bạn quản lý tất cả tài khoản Google Ads của họ thay mặt họ.

Bạn có thể khởi chạy thư viện bằng thông tin xác thực OAuth 2.0 của người dùng như sau:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

Hãy tham khảo hướng dẫn về quy trình xác thực một người dùng để tìm hiểu thêm.

Quy trình xác thực nhiều người dùng

Đây là quy trình được đề xuất nếu ứng dụng của bạn cho phép người dùng đăng nhập và cho phép ứng dụng của bạn quản lý tài khoản Google Ads của họ thay mặt họ. Ứng dụng của bạn sẽ tự động tạo và quản lý thông tin xác thực người dùng OAuth 2.0 cho từng phiên người dùng đã xác thực. Bạn có thể khởi chạy thư viện bằng thông tin xác thực của người dùng đã đăng nhập như sau:

// Construct credentials dynamically per authenticated user session.
$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken($userRefreshToken)
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId($userLoginCustomerId)
    ->build();

Hãy tham khảo hướng dẫn về quy trình xác thực nhiều người dùng để tìm hiểu thêm.

Thông tin xác thực mặc định của ứng dụng

Thư viện ứng dụng PHP cũng hỗ trợ xác thực bằng Thông tin xác thực mặc định của ứng dụng (ADC). Khi bạn không đặt thông tin xác thực ở Chế độ ứng dụng (clientId, clientSecret, refreshToken) cũng như Chế độ tài khoản dịch vụ (jsonKeyFilePath) trên OAuth2TokenBuilder, việc gọi build() sẽ tự động quay lại Thông tin xác thực mặc định của ứng dụng:

$oAuth2Credential = (new OAuth2TokenBuilder())->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

Quản lý nhiều tài khoản

Người dùng thường quản lý nhiều tài khoản Google Ads, thông qua quyền truy cập trực tiếp vào tài khoản hoặc thông qua tài khoản người quản lý Google Ads. Thư viện ứng dụng PHP cung cấp các ví dụ về mã sau đây minh hoạ cách xử lý những trường hợp như vậy:

  1. Ví dụ về mã GetAccountHierarchy cho biết cách truy xuất danh sách tất cả tài khoản trong một tài khoản người quản lý Google Ads.
  2. Ví dụ về mã ListAccessibleCustomers cho biết cách truy xuất danh sách tất cả tài khoản mà người dùng có quyền truy cập trực tiếp. Sau đó, bạn có thể sử dụng các tài khoản này làm giá trị hợp lệ cho chế độ cài đặt loginCustomerId.