Hướng dẫn này thảo luận về cách truy cập API Google Ads bằng tài khoản dịch vụ.
Tài khoản dịch vụ là tài khoản thuộc về ứng dụng của bạn thay vì thuộc về một người dùng cuối cá nhân. Tài khoản dịch vụ cho phép tương tác giữa các máy chủ giữa một ứng dụng web và một dịch vụ của Google. Ứng dụng của bạn thay mặt tài khoản dịch vụ gọi API của Google, vì vậy, người dùng không trực tiếp tham gia.
Tài khoản dịch vụ sử dụng quy trình OAuth 2.0 không yêu cầu sự cho phép của con người, thay vào đó sử dụng tệp khoá mà chỉ ứng dụng của bạn có thể truy cập.
Việc sử dụng tài khoản dịch vụ mang lại hai lợi ích chính:
Việc uỷ quyền truy cập vào API của Google được thực hiện dưới dạng một bước định cấu hình, do đó, tránh được các vấn đề liên quan đến các luồng OAuth 2.0 khác yêu cầu tương tác của người dùng.
Quy trình xác nhận OAuth 2.0 cho phép ứng dụng của bạn mạo danh người dùng khác nếu cần.
Có hai cách để uỷ quyền bằng tài khoản dịch vụ: trực tiếp hoặc bằng cách giả mạo.
Uỷ quyền có quyền truy cập trực tiếp vào tài khoản
Trong tuỳ chọn này, bạn cấp cho tài khoản dịch vụ quyền truy cập trực tiếp vào tài khoản Google Ads của mình.
Thiết lập quyền truy cập vào tài khoản
Hãy bắt đầu bằng cách tạo tài khoản dịch vụ và thông tin xác thực.
Tải khoá tài khoản dịch vụ xuống ở định dạng JSON và ghi lại mã nhận dạng và email của tài khoản dịch vụ.
Đăng nhập vào tài khoản Google Ads của bạn với tư cách là quản trị viên. Chuyển đến phần Quản trị > Quyền truy cập và bảo mật.
Nhấp vào nút + trong thẻ Người dùng.
Nhập email của tài khoản dịch vụ vào hộp nhập Email. Chọn cấp truy cập tài khoản phù hợp rồi nhấp vào nút Thêm tài khoản. Xin lưu ý rằng các cấp truy cập Email và Quản trị viên không được hỗ trợ cho tài khoản dịch vụ.
Tài khoản dịch vụ được cấp quyền truy cập.
Cấu hình thư viện ứng dụng
Chọn thẻ tương ứng với ngôn ngữ lập trình của bạn để xem hướng dẫn về cách định cấu hình thư viện ứng dụng.
Java
Đặt đường dẫn JSON khoá riêng tư trong cấu hình. Nếu bạn đang sử dụng tệp ads.properties
, hãy thêm nội dung sau:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
Hãy xem hướng dẫn cấu hình để biết thêm thông tin chi tiết.
.NET
Định cấu hình các khoá sau trong App.config / Web.config
. Hãy xem hướng dẫn cấu hình để biết thêm thông tin chi tiết.
<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />
Python
Đặt đường dẫn JSON khoá riêng tư trong cấu hình. Nếu bạn đang sử dụng google-ads.yaml file
, chuỗi YAML hoặc dict
, hãy thêm nội dung sau:
json_key_file_path: JSON_KEY_FILE_PATH
Nếu bạn đang sử dụng biến môi trường, hãy thêm nội dung sau vào cấu hình hoặc môi trường Bash:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
PHP
Định cấu hình các khoá sau trong google_ads_php.ini
. Hãy xem hướng dẫn về cấu hình để biết thêm thông tin chi tiết.
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
Ruby
Định cấu hình các khoá sau trong google_ads_config.rb
.
c.keyfile = 'JSON_KEY_FILE_PATH'
Perl
Đặt đường dẫn JSON khoá riêng tư và mã tài khoản uỷ quyền trong cấu hình. Nếu bạn đang sử dụng tệp googleads.properties
, hãy thêm nội dung sau:
jsonKeyFilePath=JSON_KEY_FILE_PATH
Nếu bạn đang sử dụng biến môi trường, hãy thêm nội dung sau vào cấu hình hoặc môi trường Bash:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
Uỷ quyền bằng cách mạo danh
Trong tuỳ chọn này, bạn mạo danh một người dùng có quyền truy cập vào tài khoản Google Ads của bạn bằng tài khoản dịch vụ. Phương pháp này chỉ hoạt động đối với khách hàng Google Workspace. Tài khoản dịch vụ chỉ có thể mạo danh người dùng (địa chỉ email) trong cùng một Google Workspace.
Điều kiện tiên quyết
Một miền Google Workspace mà bạn sở hữu, chẳng hạn như
mydomain.com
hoặcmybusiness.com
Mã của nhà phát triển API Google Ads và một tài khoản thử nghiệm (không bắt buộc)
Thư viện ứng dụng cho ngôn ngữ bạn đang sử dụng
Một dự án trên Bảng điều khiển API của Google đã được định cấu hình cho API Google Ads
Người dùng Google Ads có quyền trên tài khoản Google Ads mà bạn muốn truy cập. Google Ads không hỗ trợ việc sử dụng tài khoản dịch vụ mà không có tính năng mạo danh.
Thiết lập quyền truy cập vào tài khoản dịch vụ
Vì hành vi mạo danh người dùng chỉ được kiểm soát ở cấp miền, nên để sử dụng tài khoản dịch vụ và quy trình xác nhận bằng Google OAuth 2.0, bạn phải đăng ký miền của riêng mình với Google Workspace. Sau đó, ứng dụng và người dùng của ứng dụng có thể mạo danh bất kỳ người dùng nào trong miền.
Hãy bắt đầu bằng cách tạo tài khoản dịch vụ và thông tin xác thực.
Tải khoá tài khoản dịch vụ xuống ở định dạng JSON và ghi lại mã tài khoản dịch vụ.
Chia sẻ mã tài khoản dịch vụ và phạm vi API Google Ads (
https://www.googleapis.com/auth/adwords
) với quản trị viên miền của bạn.Yêu cầu quản trị viên miền uỷ quyền quyền trên toàn miền cho tài khoản dịch vụ của bạn.
Nếu bạn là quản trị viên miền, hãy hoàn tất hướng dẫn trong trung tâm trợ giúp.
Giờ đây, bạn có thể sử dụng tài khoản dịch vụ để truy cập vào tài khoản Google Ads của mình bằng quy trình xác nhận OAuth 2.0.
Cấu hình thư viện ứng dụng
Chọn thẻ tương ứng với ngôn ngữ lập trình của bạn để xem hướng dẫn về cách định cấu hình thư viện ứng dụng.
Java
Đặt đường dẫn JSON khoá riêng tư và mã tài khoản uỷ quyền trong cấu hình.
Nếu bạn đang sử dụng tệp ads.properties
, hãy thêm nội dung sau:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL
Hãy xem hướng dẫn cấu hình để biết thêm thông tin chi tiết.
.NET
Định cấu hình các khoá sau trong App.config / Web.config
. Hãy xem hướng dẫn về cấu hình để biết thêm thông tin chi tiết.
<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />
<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />
Python
Đặt đường dẫn JSON khoá riêng tư và email được mạo danh trong cấu hình.
Nếu bạn đang sử dụng google-ads.yaml file
, chuỗi YAML hoặc dict
, hãy thêm nội dung sau:
json_key_file_path: JSON_KEY_FILE_PATH
impersonated_email: IMPERSONATED_EMAIL
Nếu bạn đang sử dụng biến môi trường, hãy thêm nội dung sau vào cấu hình hoặc môi trường Bash:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL
PHP
Định cấu hình các khoá sau trong google_ads_php.ini
. Hãy xem hướng dẫn về cấu hình để biết thêm thông tin chi tiết.
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
impersonatedEmail = "IMPERSONATED_EMAIL"
Ruby
Định cấu hình các khoá sau trong google_ads_config.rb
.
c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'
Perl
Đặt đường dẫn JSON khoá riêng tư và mã tài khoản uỷ quyền trong cấu hình. Nếu bạn đang sử dụng tệp googleads.properties
, hãy thêm nội dung sau:
jsonKeyFilePath=JSON_KEY_FILE_PATH
impersonatedEmail=IMPERSONATED_EMAIL
Nếu bạn đang sử dụng biến môi trường, hãy thêm nội dung sau vào cấu hình hoặc môi trường Bash:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL
Các mối lo ngại về bảo mật
Vì tài khoản dịch vụ có quyền uỷ quyền cấp miền cho miền Google Workspace, nên bạn cần bảo vệ tệp khoá cho phép tài khoản dịch vụ truy cập vào các dịch vụ của Google mà tài khoản đó được uỷ quyền. Điều này đặc biệt đúng vì tài khoản dịch vụ đó có khả năng mạo danh bất kỳ người dùng nào trong miền.
Một phương pháp hay khác là chỉ cho phép tài khoản dịch vụ truy cập vào nhóm API tối thiểu bắt buộc. Đây là biện pháp phòng ngừa để giới hạn lượng dữ liệu mà kẻ tấn công có thể truy cập nếu tệp khoá của tài khoản dịch vụ bị xâm phạm.