本指南說明所有 API 呼叫的常見結構。
如果您使用用戶端程式庫與 API 互動,就不需要瞭解基礎要求詳細資料。不過,在測試和偵錯時,瞭解 API 呼叫結構會很有幫助。
Google Ads API 是 gRPC API,具有 REST 繫結。也就是說,您可以透過兩種方式呼叫 API。
建議做法:
我們的大部分說明文件都描述如何使用 gRPC。
選用:
- 將要求主體建立為 JSON 物件。
- 使用 HTTP 1.1 將其傳送至伺服器。
- 將回應還原序列化為 JSON 物件。
- 解讀結果。
如要進一步瞭解如何使用 REST,請參閱 REST 介面指南。
資源名稱
API 中的大多數物件都是透過資源名稱字串識別。使用 REST 介面時,這些字串也會做為網址。如要瞭解結構,請參閱 REST 介面的資源名稱。
複合 ID
如果物件的 ID 不是全域不重複,系統會為該物件建構複合 ID,方法是在物件的 ID 前加上父項 ID 和半形波浪號 (~)。
舉例來說,由於廣告群組廣告 ID 並非全域不重複,我們會將其父項物件 (廣告群組) ID 前置於該 ID,以建立不重複的複合 ID:
AdGroupId的123+~+AdGroupAdId的45678=123~45678的複合廣告群組廣告 ID。
要求標頭
這些是要求中與主體一併傳送的 HTTP 標頭 (或 gRPC 中繼資料):
授權
您必須以 Authorization: Bearer
YOUR_ACCESS_TOKEN 形式加入 OAuth 2.0 存取權杖,用來識別代表客戶執行的管理員帳戶,或是直接管理自己帳戶的廣告主。如需如何擷取存取權杖的操作說明,請參閱 OAuth2 指南。存取權杖的效期為一小時,過期後請重新整理存取權杖,以擷取新的權杖。請注意,我們的用戶端程式庫會自動重新整理過期的權杖。
如果發生授權錯誤,請確認您使用的憑證正確無誤,且具備足夠的權限。USER_PERMISSION_DENIED 錯誤表示經過驗證的使用者可能無法存取要求中指定的客戶帳戶。如要進一步瞭解如何管理權限,請參閱「Google Ads 存取層級」。
login-customer-id
這是授權客戶的客戶 ID,可在要求中使用,不含連字號 (-)。如果透過管理員帳戶存取客戶帳戶,則必須設定這個標頭,且必須設為管理員帳戶的客戶 ID。如果您透過管理員帳戶進行驗證時未加入 login-customer-id,就會導致 AuthorizationError.USER_PERMISSION_DENIED 錯誤。如要進一步瞭解這類錯誤,請參閱常見錯誤。如要深入瞭解帳戶存取權的解決方式,請參閱 OAuth 存取權模型指南。
https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/campaignBudgets:mutate
設定 login-customer-id 等同於登入後在 Google Ads 使用者介面中選擇帳戶,或按一下右上方的預設個人圖片。如未加入這個標頭,系統會預設為營運客戶。
linked-customer-id
合作夥伴 (例如第三方應用程式數據分析供應商或資料合作夥伴) 對已連結的 Google Ads 帳戶採取行動時,必須使用這個標頭。這個標頭必須指定具有產品連結的 Google Ads 帳戶客戶 ID。
假設合作夥伴需要根據產品連結,對 Google Ads 帳戶發出 API 呼叫。
- 廣告主:API 呼叫管理或更新的 Google Ads 帳戶。
要求中指定了廣告主帳戶 ID。在 REST 中,這是
customerId路徑參數 (例如customers/1111111111/...),在 gRPC 中,這是要求中的customer_id欄位。 - 合作夥伴:合作夥伴帳戶 (例如第三方應用程式分析供應商或資料合作夥伴)。
- 已連結帳戶:與合作夥伴建立產品連結的 Google Ads 帳戶,可授予合作夥伴廣告主存取權。
有權存取合作夥伴帳戶的使用者會發出 API 呼叫,對廣告主帳戶中的實體執行動作 (例如上傳轉換或管理使用者名單)。「已連結帳戶」可以是「廣告主」帳戶本身,也可以是「廣告主」帳戶的管理員帳戶。
要求標頭必須設定如下:
Authorization:有權存取合作夥伴的使用者 OAuth 2.0 存取權杖。login-customer-id:合作夥伴的客戶 ID。通過驗證的使用者必須有這個帳戶的存取權。linked-customer-id:已連結帳戶的客戶 ID。這個標頭表示這項要求的授權取決於已連結帳戶與合作夥伴的產品連結。
連結情境有兩種:
- 如果廣告主帳戶與合作夥伴帳戶有直接產品連結,則連結帳戶為廣告主,且
linked-customer-id必須設為廣告主帳戶的客戶 ID。 - 如果廣告主帳戶是由與合作夥伴帳戶有產品連結的管理員帳戶管理,則已連結帳戶為管理員帳戶,且
linked-customer-id必須設為管理員的客戶 ID。
範例 1:直接連結
如果廣告主帳戶 1111111111 與合作夥伴帳戶 2222222222 直接連結,且 API 呼叫的目標是 customers/1111111111/...:
Authorization: Bearer YOUR_ACCESS_TOKEN
login-customer-id: 2222222222
linked-customer-id: 1111111111
範例 2:管理員連結
如果廣告主帳戶 1111111111 由管理員帳戶 3333333333 管理,管理員帳戶 3333333333 與合作夥伴帳戶 2222222222 之間有連結,且 API 呼叫的目標為 customers/1111111111/...:
Authorization: Bearer YOUR_ACCESS_TOKEN
login-customer-id: 2222222222
linked-customer-id: 3333333333
回應標頭
下列標頭 (或 grpc 尾隨中繼資料) 會連同回應內文一併傳回。建議您記錄這些值,以利進行偵錯。
要求 ID
request-id 是用於識別這項要求的專屬字串。