Ad Manager SOAP API เป็น API รุ่นเดิมสําหรับการอ่านและเขียนข้อมูล Ad Manager รวมถึงการเรียกใช้รายงาน หากย้ายข้อมูลได้ เราขอแนะนําให้ใช้ Ad Manager API (เบต้า) อย่างไรก็ตาม ระบบจะรองรับ Ad Manager SOAP API เวอร์ชันต่างๆ ตามวงจรปกติ ดูข้อมูลเพิ่มเติมได้ที่กำหนดการเลิกใช้งาน SOAP API ของ Ad Manager
คู่มือต่อไปนี้จะอธิบายความแตกต่างระหว่าง Ad Manager SOAP API กับ Ad Manager API (เบต้า)
เรียนรู้
เมธอดบริการ SOAP API มาตรฐานของ Ad Manager มีแนวคิดที่เทียบเท่ากันใน Ad Manager API นอกจากนี้ Ad Manager API ยังมีเมธอดสําหรับการอ่านเอนทิตีรายการเดียวด้วย ตารางต่อไปนี้แสดงตัวอย่างการแมปสำหรับOrder
วิธี
วิธีการ SOAP | เมธอด REST |
---|---|
getOrdersByStatement
|
networks.orders.get networks.orders.list |
ตรวจสอบสิทธิ์
หากต้องการตรวจสอบสิทธิ์กับ Ad Manager API (เบต้า) คุณสามารถใช้ข้อมูลเข้าสู่ระบบ SOAP API ของ Ad Manager ที่มีอยู่หรือสร้างข้อมูลเข้าสู่ระบบใหม่ก็ได้ ไม่ว่าจะใช้ตัวเลือกใด คุณจะต้องเปิดใช้ 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
: ข้อมูลลับของลูกค้าใหม่หรือลูกค้าเดิมREFRESH_TOKEN
: โทเค็นรีเฟรชใหม่หรือที่มีอยู่
Linux หรือ macOS
export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
Windows
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 (เบต้า) ไม่รองรับโอเปอเรเตอร์like
Ad Manager SOAP API PQL
// 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" < updateTime
Ad Manager API (เบต้า) ไม่รองรับการเชื่อมโยงตัวแปร ค่าทั้งหมดต้องอยู่ในการบรรทัด
สตริงตามตัวอักษรที่มีเว้นวรรคต้องอยู่ในเครื่องหมายคำพูดคู่ เช่น
"Foo bar"
คุณใช้เครื่องหมายคำพูดเดี่ยวเพื่อตัดสตริงตัวอักษรล้วนไม่ได้
นำคำสั่งตามประโยคออก
ระบุลําดับการจัดเรียงหรือไม่ก็ได้ใน Ad Manager API (เบต้า) หากต้องการระบุลําดับการจัดเรียงชุดผลลัพธ์ ให้นําประโยค ORDER BY
PQL ออก แล้วตั้งค่าช่อง orderBy
แทน
GET networks/${NETWORK_CODE}/orders?orderBy=updateTime+desc
ย้ายข้อมูลจากออฟเซตไปยังโทเค็นการแบ่งหน้า
Ad Manager API (เบต้า) ใช้โทเค็นการแบ่งหน้าแทนอนุประโยค LIMIT
และ OFFSET
เพื่อแบ่งหน้าชุดผลลัพธ์ขนาดใหญ่
Ad Manager API (เบต้า) ใช้พารามิเตอร์ pageSize
เพื่อควบคุมขนาดหน้าเว็บ
ซึ่งแตกต่างจากประโยค LIMIT
ใน Ad Manager SOAP API ที่การละเว้นขนาดหน้าเว็บจะไม่แสดงชุดผลลัพธ์ทั้งหมด แต่เมธอดรายการจะใช้ขนาดหน้าเริ่มต้น 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 SOAP API เนื่องจาก Ad Manager 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