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 phải 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 Google Ads. Tham khảo hướng dẫn về mô hình truy cập Google Ads.
Quy trình OAuth
Có 3 quy trình công việc phổ biến 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 làm việc được đề xuất nếu quy trình làm việc 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 làm việc này yêu cầu một bước thiết lập, 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 làm việc của 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 hai bước định cấu hình:
- Cấp cho một người dùng quyền truy cập vào tất 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 thay mặt họ quản lý tất cả tài khoản Google Ads của họ.
Bạn có thể khởi chạy thư viện bằng thông tin đăng nhập 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 làm việc được đề xuất nếu ứng dụng của bạn cho phép người dùng đăng nhập và uỷ quyền cho ứng dụng quản lý tài khoản Google Ads thay mặt họ. Ứng dụng của bạn tự động tạo và quản lý thông tin xác thực người dùng OAuth 2.0 cho mỗi phiên người dùng được xác thực. Bạn có thể khởi chạy thư viện bằng thông tin đăng nhập 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 không có thông tin xác thực nào của Chế độ ứng dụng (clientId, clientSecret, refreshToken) hoặc Chế độ tài khoản dịch vụ (jsonKeyFilePath) được đặt trên OAuth2TokenBuilder, lệnh 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ý các 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.