您可以完成本快速入門導覽課程,熟悉 Data Manager API。選擇要查看的快速入門版本:
在本快速入門導覽課程中,您將完成下列步驟:
- 準備
Destination來接收目標對象資料。 - 準備要傳送的目標對象資料。
- 為目標對象成員建立
IngestionService要求。 - 使用 Google APIs Explorer 傳送要求。
- 瞭解成功和失敗的回應。
準備目的地
傳送資料前,請先準備好資料傳送目的地。以下是可供使用的 Destination 範例:
{ "operatingAccount": { "accountType": "OPERATING_ACCOUNT_TYPE", "accountId": "OPERATING_ACCOUNT_ID" }, "loginAccount": { "accountType": "LOGIN_ACCOUNT_TYPE", "accountId": "LOGIN_ACCOUNT_ID" }, "productDestinationId": "AUDIENCE_ID" } - 將
operatingAccount設為接收目標對象資料的帳戶類型和 ID。 - 如果 OAuth 憑證適用於有權存取 Google Ads 管理員帳戶的使用者,且該帳戶將
operatingAccount設為其中一個子帳戶,請將loginAccount設為管理員帳戶的帳戶類型和 ID。 - 如果 OAuth 憑證適用於可直接存取
operatingAccount的使用者,則不需要設定loginAccount。
準備目標對象資料
請看以下逗號分隔檔案中的範例資料。檔案中的每一行都對應一個目標對象成員,每個成員最多可有三個電子郵件地址。
#,email_1,email_2,email_3 1,[email protected],[email protected], 2,[email protected], [email protected],[email protected] 3,[email protected],[email protected] , 4,[email protected],[email protected], 電子郵件地址須符合下列格式和雜湊需求:
- 移除所有開頭、結尾和中間的空白字元。
- 將電子郵件地址轉換為小寫。
- 使用 SHA-256 演算法對電子郵件地址進行雜湊處理。
- 使用十六進位 (十六進位) 或 Base64 編碼,為雜湊位元組編碼。本指南中的範例使用十六進位編碼。
格式化資料如下:
#,email_1,email_2,email_3 1,[email protected],[email protected], 2,[email protected],[email protected],[email protected] 3,[email protected],[email protected], 4,[email protected],[email protected], 以下是經過雜湊處理和編碼的資料:
#,email_1,email_2,email_3 1,07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3,1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7 2,2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3,54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51,e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478 3,05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0,f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5 4,83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f,223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4 以下是輸入資料第一列中 [email protected] 和 [email protected] 的格式化、雜湊處理及編碼電子郵件地址範例 AudienceMember:
{ "userData": { "userIdentifiers": [ { "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3" }, { "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7" } ] } } 建立要求主體
將 Destination 和 userData 合併為要求主體:
{ "destinations": [ { "operatingAccount": { "accountType": "OPERATING_ACCOUNT_TYPE", "accountId": "OPERATING_ACCOUNT_ID" }, "loginAccount": { "accountType": "LOGIN_ACCOUNT_TYPE", "accountId": "LOGIN_ACCOUNT_ID" }, "productDestinationId": "AUDIENCE_ID" } ], "audienceMembers": [ { "userData": { "userIdentifiers": [ { "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3" }, { "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7" } ] } }, { "userData": { "userIdentifiers": [ { "emailAddress": "2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3" }, { "emailAddress": "54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51" }, { "emailAddress": "e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478" } ] } }, { "userData": { "userIdentifiers": [ { "emailAddress": "05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0" }, { "emailAddress": "f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5" } ] } }, { "userData": { "userIdentifiers": [ { "emailAddress": "83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f" }, { "emailAddress": "223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4" } ] } } ], "consent": { "adUserData": "CONSENT_GRANTED", "adPersonalization": "CONSENT_GRANTED" }, "encoding": "HEX", "termsOfService": { "customerMatchTermsOfServiceStatus": "ACCEPTED" }, "validateOnly": true } - 更新主體中的預留位置,例如
OPERATING_ACCOUNT_TYPE、OPERATING_ACCOUNT_ID和AUDIENCE_ID,並填入帳戶和目的地的相關值。 - 將
validateOnly設為true,即可驗證要求,但不會套用變更。準備好套用變更時,請將validateOnly設為false。 - 將
termsOfService設為表示使用者已接受目標顧客比對服務條款。 - 請注意,這項要求表示已授予
consent,且未使用加密。
傳送要求
- 使用範本右上角的複製按鈕,複製要求主體。
- 按一下工具列中的「API」按鈕。
- 將複製的要求主體貼到「要求主體」方塊。
- 按一下「執行」按鈕,完成授權提示,然後查看回覆。
成功回應
如果要求成功,回應會傳回包含 requestId 的物件。
{ "requestId": "126365e1-16d0-4c81-9de9-f362711e250a" } 記錄傳回的 requestId,以便在處理要求中的每個目的地時,擷取診斷資訊。
失敗回應
如果要求失敗,系統會傳回錯誤回應狀態碼 (例如 400 Bad Request),以及含有錯誤詳細資料的回應。
舉例來說,如果 email_address 包含純文字字串,而非十六進位編碼值,則會產生下列回應:
{ "error": { "code": 400, "message": "There was a problem with the request.", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "INVALID_ARGUMENT", "domain": "datamanager.googleapis.com" }, { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "audience_members.audience_members[0].user_data.user_identifiers", "description": "Email is not hex encoded.", "reason": "INVALID_HEX_ENCODING" } ] } ] } } 未經過雜湊處理且僅經過十六進位編碼的 email_address 會產生下列回應:
{ "error": { "code": 400, "message": "There was a problem with the request.", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "INVALID_ARGUMENT", "domain": "datamanager.googleapis.com" }, { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "audience_members.audience_members[0]", "reason": "INVALID_SHA256_FORMAT" } ] } ] } } 將事件傳送至多個目的地
如果資料包含不同目的地的目標對象成員,您可以使用目的地參照,在同一個要求中傳送這些成員。
舉例來說,如果您有使用者名單 ID 11112222 的目標對象成員,以及使用者名單 ID 77778888 的另一個目標對象成員,請設定每個 Destination 的 reference,在單一要求中傳送這兩個目標對象成員。reference 由使用者定義,唯一規定是每個 Destination 都有專屬的 reference。以下是要求的修改後 destinations 清單:
"destinations": [ { "operatingAccount": { "accountType": "OPERATING_ACCOUNT_TYPE", "accountId": "OPERATING_ACCOUNT_ID" }, "loginAccount": { "accountType": "LOGIN_ACCOUNT_TYPE", "accountId": "LOGIN_ACCOUNT_ID" }, "productDestinationId": "11112222", "reference": "audience_1" }, { "operatingAccount": { "accountType": "OPERATING_ACCOUNT_2_TYPE", "accountId": "OPERATING_ACCOUNT_2_ID" }, "loginAccount": { "accountType": "LOGIN_ACCOUNT_2_TYPE", "accountId": "LOGIN_ACCOUNT_2_ID" }, "productDestinationId": "77778888", "reference": "audience_2" } ] 設定每個 AudienceMember 的 destination_references,將其傳送至一或多個特定目的地。舉例來說,以下 AudienceMember 只適用於第一個 Destination,因此其 destination_references 清單只包含第一個 Destination 的 reference:
{ "userData": { "userIdentifiers": [ { "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3" }, { "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7" } ], } "destinationReferences": [ "audience_1" ] } destination_references 欄位是清單,因此您可以為目標對象成員指定多個目的地。如果未設定 AudienceMember 的 destination_references,Data Manager API 會將目標對象成員傳送至要求中的所有目的地。