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:
- 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ý đó.
- 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:
- Ví dụ về mã
GetAccountHierarchycho 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. - Ví dụ về mã
ListAccessibleCustomerscho 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 đặtloginCustomerId.