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

Giống như các API khác của Google, API Google Ads 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 Google Ads API của bạn 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 phổ biến được sử dụng khi làm việc với API Google Ads.

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. Thư viện được định cấu hình như sau:


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

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

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 API Google Ads. 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ụ như gcloud CLI hoặc ví dụ về mã GenerateUserCredentials để 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ọ.

Bạn có thể khởi động thư viện bằng thông tin đăng nhập OAuth 2.0 của người dùng như sau:

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

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 sẽ tạo và quản lý thông tin xác thực người dùng OAuth 2.0. 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 như sau:

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

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ư viện ứng dụng .NET có 2 ví dụ về mã để bạn tham khảo:

  1. Ví dụ về mã AuthenticateInAspNetCoreApplication minh hoạ cách tạo một ứng dụng web 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. Ứng dụng này sử dụng thông tin đăng nhập 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. GenerateUserCredentials là một ví dụ về mã dòng lệnh 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 để tạo các ứng dụng dành cho máy tính cần xác thực người dùng.

Đ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 .NET cung cấp các ví dụ về mã sau đây minh hoạ cách xử lý những 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ể dùng các tài khoản này làm giá trị hợp lệ cho chế độ cài đặt LoginCustomerId.