Xác thực và Ủy quyền

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 về mô hình truy cập của Google Ads

Để làm việc hiệu quả với API Google Ads, bạn nên hiểu cách hoạt động của mô hình truy cập Google Ads. Bạn nên đọc 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 thường dùng khi làm việc với Google Ads API.

Luồng 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 thiết lập, trong đó người dùng thêm 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 đăng nhập của tài khoản dịch vụ để quản lý tài khoản Google Ads của người dùng.

Sau đây là cách thiết lập OAuth2 để truy cập API bằng thông tin đăng nhập của riêng bạn bằng tài khoản dịch vụ trong thư viện ứng dụng Perl:

  1. Tạo thông tin đăng nhập OAuth2:

    Làm theo hướng dẫn để tạo tài khoản dịch vụ và tệp *.JSON.

  2. Thiết lập thư viện ứng dụng:

    Đặt đường dẫn JSON khoá riêng tư trong cấu hình của bạn. Nếu bạn đang sử dụng tệp googleads.properties, hãy thêm nội dung sau:

    jsonKeyFilePath=PRIVATE_KEY_FILE_PATH
    

    Nếu bạn đang sử dụng các 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=PRIVATE_KEY_FILE_PATH
    

    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ể 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 cho một người dùng quyền truy cập 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. Người dùng chạy ví dụ về mã generate_user_credentials.pl để uỷ quyền cho ứng dụng của bạn quản lý tất cả tài khoản Google Ads của họ thay cho họ.

Các bước sau đây sẽ chạy một ví dụ về mã tương tác, sau đó yêu cầu bạn cung cấp dữ liệu đầu vào.

  1. Trong một thiết bị đầu cuối, hãy chạy ví dụ generate_user_credentials.pl trong thư mục examples. Bạn có thể sửa đổi các giá trị INSERT_XXX_HERE trong ví dụ trước khi chạy hoặc sử dụng các đối số dòng lệnh -client_id cho mã ứng dụng và -client_secret cho khoá bí mật của ứng dụng.

    perl generate_user_credentials.pl -client_id {client_id} -client_secret {client_secret}
    
  2. Ví dụ về mã này nhắc bạn truy cập vào một URL mà bạn phải uỷ quyền cho ứng dụng thay mặt bạn truy cập vào tài khoản Google Ads của bạn.

    Paste this url in your browser:
    https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline&client_id=...
    

    Chuyển đến URL đó trong một phiên duyệt web ở chế độ riêng tư hoặc cửa sổ ẩn danh. Đăng nhập bằng Tài khoản Google mà bạn dùng để truy cập vào Google Ads. Thông thường, đây là một tài khoản email có quyền truy cập vào tài khoản người quản lý Google Ads chứa tất cả những tài khoản mà bạn cần quản lý trong hệ thống phân cấp tài khoản của tài khoản người quản lý đó. Nhấp vào Tiếp tục trên màn hình đồng ý OAuth 2.0.

    Màn hình đồng ý OAuth 2.0

    Bạn sẽ được chuyển hướng đến một trang có thông báo cho biết rằng quá trình uỷ quyền đã thành công.

    Authorization code was successfully retrieved.
    
  3. Quay lại bảng điều khiển nơi bạn đang chạy ví dụ về mã. Bạn sẽ thấy ví dụ về mã đã hoàn tất và đang hiển thị mã làm mới cũng như một số hướng dẫn, sau đó là các hướng dẫn mà bạn cần làm theo để định cấu hình thư viện ứng dụng:

    Replace the following keys and values in your googleads.properties configuration file:
    
    clientId==***********************apps.googleusercontent.com
    clientSecret=****
    refreshToken=****
    
  4. Nhấn Ctrl + C để kết thúc quá trình. Sau đó, hãy sao chép mã làm mới đã tạo cùng với mã ứng dụng và khoá bí mật ứng dụng vào tệp googleads.properties hoặc lưu mã này ở nơi khác để sử dụng nếu khởi tạo thư viện trong thời gian chạy.

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 bằng cách đặt nội dung sau trong googleads.properties:

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

Ngoài ra, hãy sử dụng các biến môi trường:

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

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à uỷ quyền cho ứng dụng của bạn quản lý tài khoản Google Ads thay cho họ. Ứng dụng của bạn tạo và quản lý thông tin xác thực người dùng OAuth 2.0.

Đối với Perl, bạn thường sẽ triển khai một quy trình ứng dụng web, trong đó ứng dụng của bạn xử lý việc chuyển hướng OAuth 2.0 và quản lý mã thông báo. Người dùng xác thực thông qua ứng dụng của bạn, đồng thời ứng dụng của bạn lưu trữ và sử dụng mã làm mới của người dùng để thay mặt họ thực hiện các lệnh gọi API.

Cấu hình để sử dụng thông tin xác thực đã nhận được cũng giống như cấu hình cho quy trình xác thực một người dùng:

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

Ngoài ra, hãy sử dụng các biến môi trường:

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

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.

Điều gì sẽ xảy ra nếu người dùng của tôi 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 Perl cung cấp các ví dụ minh hoạ cách xử lý những trường hợp như vậy.

  1. Ví dụ get_account_hierarchy.pl cho thấy 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ề list_accessible_customers.pl cho thấy cách truy xuất danh sách tất cả cá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ể dùng các tài khoản này làm giá trị hợp lệ cho chế độ cài đặt LoginCustomerId trong tệp googleads.properties hoặc biến môi trường GOOGLE_ADS_LOGIN_CUSTOMER_ID.