Ad Manager SOAP API เป็น API แบบเดิมสำหรับอ่านและเขียนข้อมูล Ad Manager รวมถึงเรียกใช้รายงาน เราขอแนะนำให้ใช้ Ad Manager API (เบต้า) หากคุณย้ายข้อมูลได้ อย่างไรก็ตาม ระบบจะรองรับ Ad Manager SOAP API เวอร์ชันต่างๆ ตามวงจรชีวิตปกติ ดูข้อมูลเพิ่มเติมได้ที่กำหนดการเลิกใช้งาน Ad Manager SOAP API
คู่มือต่อไปนี้จะสรุปความแตกต่างระหว่าง Ad Manager SOAP API กับ Ad Manager API (เบต้า)
เรียนรู้
เมธอดบริการ Ad Manager SOAP API มาตรฐานมีแนวคิดที่เทียบเท่าใน Ad Manager API นอกจากนี้ Ad Manager API ยังมีเมธอดสำหรับการอ่านเอนทิตีเดียวด้วย ตารางต่อไปนี้แสดงการแมปตัวอย่างสำหรับเมธอด Order
| เมธอด SOAP | เมธอด REST |
|---|---|
getOrdersByStatement
|
networks.orders.get networks.orders.list |
ตรวจสอบสิทธิ์
หากต้องการตรวจสอบสิทธิ์ด้วย Ad Manager API (เบต้า) คุณสามารถใช้ข้อมูลเข้าสู่ระบบ Ad Manager SOAP API ที่มีอยู่หรือสร้างข้อมูลเข้าสู่ระบบใหม่ก็ได้ ไม่ว่าคุณจะเลือกตัวเลือกใด คุณต้อง เปิดใช้ Ad Manager API ใน โปรเจ็กต์ Google Cloud ก่อน ดูรายละเอียดเพิ่มเติมได้ที่ การตรวจสอบสิทธิ์
หากคุณใช้ไลบรารีของไคลเอ็นต์ ให้ตั้งค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันโดยตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS เป็นเส้นทางของไฟล์คีย์บัญชีบริการ ดูรายละเอียดเพิ่มเติมได้ที่
วิธีทำงานของข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน
หากคุณใช้ข้อมูลเข้าสู่ระบบของแอปพลิเคชันที่ติดตั้ง ให้สร้างไฟล์ JSON ในรูปแบบต่อไปนี้ แล้วตั้งค่าตัวแปรสภาพแวดล้อมเป็นเส้นทางของไฟล์แทน
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"refresh_token": "REFRESH_TOKEN",
"type": "authorized_user"
}
แทนที่ค่าต่อไปนี้
CLIENT_ID: รหัสไคลเอ็นต์ใหม่หรือที่มีอยู่CLIENT_SECRET: Secret ของไคลเอ็นต์ใหม่หรือที่มีอยู่REFRESH_TOKEN: โทเค็นเพื่อรีเฟรชใหม่หรือที่มีอยู่
Linux หรือ macOS
export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATHWindows
set GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
ทำความเข้าใจความแตกต่างของตัวกรอง
ภาษาการค้นหาของ Ad Manager API (เบต้า) รองรับฟีเจอร์ทั้งหมดของ Publisher Query Language (PQL) แต่มีไวยากรณ์ที่แตกต่างกันอย่างมาก
ตัวอย่างนี้สำหรับการแสดงออบเจ็กต์ Order แสดงให้เห็นการเปลี่ยนแปลงที่สำคัญ เช่น การนำตัวแปรที่ผูกออก โอเปอเรเตอร์ที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และการแทนที่ข้อกำหนด ORDER BY และ LIMIT ด้วยช่องแยกกัน
Ad Manager SOAP API
<filterStatement>
<query>WHERE name like "PG_%" and lastModifiedDateTime >= :lastModifiedDateTime ORDER BY id ASC LIMIT 500</query>
<values>
<key>lastModifiedDateTime</key>
<value xmlns:ns2="https://www.google.com/apis/ads/publisher/v202502" xsi:type="ns2:DateTimeValue">
<value>
<date>
<year>2024</year>
<month>1</month>
<day>1</day>
</date>
<hour>0</hour>
<minute>0</minute>
<second>0</second>
<timeZoneId>America/New_York</timeZoneId>
</value>
</value>
</values>
</filterStatement>
Ad Manager API (เบต้า)
รูปแบบ JSON
{
"filter": "displayName = \"PG_*\" AND updateTime > \"2024-01-01T00:00:00-5:00\"",
"pageSize": 500,
"orderBy": "name"
}
URL ที่เข้ารหัส
GET https://admanager.googleapis.com/v1/networks/123/orders?filter=displayName+%3D+\"PG_*\"+AND+updateTime+%3E+\"2024-01-01T00%3A00%3A00-5%3A00\"
Ad Manager API (เบต้า) รองรับความสามารถทั้งหมดของ PQL โดยมีไวยากรณ์ที่แตกต่างจาก Ad Manager SOAP API ดังนี้
โอเปอเรเตอร์
ANDและORจะ คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ใน Ad Manager API (เบต้า)andและorที่เป็นตัวพิมพ์เล็กจะถือว่าเป็นสตริงการค้นหาตามตัวอักษร ซึ่งเป็นฟีเจอร์ใน Ad Manager API (เบต้า) สำหรับการค้นหาในช่องต่างๆใช้โอเปอเรเตอร์ตัวพิมพ์ใหญ่
// Matches unarchived Orders where order.notes has the value 'lorem ipsum'. notes = "lorem ipsum" AND archived = falseตัวพิมพ์เล็กถือเป็นตัวอักษร
// Matches unarchived Orders where order.notes has the value 'lorem ipsum' // and any field in the order has the literal value 'and'. notes = "lorem ipsum" and archived = falseอักขระ
*เป็นไวลด์การ์ดสำหรับการจับคู่สตริง Ad Manager API (เบต้า) ไม่รองรับโอเปอเรเตอร์likePQL ของ Ad Manager SOAP API
// Matches orders where displayName starts with the string 'PG_' displayName like "PG_%"Ad Manager API (เบต้า)
// Matches orders where displayName starts with the string 'PG_' displayName = "PG_*"ชื่อช่องต้องปรากฏทางด้านซ้ายของโอเปอเรเตอร์การเปรียบเทียบ
ตัวกรองที่ถูกต้อง
updateTime > "2024-01-01T00:00:00Z"ตัวกรองที่ไม่ถูกต้อง
"2024-01-01T00:00:00Z" < updateTimeAd Manager API (เบต้า) ไม่รองรับตัวแปรที่ผูก ค่าทั้งหมดต้องอยู่ในบรรทัด
ตัวอักษรสตริงที่มีช่องว่างต้องอยู่ในเครื่องหมายคำพูดคู่, เช่น
"Foo bar"คุณจะใช้เครื่องหมายคำพูดเดี่ยวเพื่อครอบตัวอักษรสตริงไม่ได้
นำข้อกำหนด Order By ออก
การระบุลำดับการจัดเรียงเป็นตัวเลือกใน Ad Manager API (เบต้า) หากต้องการระบุลำดับการจัดเรียงสำหรับชุดผลลัพธ์ ให้นำข้อกำหนด PQL ORDER BY ออก แล้วตั้งค่าช่อง orderBy แทน
GET networks/${NETWORK_CODE}/orders?orderBy=updateTime+desc
ย้ายข้อมูลจากออฟเซ็ตเป็นโทเค็นการแบ่งหน้า
Ad Manager API (เบต้า) ใช้โทเค็นการแบ่งหน้าแทนข้อกำหนด LIMIT และ OFFSET สำหรับการแบ่งหน้าผ่านชุดผลลัพธ์ขนาดใหญ่
Ad Manager API (เบต้า) ใช้พารามิเตอร์ pageSize เพื่อควบคุมขนาดหน้า
การละเว้นขนาดหน้าจะ ไม่ แสดงชุดผลลัพธ์ทั้งหมด ซึ่งแตกต่างจากข้อกำหนด LIMIT ใน Ad Manager SOAP API แต่เมธอด List จะใช้ขนาดหน้าเริ่มต้นเป็น 50 ตัวอย่างต่อไปนี้ตั้งค่า pageSize และ pageToken เป็นพารามิเตอร์ของ URL
# Initial request
GET networks/${NETWORK_CODE}/orders?pageSize=50
# Next page
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
Ad Manager API (เบต้า) อาจแสดงผลลัพธ์น้อยกว่าขนาดหน้าที่ขอ แม้ว่าจะมีหน้าเพิ่มเติมก็ตาม ซึ่งแตกต่างจาก Ad Manager SOAP API ใช้ช่อง nextPageToken เพื่อดูว่ามีผลลัพธ์เพิ่มเติมหรือไม่
แม้ว่าการแบ่งหน้าจะไม่ต้องใช้ออฟเซ็ต แต่คุณก็ใช้ช่อง skip สำหรับการทำงานแบบมัลติเธรดได้ เมื่อทำงานแบบมัลติเธรด ให้ใช้โทเค็นการแบ่งหน้าจากหน้าแรกเพื่อให้แน่ใจว่าคุณกำลังอ่านจากชุดผลลัพธ์เดียวกัน
# First thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
# Second thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}&skip=50
ย้ายข้อมูลรายงาน
SOAP API อ่านและเรียกใช้รายงานได้เฉพาะในเครื่องมือรายงานที่เลิกใช้งานแล้วเท่านั้น ในทางกลับกัน REST API อ่าน เขียน และเรียกใช้รายงานแบบอินเทอร์แอกทีฟได้เท่านั้น
เครื่องมือและ API การรายงานมีพื้นที่รหัสที่แตกต่างกัน คุณไม่สามารถใช้รหัสของ SavedQuery ใน SOAP API ใน REST API ได้
หากคุณใช้ SavedQuery คุณสามารถย้ายข้อมูลรายงานไปยังรายงานแบบอินเทอร์แอกทีฟใน UI และสร้างการแมประหว่างพื้นที่รหัสทั้ง 2 ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการย้ายข้อมูลรายงานได้ที่
หัวข้อ
การย้ายข้อมูลรายงานไปยังรายงานแบบอินเทอร์แอกทีฟ
ทำความเข้าใจความแตกต่างของ API
SOAP API และ REST API มีวิธีจัดการคำจำกัดความและผลลัพธ์ของรายงานที่แตกต่างกันดังนี้
SOAP API จะเพิ่มมิติข้อมูล
IDที่เกี่ยวข้องลงในผลลัพธ์โดยอัตโนมัติเมื่อรายงานขอเฉพาะNAMEใน REST API คุณต้องเพิ่มมิติข้อมูลIDลงในReportDefinitionอย่างชัดเจนเพื่อให้รวมอยู่ในผลลัพธ์SOAP API ไม่มีประเภทที่ชัดเจนสำหรับเมตริก REST API กำหนด ประเภทข้อมูลที่ระบุไว้ในค่า Enum
Dimensionโปรดทราบว่ามิติข้อมูลENUMเป็น Enum แบบเปิด คุณต้องจัดการค่า Enum ใหม่และที่ไม่รู้จักเมื่อแยกวิเคราะห์ผลลัพธ์SOAP API แยก
DimensionsและDimensionAttributesREST API มี EnumDimensionแบบรวมที่ประกอบด้วยทั้ง 2 อย่างSOAP API ไม่จำกัดจำนวนมิติข้อมูล รายงานแบบอินเทอร์แอกทีฟมีมิติข้อมูลได้สูงสุด 10 รายการ ทั้งใน UI และ API ระบบจะนับมิติข้อมูลที่แบ่งตามพื้นที่รหัสเดียวกันเป็นมิติข้อมูลเดียว เช่น การรวม
ORDER_NAME,ORDER_IDและORDER_START_DATEจะนับเป็นมิติข้อมูลเดียวเมื่อคำนวณขีดจำกัด