การใช้ Indexing API
คุณใช้ Indexing API เพื่อบอกให้ Google อัปเดตหรือนำหน้าประกาศรับสมัครงานหรือหน้ากิจกรรมไลฟ์สดออกจากดัชนีของ Google ได้ โดยคำขอต้องระบุตำแหน่งของหน้าเว็บ คุณยังดูสถานะการแจ้งเตือนที่ส่งให้ Google ได้ด้วย ปัจจุบันคุณใช้ Indexing API เพื่อทำการ Crawl หน้าเว็บทั้งที่มี JobPosting
หรือ BroadcastEvent
ที่ฝังใน VideoObject
ได้เท่านั้น
หลักเกณฑ์
หลักเกณฑ์ต่อไปนี้ใช้เมื่อใช้ Indexing API
- นโยบายสแปมจะมีผลกับเนื้อหาที่ส่งผ่าน Indexing API
- การเรียก
https://indexing.googleapis.com/v3/UrlNotifications:publish
ทั้งหมดต้องใช้"application/json"
เป็นส่วนหัวContent-Type
- คุณส่ง URL ได้เพียง 1 รายการในส่วนเนื้อหาของคำขออัปเดต หรือส่งรวมกันเป็นกลุ่มได้สูงสุด 100 คำขอตามที่อธิบายไว้ในส่วนส่งคำขอให้จัดทำดัชนีแบบกลุ่ม อย่าหาทางหลีกเลี่ยงขีดจำกัดการส่ง เช่น การใช้หลายบัญชี
- เนื้อหาของคำขอในตัวอย่างเหล่านี้เป็นค่าของตัวแปร
content
ที่ใช้ในตัวอย่างโทเค็นเพื่อการเข้าถึง
สิ่งที่คุณทําได้ด้วย API
เมื่อคุณส่งคำขอไปยัง Indexing API ให้ระบุตำแหน่งของหน้าเว็บที่ทำงานทั้งหมดในตัวเองเพื่อแจ้งให้ Google ทราบว่าสามารถทำการ Crawl หรือนำหน้านี้ออกจากดัชนีได้
ตัวอย่างต่อไปนี้แสดงการดำเนินการที่คุณทำได้ด้วย Indexing API
ตัวอย่าง | |
---|---|
อัปเดต URL |
ส่งคำขอ HTTP { "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_UPDATED" } |
นำ URL ออก |
ส่งคำขอ HTTP { "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_DELETED" } |
รับสถานะการแจ้งเตือน |
ส่งคำขอ HTTP |
พารามิเตอร์
ตารางต่อไปนี้อธิบายช่องที่จำเป็นสำหรับเมธอดทั้งหมด (อัปเดตและนำ URL ออก)
ฟิลด์ | |
---|---|
url |
จำเป็น ตำแหน่งของรายการที่มีคุณสมบัติครบถ้วน ซึ่งคุณต้องการให้อัปเดตหรือนำออก |
type |
จำเป็น ประเภทการแจ้งเตือนที่คุณส่ง |
อัปเดต URL
หากต้องการแจ้งให้ Google ทราบว่ามี URL ใหม่ที่ต้องการให้ทำการ Crawl หรือมีการอัปเดตเนื้อหาใน URL ที่ส่งมาก่อนหน้านี้ ให้ทำตามขั้นตอนด้านล่าง
- ส่งคำขอ HTTP
POST
ไปยังปลายทางต่อไปนี้https://indexing.googleapis.com/v3/urlNotifications:publish
- ในเนื้อหาของคำขอ ให้ระบุตำแหน่งของหน้าเว็บโดยใช้ไวยากรณ์ต่อไปนี้
{ "url": "CONTENT_LOCATION", "type": "URL_UPDATED" }
- Google จะตอบกลับการเรียก Indexing API ที่สำเร็จด้วย
HTTP 200
การตอบกลับHTTP 200
หมายความว่า Google อาจลองทำการ Crawl URL นี้อีกครั้งในอีกไม่ช้า ส่วนเนื้อหาของการตอบกลับจะมาพร้อมออบเจ็กต์UrlNotificationMetadata
ซึ่งมีฟิลด์ที่ตรงกับฟิลด์ที่คำขอสถานะการแจ้งเตือนแสดงผล - หากไม่ได้รับการตอบกลับ
HTTP 200
โปรดดูข้อผิดพลาดเฉพาะ Indexing API - หากเนื้อหาในหน้าเว็บมีการเปลี่ยนแปลง ให้ส่งการแจ้งเตือนการอัปเดตอีกครั้ง ซึ่งจะเรียกให้ Google ทำการ Crawl หน้าเว็บนั้นใหม่
- Indexing API มีโควต้าเริ่มต้นสำหรับการทดสอบ หากต้องการใช้ API ให้ขอการอนุมัติและโควต้า
นำ URL ออก
หลังจากที่คุณลบหน้าเว็บออกจากเซิร์ฟเวอร์หรือเพิ่มแท็ก <meta name="robots" content="noindex" />
ในส่วน <head>
ของหน้าเว็บหนึ่งๆ โปรดแจ้งให้ Google ทราบเพื่อให้เรานำหน้าดังกล่าวออกจากดัชนี แล้วเราจะไม่พยายามทำการ Crawl และจัดทำดัชนีหน้านั้นอีก ก่อนจะขอให้นำ URL ออก คุณต้องแสดงรหัสสถานะ 404
หรือ 410
หรือหน้าเว็บต้องมีแท็ก <meta name="robots" content="noindex" />
meta
หากต้องการขอให้นำหน้าเว็บออกจากดัชนี ให้ทำตามขั้นตอนต่อไปนี้
- ส่งคำขอ
POST
ไปยังปลายทางต่อไปนี้https://indexing.googleapis.com/v3/urlNotifications:publish
- ระบุ URL ที่ต้องการนำออกในส่วนเนื้อหาของคำขอโดยใช้ไวยากรณ์ดังต่อไปนี้
{ "url": "CONTENT_LOCATION", "type": "URL_DELETED" }
เช่น
{ "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_DELETED" }
- Google จะตอบกลับการเรียก Indexing API ที่สำเร็จด้วย
HTTP 200
การตอบกลับHTTP 200
หมายความว่า Google อาจนำ URL นี้ออกจากดัชนี ส่วนเนื้อหาของการตอบกลับจะมาพร้อมออบเจ็กต์UrlNotificationMetadata
ซึ่งมีฟิลด์ที่ตรงกับฟิลด์ที่คำขอสถานะการแจ้งเตือนแสดงผล - หากไม่ได้รับการตอบกลับ
HTTP 200
โปรดดูข้อผิดพลาดเฉพาะ Indexing API - Indexing API มีโควต้าเริ่มต้นสำหรับการทดสอบ หากต้องการใช้ API ให้ขอการอนุมัติและโควต้า
รับสถานะการแจ้งเตือน
คุณใช้ Indexing API เพื่อตรวจสอบเวลาล่าสุดที่ Google ได้รับการแจ้งเตือนแต่ละประเภทสำหรับ URL แต่ละรายการได้ คำขอ GET
ไม่ได้บอกเวลาที่ Google จะจัดทำดัชนีหรือนำ URL ออก แต่จะแสดงว่าคุณส่งคำขอสำเร็จหรือไม่เท่านั้น
หากต้องการดูสถานะการแจ้งเตือน ให้ทำตามขั้นตอนต่อไปนี้
- ส่งคำขอ
GET
ไปยังปลายทางต่อไปนี้ URL ที่คุณระบุต้องมีการเข้ารหัส URL เช่น แทนที่:
(เครื่องหมายโคลอน) ด้วย%3A
และ/
(เครื่องหมายทับ) ด้วย%2F
https://indexing.googleapis.com/v3/urlNotifications/metadata?url=ENCODED_URL
เช่น
GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
- Indexing API ตอบกลับด้วยข้อความ
HTTP 200
พร้อมด้วยเพย์โหลดที่มีรายละเอียดเกี่ยวกับการแจ้งเตือน ตัวอย่างต่อไปนี้แสดงเนื้อหาของการตอบกลับที่มีข้อมูลเกี่ยวกับการแจ้งเตือนการอัปเดตและการลบ{ url: "http://foo.com", latest_update: { type: "URL_UPDATED", notify_time: "2017-07-31T19:30:54.524457662Z" }, latest_remove: { type: "URL_DELETED", notify_time: "2017-08-31T19:30:54.524457662Z" } }
- หากไม่ได้รับการตอบกลับ
HTTP 200
โปรดดูข้อผิดพลาดเฉพาะ Indexing API - Indexing API มีโควต้าเริ่มต้นสำหรับการทดสอบ หากต้องการใช้ API ให้ขอการอนุมัติและโควต้า
ส่งคำขอให้จัดทำดัชนีแบบกลุ่ม
หากต้องการลดจำนวนการเชื่อมต่อ HTTP ที่ไคลเอ็นต์ต้องสร้าง คุณอาจรวมการเรียกใช้ Indexing API ได้สูงถึง 100 ครั้งไว้ในคำขอ HTTP รายการเดียว ซึ่งจะทำได้โดยส่งคำขอที่มีข้อมูลหลายส่วนหรือที่เรียกว่ากลุ่ม
เวลาส่งคำขอแบบกลุ่มไปยัง Indexing API ให้ใช้ปลายทางต่อไปนี้
https://indexing.googleapis.com/batch
ส่วนเนื้อหาของคำขอแบบกลุ่มจะมีข้อมูลหลายส่วน แต่ละส่วนเป็นคำขอ HTTP ที่สมบูรณ์ในตัวเอง โดยมีกริยา, URL, ส่วนหัว และเนื้อหาของตัวเอง ข้อมูลแต่ละส่วนภายในคำขอแบบกลุ่มจะต้องมีขนาดไม่เกิน 1 MB
ไลบรารีของไคลเอ็นต์ API ของ Google รองรับการทำงานแบบกลุ่มเพื่อให้คุณส่งคำขอแบบกลุ่มได้ง่ายขึ้น ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานแบบกลุ่มกับไลบรารีของไคลเอ็นต์ได้ที่หน้าเว็บของภาษาโปรแกรมแต่ละภาษาดังต่อไปนี้
หากคุณใช้ตัวอย่างการทำงานแบบกลุ่มในหน้าเหล่านี้ คุณอาจต้องอัปเดตโค้ดให้ตรงกับข้อกำหนดในการใช้งานที่อธิบายไว้ในบทความรับโทเค็นเพื่อการเข้าถึง
ตัวอย่างส่วนเนื้อหาของคำขอแบบกลุ่มต่อไปนี้มีการแจ้งเตือนการอัปเดตและการแจ้งเตือนการนำออก
POST /batch HTTP/1.1 Host: indexing.googleapis.com Content-Length: content_length Content-Type: multipart/mixed; boundary="===============7330845974216740156==" Authorization: Bearer oauth2_token --===============7330845974216740156== Content-Type: application/http Content-Transfer-Encoding: binary Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2> POST /v3/urlNotifications:publish [1] Content-Type: application/json accept: application/json content-length: 58 { "url": "http://example.com/jobs/42", "type": "URL_UPDATED" } --===============7330845974216740156== Content-Type: application/http Content-Transfer-Encoding: binary Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+1> POST /v3/urlNotifications:publish [2] Content-Type: application/json accept: application/json content-length: 75 { "url": "http://example.com/widgets/1", "type": "URL_UPDATED" } --===============7330845974216740156== Content-Type: application/http Content-Transfer-Encoding: binary Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+3> POST /v3/urlNotifications:publish [3] Content-Type: application/json accept: application/json content-length: 58 { "url": "http://example.com/jobs/43", "type": "URL_DELETED" } --===============7330845974216740156==
ดูข้อมูลเพิ่มเติมที่การส่งคำขอแบบกลุ่ม