Xác thực và uỷ 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 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.

Dưới đây là cách thiết lập OAuth2 để truy cập API bằng thông tin xác thực của riêng bạn thông qua một 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 khoá JSON.

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

    Đặt đường dẫn JSON của khoá riêng tư (và impersonatedEmail không bắt buộc nếu sử dụng tính năng uỷ quyền trên toàn miền của Google Workspace) 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 đoạn mã sau:

    jsonKeyFilePath=PRIVATE_KEY_FILE_PATH
    # Optional unless using Google Workspace domain-wide delegation:
    impersonatedEmail=IMPERSONATED_EMAIL
    loginCustomerId=LOGIN_CUSTOMER_ID
    

    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 của bạn:

    export GOOGLE_ADS_JSON_KEY_FILE_PATH=KEY_FILE_PATH
    export GOOGLE_ADS_IMPERSONATED_EMAIL=\
    IMPERSONATED_EMAIL
    export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
    

    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:

  1. 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ý đó.
  2. Người dùng chạy ví dụ về mã generate_user_credentials.pl để 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ọ.

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 dòng lệnh, 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 đối số dòng lệnh -client_id cho mã ứng dụng khách và -client_secret cho khoá bí mật của ứng dụng khách.

    perl generate_user_credentials.pl \
      -client_id OAUTH_CLIENT_ID \
      -client_secret OAUTH_CLIENT_SECRET
    
  2. Ví dụ về mã này nhắc bạn truy cập vào một URL, nơi bạn phải cho phép ứng dụng truy cập vào tài khoản Google Ads thay mặt bạn.

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

    Chuyển đến URL đó trong một phiên duyệt web 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ả các tài khoản mà bạn cần quản lý trong hệ phân cấp tài khoản của tài khoản đó. Nhấp vào Tiếp tục trên màn hình xin phép bằng OAuth 2.0.

    Màn hình xin phép bằ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 mã ví dụ. 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, theo sau là hướng dẫn 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 để chấm dứt quá trình. Sau đó, hãy sao chép mã làm mới đã tạo cùng với mã ứng dụng khách và khoá bí mật của ứng dụng khách vào tệp googleads.properties hoặc lưu ở nơi khác để sử dụng nếu tạo thực thể cho 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 xác thực OAuth 2.0 của người dùng bằng cách đặt các thông tin sau trong googleads.properties:

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

Ngoài ra, bạn có thể 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_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 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 sẽ 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 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, còn ứ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 để thực hiện lệnh gọi API thay mặt cho họ.

Cấu hình để sử dụng thông tin xác thực thu đượ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
loginCustomerId=LOGIN_CUSTOMER_ID

Ngoài ra, bạn có thể 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_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

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.

Nếu người dùng của tôi quản lý nhiều tài khoản thì sao?

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ụ về get_account_hierarchy.pl 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ề list_accessible_customers.pl 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ể 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.