如同其他 Google API,Google Ads API 使用 OAuth 2.0 通訊協定進行驗證及授權。OAuth 2.0 可讓 Google Ads API 用戶端應用程式存取使用者的 Google Ads 帳戶,不必處理或儲存使用者的登入資訊。
瞭解 Google Ads 存取模式
如要有效使用 Google Ads API,請務必瞭解 Google Ads 存取權模式的運作方式。強烈建議您閱讀 Google Ads 存取模式指南。
OAuth 工作流程
使用 Google Ads API 時,有三種常見的工作流程。
服務帳戶流程
如果工作流程不需要任何人為互動,建議採用這個工作流程。這個工作流程需要設定步驟,使用者必須將服務帳戶新增至 Google Ads 帳戶。應用程式隨後就能使用服務帳戶的憑證,管理使用者的 Google Ads 帳戶。程式庫設定如下:
// 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);
詳情請參閱服務帳戶工作流程指南。
單一使用者驗證流程
如果您無法使用服務帳戶,可以採用這個工作流程。這個工作流程需要完成兩個設定步驟:
- 授予單一使用者存取權,透過 Google Ads API 管理所有帳戶。常見的做法是將使用者新增至 Google Ads API 管理員帳戶,並連結該管理員帳戶下的所有 Google Ads 帳戶。
- 使用者執行 gcloud CLI 或
GenerateUserCredentials
程式碼範例等工具,授權應用程式代表他們管理所有 Google Ads 帳戶。
您可以使用使用者的 OAuth 2.0 憑證初始化程式庫,如下所示:
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);
詳情請參閱單一使用者驗證工作流程指南。
多使用者驗證流程
如果您的應用程式允許使用者登入,並授權應用程式代為管理 Google Ads 帳戶,建議採用這個工作流程。您的應用程式會建構及管理 OAuth 2.0 使用者憑證。您可以使用使用者的憑證初始化程式庫,如下所示:
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);
詳情請參閱多使用者驗證工作流程指南。.NET 用戶端程式庫包含兩個程式碼範例,可供參考:
AuthenticateInAspNetCoreApplication
程式碼範例說明如何建構網頁應用程式,在執行階段取得使用者驗證,代表使用者管理 Google Ads 帳戶。應用程式會使用使用者的 OAuth 2.0 憑證,擷取 Google Ads 帳戶中的廣告活動。GenerateUserCredentials 是命令列程式碼範例,說明如何在執行階段取得使用者驗證,代為管理 Google Ads 帳戶。您可以參考這個程式碼範例,建構需要使用者驗證的電腦應用程式。
如果使用者管理多個帳戶,該怎麼辦?
使用者通常會管理多個 Google Ads 帳戶,方法包括直接存取帳戶,或是透過 Google Ads 管理員帳戶管理。.NET 用戶端程式庫提供下列程式碼範例,說明如何處理這類情況。
- GetAccountHierarchy 程式碼範例說明如何擷取 Google Ads 管理員帳戶下的所有帳戶清單。
- ListAccessibleCustomers 程式碼範例會說明如何擷取使用者可直接存取的所有帳戶清單。這些帳戶隨後可用於
LoginCustomerId
設定的有效值。