授權與 HTTP 標頭

呼叫 Google Ads API 時,您需要 OAuth 2.0 憑證和開發人員權杖。如果您使用 Google Ads 管理員帳戶發出 API 呼叫,也需要在每個要求中指定 login-customer-id 標頭。本頁說明如何設定這些值,並記錄使用 REST 介面時傳送及接收的幾個額外 API 專屬 HTTP 標頭。

OAuth 2.0 憑證

Google Ads API 使用 OAuth 2.0 授權 API 要求。支援 OAuth 2.0 使用者驗證流程服務帳戶流程。詳情請參閱「Google Ads API 中的 OAuth 2.0」。

如果您是 Google API 的新手,可以先使用 gcloud CLIOAuth 2.0 Playground 試用 OAuth 2.0 憑證和 Google Ads API,再為應用程式編寫程式碼。

建議您使用 https://oauth.net/code/ 提供的 OAuth 2.0 程式庫,實作 OAuth 2.0 授權工作流程。不過,如果您需要自行實作,我們已列出 curl 指令。

服務帳戶

按照步驟為 Google Ads API 設定 Google Cloud 專案。記下服務帳戶電子郵件地址服務帳戶金鑰。接著,請按照「服務帳戶」指南中的一般操作說明,設定服務帳戶來存取 Google Ads 帳戶。

使用者驗證

請按照步驟為 Google Ads API 設定 Google Cloud 控制台專案。記下用戶端 ID用戶端密鑰。接著,請按照電腦版應用程式流程網頁應用程式流程的指示,產生重新整理權杖存取權杖。用於存取 Google Ads API 的 scopehttps://www.googleapis.com/auth/adwords

產生新的存取權杖

服務帳戶

取得服務帳戶電子郵件服務帳戶金鑰後,請按照針對伺服器對伺服器應用程式使用 OAuth 2.0 指南,產生 JWT 聲明集,然後交換以取得 OAuth 2.0 存取權杖。請務必選取 HTTP/REST 分頁標籤,然後按照指南操作。用於存取 Google Ads API 的 OAuth 2.0 範圍為 scopehttps://www.googleapis.com/auth/adwords。此外,建構 JWT 憑證集時,您可以略過 sub 參數,因為設定步驟會授予服務帳戶直接存取 Google Ads 帳戶的權限,因此不需要模擬 Google Ads 使用者。

接著,在每次呼叫 Google Ads API 時,您都會在 Authorization HTTP 標頭中使用存取權杖

GET /v22/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

使用者驗證

取得 OAuth 2.0 用戶端 ID用戶端密鑰更新權杖後,您可以使用 curl 指令列工具,產生新的存取權杖,用於 API 呼叫:

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

然後,在每次呼叫 Google Ads API 時,使用 curl 要求傳回的存取權杖,放在 Authorization HTTP 標頭中:

GET /v22/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

要求標頭

開發人員權杖:

此外,Google Ads API 也需要開發人員權杖,才能呼叫 API。如果您已有開發人員符記,請前往 https://ads.google.com/aw/apicenter 尋找。如果系統提示,請登入 Google Ads 管理員帳戶。如果沒有,請按照操作說明註冊開發人員權杖

您必須在每個 Google Ads API 呼叫的 developer-token HTTP 標頭中,加入開發人員權杖值:

GET /v22/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

登入客戶 ID

如果管理員要對用戶端帳戶發出 Google Ads API 呼叫 (也就是以管理員身分登入,對其中一個用戶端帳戶發出 API 呼叫),您也需要提供 login-customer-id HTTP 標頭。這個值代表進行 API 呼叫的管理員的 Google Ads 客戶 ID。

加入這個標頭,就等同於在登入後或點選頁面右上角的個人資料圖片時,在 Google Ads 使用者介面中選擇帳戶。指定客戶 ID 時,請務必移除所有連字號 (—)。 例如:1234567890,而非 123-456-7890。如要進一步瞭解登入客戶 ID,請參閱 Google Ads 存取模式指南

GET /v22/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID

連結的客戶 ID

只有 [第三方應用程式數據分析供應商 在將轉換上傳至已連結的 Google Ads 帳戶時,才會使用「已連結的客戶 ID」標頭。詳情請參閱 API 呼叫結構指南

...
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
linked-customer-id: LINKED_CUSTOMER_ID

回應標頭

API 的 HTTP 回應會傳回下列標頭。

要求 ID

request-id 是用於識別 API 要求的專屬字串。偵錯或排解特定 API 呼叫問題時,request-id 是重要的 ID,聯絡 Google 開發人員支援團隊時,請務必提供這個 ID。

request-id: 2a5Cj89VV7CNhya1DZjjrC