คู่มือนี้อธิบายโครงสร้างทั่วไปของการเรียก API ทั้งหมด
หากใช้ไลบรารีของไคลเอ็นต์เพื่อโต้ตอบกับ API คุณไม่จำเป็นต้องทราบรายละเอียดคำขอที่เกี่ยวข้อง อย่างไรก็ตาม ความรู้เกี่ยวกับโครงสร้างการเรียก API บางอย่างอาจมีประโยชน์เมื่อทดสอบและแก้ไขข้อบกพร่อง
Google Ads API เป็น gRPC API ที่มีการเชื่อมโยง REST ซึ่งหมายความว่าคุณเรียกใช้ API ได้ 2 วิธี
แนะนำ:
- สร้างเนื้อหาของคำขอเป็น บัฟเฟอร์โปรโตคอล
- ส่งไปยังเซิร์ฟเวอร์โดยใช้ HTTP/2
- ยกเลิกการซีเรียลไลซ์การตอบกลับเป็นบัฟเฟอร์โปรโตคอล
- ตีความผลลัพธ์
เอกสารประกอบส่วนใหญ่ของเราอธิบายการใช้ gRPC
ไม่บังคับ
- สร้างเนื้อหาของคำขอเป็นออบเจ็กต์ JSON
- ส่งไปยังเซิร์ฟเวอร์โดยใช้ HTTP 1.1
- ยกเลิกการซีเรียลไลซ์การตอบกลับเป็นออบเจ็กต์ JSON
- ตีความผลลัพธ์
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ REST ได้ที่คู่มืออินเทอร์เฟซ REST
ตัวระบุทรัพยากร
ออบเจ็กต์ใน Google Ads API จะได้รับการระบุโดยใช้ชื่อทรัพยากรที่มีโครงสร้างและ ตัวระบุแบบรวม
ชื่อทรัพยากร
ออบเจ็กต์ส่วนใหญ่ใน API จะระบุด้วยสตริงชื่อทรัพยากร สตริงเหล่านี้ยังใช้เป็น URL เมื่อใช้ REST API ด้วย ดูโครงสร้างของชื่อได้ที่อินเทอร์เฟซ REST ในส่วนชื่อทรัพยากร
รหัสแบบผสม
หากรหัสของออบเจ็กต์ไม่ซ้ำกันทั่วโลก ระบบจะสร้างรหัสแบบรวมสำหรับออบเจ็กต์นั้นโดยการนำหน้ารหัสหลักและเครื่องหมายตัวหนอน (~)
เช่น AdGroupAd มีรูปแบบชื่อทรัพยากร
customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id} เนื่องจากตัวระบุแบบรวมประกอบด้วยรหัสกลุ่มโฆษณาหลัก (ad_group.id) และรหัสโฆษณาพื้นฐาน (ad_group_ad.ad.id) เราจึงเพิ่มรหัสกลุ่มโฆษณาไว้หน้า รหัสโฆษณา ดังนี้
AdGroupIdของ123+~+AdIdของ45678= กลุ่มโฆษณาแบบรวม รหัสโฆษณาของ123~45678
ส่วนหัวของคำขอ
ส่วนหัว HTTP (หรือข้อมูลเมตา gRPC) ที่มาพร้อมกับเนื้อหาในคำขอมีดังนี้
การให้สิทธิ์
คุณต้องระบุโทเค็นเพื่อการเข้าถึง OAuth 2.0 ในรูปแบบ Authorization: Bearer
YOUR_ACCESS_TOKEN ซึ่งระบุบัญชีดูแลจัดการที่ดำเนินการในนามของ
ลูกค้า หรือผู้ลงโฆษณาที่จัดการบัญชีของตนเองโดยตรง ดูวิธีการ
ดึงโทเค็นเพื่อการเข้าถึงได้ในคู่มือ OAuth2
โทเค็นเพื่อการเข้าถึงมีอายุ 1 ชั่วโมงหลังจากที่คุณได้รับ เมื่อโทเค็นหมดอายุ ให้รีเฟรช
โทเค็นเพื่อการเข้าถึงเพื่อรับโทเค็นใหม่ โปรดทราบว่าไลบรารีไคลเอ็นต์ของเราจะรีเฟรชโทเค็นที่หมดอายุโดยอัตโนมัติ
หากพบข้อผิดพลาดในการให้สิทธิ์ โปรดตรวจสอบว่าคุณใช้ข้อมูลเข้าสู่ระบบที่ถูกต้องและมีสิทธิ์เพียงพอ USER_PERMISSION_DENIED ข้อผิดพลาด
แสดงว่าผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์อาจไม่มีสิทธิ์เข้าถึงบัญชีลูกค้า
ที่ระบุในคำขอ หากโปรเจ็กต์ Google Cloud ได้รับอนุมัติสำหรับการเข้าถึง Test เท่านั้น และคุณส่งคำขอที่กำหนดเป้าหมายไปยังบัญชีที่ใช้งานจริง API จะแสดง AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION ใน v25
ขึ้นไป (หรือ AuthorizationError.ACTION_NOT_PERMITTED ใน v24 และก่อนหน้า)
ดูรายละเอียดเกี่ยวกับการจัดการสิทธิ์ได้ที่ระดับการเข้าถึงของ Google Ads
login-customer-id
นี่คือรหัสลูกค้าของลูกค้าที่ได้รับอนุญาตให้ใช้ในคำขอ
โดยไม่มีขีดกลาง (-) หากคุณเข้าถึงบัญชีลูกค้าผ่านบัญชีดูแลจัดการ
ส่วนหัวนี้ต้องระบุและต้องตั้งค่าเป็นรหัสลูกค้าของ
บัญชีดูแลจัดการ หากคุณไม่ใส่ login-customer-id เมื่อ
ตรวจสอบสิทธิ์ผ่านบัญชีดูแลจัดการ จะทำให้เกิดข้อผิดพลาด AuthorizationError.USER_PERMISSION_DENIED ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดประเภทนี้ได้ที่ข้อผิดพลาดที่พบบ่อย ดูคำอธิบายโดยละเอียดเกี่ยวกับวิธีแก้ไขการเข้าถึงบัญชีได้ในคู่มือรูปแบบการเข้าถึง OAuth
https://googleads.googleapis.com/v25/customers/1234567890/campaignBudgets:mutate
การตั้งค่า login-customer-id เทียบเท่ากับการเลือกบัญชีใน
UI ของ Google Ads หลังจากลงชื่อเข้าใช้หรือคลิกรูปโปรไฟล์ที่ด้านขวาบน
หากไม่ระบุส่วนหัวนี้ ระบบจะใช้ลูกค้าที่ดำเนินการเป็นค่าเริ่มต้น
linked-customer-id
พาร์ทเนอร์ (เช่น ผู้ให้บริการวิเคราะห์แอปของบุคคลที่สามหรือพาร์ทเนอร์ด้านข้อมูล) จะต้องใช้ส่วนหัวนี้เมื่อดำเนินการในบัญชี Google Ads ที่ลิงก์ ส่วนหัวนี้ต้องระบุรหัสลูกค้าของบัญชี Google Ads ที่มีลิงก์ผลิตภัณฑ์
พิจารณาสถานการณ์ที่พาร์ทเนอร์ต้องทำการเรียก API ไปยังบัญชี Google Ads ตามลิงก์ผลิตภัณฑ์
- ผู้ลงโฆษณา: บัญชี Google Ads ที่การเรียก API จัดการหรืออัปเดต
รหัสบัญชีผู้ลงโฆษณาจะระบุไว้ในคำขอ ใน REST คือ
customerIdพารามิเตอร์เส้นทาง (เช่นcustomers/1111111111/...) และใน gRPC คือฟิลด์customer_idใน คำขอ - พาร์ทเนอร์: บัญชีพาร์ทเนอร์ (เช่น ผู้ให้บริการวิเคราะห์แอปของบุคคลที่สาม หรือพาร์ทเนอร์ด้านข้อมูล)
- บัญชีที่ลิงก์: บัญชี Google Ads ที่มีลิงก์ผลิตภัณฑ์ที่สร้างขึ้นกับพาร์ทเนอร์ ซึ่งให้สิทธิ์เข้าถึงผู้ลงโฆษณาแก่พาร์ทเนอร์
ผู้ใช้ที่มีสิทธิ์เข้าถึงบัญชีพาร์ทเนอร์จะเรียกใช้ API เพื่อดำเนินการกับ เอนทิตีในบัญชีผู้ลงโฆษณา (เช่น เพื่ออัปโหลด Conversion หรือ จัดการรายชื่อผู้ใช้) บัญชีที่ลิงก์อาจเป็นบัญชีผู้ลงโฆษณาเอง หรือบัญชีดูแลจัดการของบัญชีผู้ลงโฆษณา
ต้องตั้งค่าส่วนหัวของคำขอดังนี้
Authorization: โทเค็นเพื่อการเข้าถึง OAuth 2.0 สำหรับผู้ใช้ที่มีสิทธิ์เข้าถึง พาร์ทเนอร์login-customer-id: รหัสลูกค้าของบัญชีพาร์ทเนอร์ ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ต้องมีสิทธิ์เข้าถึงบัญชีนี้linked-customer-id: รหัสลูกค้าของบัญชีที่ลิงก์ ส่วนหัวนี้ ส่งสัญญาณว่าการให้สิทธิ์สำหรับคำขอนี้ขึ้นอยู่กับลิงก์ผลิตภัณฑ์ของบัญชีที่ลิงก์กับพาร์ทเนอร์
สถานการณ์การลิงก์มี 2 แบบ ดังนี้
- หากบัญชีผู้ลงโฆษณามีลิงก์ผลิตภัณฑ์โดยตรงกับบัญชีพาร์ทเนอร์
บัญชีที่ลิงก์จะเป็นผู้ลงโฆษณา และ
linked-customer-idต้องตั้งค่าเป็นรหัสลูกค้าของบัญชีผู้ลงโฆษณา - หากบัญชีผู้ลงโฆษณาได้รับการจัดการโดยบัญชีดูแลจัดการที่มี
ลิงก์ผลิตภัณฑ์กับบัญชีพาร์ทเนอร์ บัญชีที่ลิงก์จะเป็น
บัญชีดูแลจัดการ และต้องตั้งค่า
linked-customer-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) พร้อมกับเนื้อหาการตอบกลับ เราขอแนะนำให้คุณบันทึกค่าเหล่านี้เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง
request-id
request-id คือสตริงที่ระบุคำขอนี้อย่างไม่ซ้ำกัน ระบุค่านี้เมื่อติดต่อทีมสนับสนุนเพื่อช่วยแก้ปัญหาคำขอ API ที่ล้มเหลวหรือไม่คาดคิด