Authentication

如同其他 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 帳戶。PHP 程式庫的設定方式如下:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withJsonKeyFilePath('PATH_TO_CREDENTIALS_JSON')
    ->withScopes('https://www.googleapis.com/auth/adwords')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->build();

詳情請參閱服務帳戶工作流程指南

單一使用者驗證流程

如果無法使用服務帳戶,可以採用這個工作流程。這個工作流程需要完成兩個設定步驟:

  1. 授予單一使用者存取權,透過 Google Ads API 管理所有帳戶。常見的做法是將使用者新增至 Google Ads API 管理員帳戶,並連結該管理員帳戶下的所有 Google Ads 帳戶。
  2. 然後,該使用者會執行指令列工具,例如 GenerateUserCredentials

    授權應用程式代為管理所有 Google Ads 帳戶。

您可以使用使用者的 OAuth 2.0 憑證初始化程式庫,如下所示:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID')
    ->withClientSecret('INSERT_CLIENT_SECRET')
    ->withRefreshToken('INSERT_REFRESH_TOKEN')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

請參閱單一使用者驗證工作流程指南

瞭解詳情。

多使用者驗證流程

如果您的應用程式允許使用者登入,並授權應用程式代為管理 Google Ads 帳戶,建議採用這個工作流程。您的應用程式會建構及管理 OAuth 2.0 使用者憑證。您可以使用使用者的憑證初始化程式庫,如下所示:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID')
    ->withClientSecret('INSERT_CLIENT_SECRET')
    ->withRefreshToken('INSERT_REFRESH_TOKEN')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

請參閱多使用者驗證工作流程指南

瞭解詳情。

如果使用者管理多個帳戶,該怎麼辦?

使用者通常會管理多個 Google Ads 帳戶,方法包括直接存取帳戶,或是透過 Google Ads 管理員帳戶管理。PHP 用戶端程式庫提供下列程式碼範例,說明如何處理這類情況。

  1. GetAccountHierarchy

    程式碼範例:如何擷取 Google Ads 管理員帳戶下的所有帳戶清單。

  2. ListAccessibleCustomers

    程式碼範例說明如何擷取使用者可直接存取的所有帳戶清單。這些帳戶隨後可用於loginCustomerId 設定的有效值。