服務帳戶工作流程

本指南將說明如何使用服務帳戶存取 Google Ads API。

服務帳戶是應用程式專用的帳戶,而非個別使用者的帳戶。服務帳戶採用 OAuth 2.0 流程,不需要人工授權,而是使用只有您的應用程式可以存取的金鑰檔案。

使用服務帳戶有兩大好處:

  • 您必須先完成設定步驟,才能授權 Google Ads API 存取 Google Ads 帳戶,並利用 Google Ads 使用者介面提供的授權和帳戶管理功能。這樣一來,開發人員就不必建構 OAuth 2.0 流程,也不必處理涉及使用者互動、儲存使用者憑證和權杖管理等複雜問題,可節省開發工作。

  • Google Ads 帳戶的存取授權與個別使用者憑證無關,因此即使原始授權存取的員工離開團隊或公司,授權仍可繼續有效。

設定帳戶存取權

  1. 請先建立服務帳戶和憑證。

    下載 JSON 格式的服務帳戶金鑰,並記下服務帳戶 ID 和電子郵件地址。

  2. 以管理員身分登入 Google Ads 帳戶。前往「管理」>「存取權和安全性」。

  3. 按一下「Users」分頁標籤下方的「+」按鈕。

  4. 在「電子郵件」輸入框中輸入服務帳戶電子郵件地址。選取適當的帳戶存取層級 (請注意,服務帳戶不支援「僅限電子郵件」存取層級),然後按一下「新增帳戶」按鈕。

  5. 服務帳戶已獲得存取權。

  6. 選用:根據預設,您無法授予服務帳戶管理員存取權。遵循最小權限原則,只有在 API 呼叫需要管理員存取權時,才授予這項權限。您可以透過下列方式升級存取權:

    • 在「存取層級」欄中,按一下服務帳戶存取層級旁的下拉式箭頭。
    • 從下拉式清單選取「管理員」。

用戶端程式庫設定

選取程式設計語言對應的分頁,查看如何設定用戶端程式庫的操作說明。如果服務帳戶透過 Google Ads 管理員帳戶 (MCC) 存取客戶帳戶,請將 login-customer-id (或 loginCustomerId) 設為該管理員帳戶的 10 位數客戶 ID,且不含連字號 (請參閱「登入客戶 ID」)。

Java

在設定中設定私密金鑰 JSON 路徑。如果您使用 ads.properties 檔案,請新增下列程式碼:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

詳情請參閱設定指南。

.NET

在 GoogleAdsConfig 例項上設定 OAuth2Mode 和 OAuth2SecretsJsonPath,並使用該例項初始化 GoogleAdsClient 物件。

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "JSON_KEY_FILE_PATH",
    // ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

詳情請參閱設定指南。

Python

在設定中設定私密金鑰 JSON 路徑。如果您使用 google-ads.yaml 檔案、YAML 字串或 dict,請新增下列項目:

json_key_file_path: JSON_KEY_FILE_PATH

如果您使用環境變數,請在 Bash 設定或環境中加入下列內容:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

詳情請參閱設定指南。

PHP

在 google_ads_php.ini 檔案中設定下列鍵。

[OAUTH2]
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"

詳情請參閱設定指南。

小茹

在 google_ads_config.rb 中設定下列鍵。

c.keyfile = 'JSON_KEY_FILE_PATH'

詳情請參閱設定指南。

Perl

在設定中設定私密金鑰 JSON 路徑。如果您使用 googleads.properties 檔案,請新增下列程式碼:

jsonKeyFilePath=JSON_KEY_FILE_PATH

如果您使用環境變數,請在 Bash 設定或環境中加入下列內容:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

詳情請參閱設定指南。

curl

首先,請在 gcloud CLI 中將服務帳戶設為有效憑證。

gcloud auth login --cred-file=JSON_KEY_FILE_PATH

接著,擷取 Google Ads API 的 OAuth 2.0 存取權杖。

gcloud auth \
  print-access-token \
  --scopes='https://www.googleapis.com/auth/adwords'

現在您可以在 API 呼叫中使用存取權杖。下列範例說明如何使用 GoogleAdsService.SearchStream 方法擷取帳戶中的廣告活動,進而執行廣告活動報表。本指南未涵蓋報表的詳細資料。

curl -i -X POST \
  https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "login-customer-id: LOGIN_CUSTOMER_ID" \
  --data-binary "@query.json"

query.json 的內容如下:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}