พื้นที่โฆษณาในระบบผันผวนตลอดทั้งวันเนื่องจากการจองใหม่ การยกเลิก และกําหนดเวลาการเปลี่ยนแปลงจากผู้ขาย API การอัปเดตแบบเรียลไทม์เป็นกลไกในการแจ้ง Google เกี่ยวกับการเปลี่ยนแปลงเหล่านี้ที่มีต่อความพร้อมใช้งานของพื้นที่โฆษณา นอกจากนี้ คุณยังใช้การอัปเดต API แบบเรียลไทม์เพื่อแจ้ง Google เกี่ยวกับการเปลี่ยนแปลงที่เกิดขึ้นกับการจองที่มีอยู่ได้ด้วย
การอัปเดตและฟีดแบบเรียลไทม์ของ API
การอัปเดตแบบเรียลไทม์ของ API มีไว้เพื่อแจ้งให้ Google ทราบเกี่ยวกับการเปลี่ยนแปลงที่เพิ่มขึ้นเกี่ยวกับความพร้อมของพื้นที่โฆษณาและการจองแบบเรียลไทม์ นอกจากการอัปเดต API แบบเรียลไทม์แล้ว ให้ส่งฟีดความพร้อมใช้งานที่สมบูรณ์ทุกวันเพื่อให้มั่นใจว่า Google ได้รับความรู้เรื่องความพร้อมใช้งานและแม่นยําที่สุดตามที่มีในระบบของคุณ ฟีดที่สมบูรณ์ทําหน้าที่เป็นภาพรวมของสถานะปัจจุบันของความพร้อมจําหน่ายสินค้าคงคลังในระบบของคุณ
แม้ว่าการอัปเดต API จะใช้เพื่ออัปเดตข้อมูลใดๆ ที่ฟีดระบุไว้ได้ เช่น ข้อมูลเกี่ยวกับผู้ขายและบริการ แต่โดยทั่วไปแล้วจะใช้เพื่ออัปเดตข้อมูลความพร้อมจําหน่ายสินค้าเท่านั้น
API การอัปเดตแบบเรียลไทม์ที่จําเป็น
API การอัปเดตแบบเรียลไทม์ (RTU) | ||
---|---|---|
การแจ้งเตือนการจอง | บังคับ | ส่ง BookingNotification RTU ทุกครั้งที่มีการเปลี่ยนแปลงการจอง (เช่น การแก้ไขหรือการยกเลิก) |
แทนที่ RTU | ต้องระบุตามเงื่อนไข[1] | ส่ง RTU แทนที่เป็นกลุ่มหรือแทนที่ 1 ครั้งเพื่อส่งการอัปเดตความพร้อมจําหน่ายสินค้า การเปลี่ยนแปลงอาจใช้เวลาหลายนาทีในการเผยแพร่และสะท้อนให้เห็น |
RTU ของผู้ขาย | ไม่บังคับ | ส่ง RTU ของผู้ขายหากต้องการเปลี่ยนแปลงข้อมูลของผู้ขายแบบเรียลไทม์ การเปลี่ยนแปลงอาจใช้เวลาหลายชั่วโมงในการเผยแพร่และแสดงข้อมูล |
บริการ RTU | ไม่บังคับ | ส่ง RTU ของบริการหากต้องการเปลี่ยนแปลงข้อมูลบริการแบบเรียลไทม์ กรณีการใช้งานทั่วไปคือหากราคาบริการมีความผันผวนอย่างมากในระหว่างวัน เราขอแนะนําให้ใช้ RTU ของบริการเพื่อหลีกเลี่ยงความล้มเหลวของคําสั่งซื้อเนื่องจากราคาไม่ตรงกัน การเปลี่ยนแปลงอาจใช้เวลาหลายชั่วโมงในการเผยแพร่และเผยแพร่ |
ความพร้อมใช้งานของ API การแทนที่ RTU
ใช้ availability replace API เพื่ออัปเดตความพร้อมจําหน่ายสินค้าในกรณีการใช้งานต่อไปนี้
- ผู้ใช้จองการจองในระบบของคุณ สล็อตเวลาว่างจึงใช้งานไม่ได้อีกต่อไป
- ผู้ขายจะเปลี่ยนความพร้อมจําหน่ายสินค้าในระบบของคุณ
- ผู้ใช้จองการจองผ่าน Google สล็อตเวลาว่างจึงไม่มีให้บริการ
- การจองผ่าน Google ถูกยกเลิกทางฝั่งคุณ เช่น ผู้ขายโดยตรง คุณต้องอัปเดตการจองและความพร้อมจําหน่ายสินค้า เนื่องจากตอนนี้ช่องเดิมพร้อมให้บริการอีกครั้งแล้ว
- การเรียก
BatchAvailabilityLookup
ของเซิร์ฟเวอร์การจองจะแสดงพื้นที่โฆษณาที่ไม่ตรงกับพื้นที่โฆษณาจริง
โปรดดูข้อมูลเพิ่มเติมในแหล่งข้อมูลต่อไปนี้
- บทแนะนํา: วิธีจัดโครงสร้างการอัปเดตแบบเรียลไทม์
- ตัวอย่างไคลเอ็นต์ Java สําหรับการอัปเดตแบบเรียลไทม์โดยใช้การโทร RESTful
- หน้าอ้างอิง API การอัปเดตพื้นที่โฆษณา
API การแจ้งเตือนการจอง RTU
API การแจ้งเตือนการจองจะแจ้งให้ Google ทราบเกี่ยวกับการอัปเดตการจองที่มีอยู่ เมื่อส่งการอัปเดตเกี่ยวกับการยกเลิก ให้ส่งเฉพาะข้อมูลที่จําเป็นในคําขอด้วยพารามิเตอร์การค้นหา updateMask
เช่น
Request: PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status Body: {"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"CANCELED"}
การเข้าถึง API
สร้างบัญชีบริการ
ใช้แท็บข้อมูลเข้าสู่ระบบในคอนโซล Google API เพื่อสร้างบัญชีบริการ โปรดเก็บคีย์ส่วนตัวในรูปแบบ JSON ไว้ในที่ปลอดภัย เมื่อสร้างบัญชี คุณจะมีตัวเลือกในการตั้งค่าบทบาท "เจ้าของ"
ตรวจสอบสิทธิ์ของ Maps Booking API
หลังจากสร้างบัญชีบริการ ให้ตรวจสอบสิทธิ์ API ต่อไปนี้
- Google Maps Booking API
- Google Maps Booking API (นักพัฒนาซอฟต์แวร์)
สําหรับคําแนะนําแบบทีละขั้นตอนเกี่ยวกับวิธีดําเนินการ โปรดดูบทแนะนําการตรวจสอบสิทธิ์ด้วย Maps Booking API
ใช้การโทร RESTful หรือดาวน์โหลดไลบรารีของไคลเอ็นต์
เราขอแนะนําให้คุณเรียกใช้ RESTful ไปยัง Maps Booking API โดยตรงด้วยเพย์โหลดแบบ JSON หากต้องการข้อมูลเพิ่มเติม โปรดดูเอกสารประกอบของ REST API
หรือจะใช้ไลบรารีของไคลเอ็นต์เพื่อเชื่อมต่อกับ API ก็ได้เช่นกัน
ภาษา | ลิงก์ดาวน์โหลด |
---|---|
Java | ไลบรารีของไคลเอ็นต์ Java ดูข้อมูลเพิ่มเติมได้ที่วิธีการของไคลเอ็นต์ Java |
ไลบรารีการสนับสนุนเพิ่มเติมพร้อมให้ดาวน์โหลดเพื่อจัดการเรื่องการให้สิทธิ์และการเรียก Google API ในด้านอื่นๆ หากจําเป็น โปรดดูตัวอย่างเหล่านี้
ดึงข้อมูลเอกสาร Discovery
สําหรับไลบรารีของไคลเอ็นต์บางอย่าง เช่น Ruby คุณจําเป็นต้องดึงข้อมูลเอกสาร Discovery สําหรับ API ซึ่งอธิบายถึงเมธอดและพารามิเตอร์ของไลบรารีนั้น
ใช้คําสั่งต่อไปนี้เพื่อดึงข้อมูลเอกสาร Discovery
curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเข้าถึง API จาก Ruby ได้ที่ลิงก์เหล่านี้: ไคลเอ็นต์ Ruby API และไลบรารีการตรวจสอบสิทธิ์ Ruby
เรียก API ที่ได้รับอนุญาต
เมื่อเรียก API โปรดดู
การเตรียมการเรียก API ที่ได้รับอนุญาต เพื่อให้สิทธิ์บัญชีบริการกับคีย์ส่วนตัวของคุณและขอบเขต OAuth ต่อไปนี้
https://www.googleapis.com/auth/mapsbooking
โควต้า API
การอัปเดต API มีโควต้าคําขอ 1,500 รายการทุก 60 วินาที หรือคําขอ 25 รายการต่อวินาทีโดยเฉลี่ย เมื่อเกินโควต้า (ซึ่งอาจเกิดขึ้นได้เมื่อคุณไม่ได้เพิ่มหมายเลขโปรเจ็กต์ Google Cloud ที่ถูกต้องในพอร์ทัลของพาร์ทเนอร์) Google จะตอบกลับพร้อมข้อความแสดงข้อผิดพลาดต่อไปนี้
{ "error": { "code": 429, "message": "Insufficient tokens for quota ...", "status": "RESOURCE_EXHAUSTED", "details": [...] } }
หากต้องการแก้ไขปัญหานี้ ให้ลองโทรอีกครั้งโดยเป็นระยะๆ จนกว่าจะประสบความสําเร็จ หากคุณใช้โควต้าร่วมกับ ReplaceServiceAvailability
เป็นประจํา โปรดเปลี่ยนเป็น BatchReplaceServiceAvailabily
เพื่อลดจํานวนการเรียก API วิธีนี้ทําให้คุณอัปเดตบริการหลายรายการในการเรียก API เดียวได้
แซนด์บ็อกซ์และจุดสิ้นสุดของเวอร์ชันที่ใช้งานจริง
คุณสามารถเรียกใช้ทั้งแซนด์บ็อกซ์และสภาพแวดล้อมที่ใช้งานจริงผ่าน API ได้ ตรวจสอบว่าคุณได้เปิดใช้ API ทั้ง 2 รายการในโปรเจ็กต์ Google Cloud แล้ว API ทั้ง 2 รายการนี้ใช้ขอบเขตเดียวกัน แต่มีปลายทางต่างกัน
ปลายทางการผลิต: https://mapsbooking.googleapis.com/
ปลายทางแซนด์บ็อกซ์: https://partnerdev-mapsbooking.googleapis.com/
ตัวอย่างเกี่ยวกับวิธีเปลี่ยนปลายทางใน Java มีดังนี้
// This block of code is for OAuth and is the same for prod and sandbox. GoogleCredential .fromStream(new FileInputStream(...)) .createScoped(Collections.singleton("https://www.googleapis.com/auth/mapsbooking")) // This block of code sets the endpoint. This is what you'd change to connect to the sandbox. new GoogleMapsBookingAPI.Builder(...) .setApplicationName(...) .setRootUrl("https://partnerdev-mapsbooking.googleapis.com/") // you add this to change the endpoint to use partnerdev. .build()