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 .NET của 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 ứng dụng 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.

Định cấu hình thư viện như sau:

// Initialize a GoogleAdsConfig instance.
GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};

// Initialize a GoogleAdsClient instance.
GoogleAdsClient client = new GoogleAdsClient(config);

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 một công cụ dòng lệnh như gcloud hoặc GenerateUserCredentials ví dụ về mã để 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ọ.

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:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
    OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = "INSERT_REFRESH_TOKEN_HERE"
};

GoogleAdsClient client = new GoogleAdsClient(config);

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ạo và quản lý thông tin xác thực người dùng OAuth 2.0 một cách linh động theo từng phiên hoặc yêu cầu của người dùng, sau đó khởi chạy GoogleAdsClient bằng mã làm mới của người dùng đang hoạt động:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    LoginCustomerId = userSession.LoginCustomerId,
    OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = userSession.RefreshToken
};

GoogleAdsClient client = new GoogleAdsClient(config);

Kể từ Google.Ads.GoogleAds v27.0.0, bạn cũng có thể chèn trực tiếp đối tượng ICredential hoặc GoogleCredential được định cấu hình sẵn vào GoogleAdsConfig bằng thuộc tính Credentials.

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ư viện ứng dụng .NET bao gồm hai ví dụ về mã để tham khảo:

  1. Ví dụ về mã AuthenticateInAspNetCoreApplication minh hoạ cách xây dựng một ứng dụng web có được thông tin xác thực của người dùng trong thời gian chạy để thay mặt họ quản lý tài khoản Google Ads. Ứng dụng này sử dụng thông tin xác thực OAuth 2.0 của người dùng để truy xuất các chiến dịch trong tài khoản Google Ads của họ.
  2. Ví dụ về mã dòng lệnh GenerateUserCredentials minh hoạ cách lấy thông tin xác thực người dùng trong thời gian chạy để thay mặt họ quản lý tài khoản Google Ads. Bạn có thể sử dụng ví dụ về mã này làm tài liệu tham khảo để xây dựng các ứng dụng dành cho máy tính yêu cầu xác thực người dùng.

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 .NET 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:

  1. Ví dụ về mã GetAccountHierarchy 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ề mã ListAccessibleCustomers 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ể sử dụng các tài khoản này làm giá trị hợp lệ cho chế độ cài đặt LoginCustomerId.

Thông tin xác thực mặc định của ứng dụng

Thư viện ứng dụng .NET (v24.1.0 trở lên) 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.

Điều này đặc biệt hữu ích cho việc phát triển cục bộ hoặc phát triển dựa trên các API khác nhau của Google, vì bạn có thể sử dụng lại cùng một thông tin xác thực, miễn là thông tin xác thực đó có thể truy cập vào các phạm vi OAuth 2.0 bắt buộc.

Đối với Google Ads API, hãy đảm bảo Thông tin xác thực mặc định của ứng dụng có thể truy cập vào phạm vi OAuth 2.0 https://www.googleapis.com/auth/adwords.

Để sử dụng Thông tin xác thực mặc định của ứng dụng, hãy đặt tuỳ chọn UseApplicationDefaultCredentials thành true trong GoogleAdsConfig (hoặc đặt biến môi trường USE_APPLICATION_DEFAULT_CREDENTIALS=true khi tải cấu hình bằng config.LoadFromEnvironmentVariables()):

GoogleAdsConfig config = new GoogleAdsConfig()
{
    UseApplicationDefaultCredentials = true,
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);

Hãy tham khảo trang cấu hình để biết thêm thông tin chi tiết về các lựa chọn có sẵn để định cấu hình thư viện ứng dụng .NET.