สร้างโฆษณาด้วยคำขอแบบไม่ซิงโครไนซ์ และส่งคำขอโฆษณาเป็นจำนวนมากได้โดยไม่ต้องบล็อก เพียงระบุ URL ที่จะเรียกใช้หลังจากดำเนินการตามคำขอเรียบร้อยแล้ว หรือตรวจสอบสถานะของคำขอ โปรดดูข้อมูลอ้างอิงเกี่ยวกับโฆษณา
วิธีจัดการโฆษณาที่มีประสิทธิภาพที่สุดคือการดำเนินการผ่านคำขอแบบแบตช์ โดยใช้เพื่อทำการส่งคำขอบางประเภทที่พบบ่อย
ตัวอย่างเช่น รับสถานะของชุดคำขอแบบไม่ซิงโครไนซ์ ดังนี้
curl -G \
-d 'fields=name,success_count,error_count,is_completed' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>
คำขอนี้จะส่งคืนสถานะโดยรวมของชุดคำขอแบบไม่ซิงค์มาให้คุณในรูปแบบของอ็อบเจ็กต์ JSON บางช่องอาจไม่ปรากฏโดยค่าเริ่มต้น หากต้องการให้การสืบค้นแสดงช่องที่ไม่ใช่ค่าเริ่มต้น ให้ระบุใน fields
เช่น fields=id,owner_id,name,total_count,success_count,error_count,is_completed
ชื่อ | คำอธิบาย |
---|---|
ประเภท: จำนวนเต็ม | แสดงตามค่าเริ่มต้น
|
ประเภท: จำนวนเต็ม | แสดงตามค่าเริ่มต้น อ็อบเจ็กต์ที่เป็นเจ้าของชุดคำขอแบบไม่ซิงค์นี้ สำหรับคำขอแบบไม่ซิงค์บนโฆษณา |
ประเภท: สตริง | แสดงตามค่าเริ่มต้น ชื่อของชุดคำขอแบบไม่ซิงค์นี้ |
ประเภท: บูลีน | แสดงตามค่าเริ่มต้น คำขอแบบไม่ซิงค์อยู่ในชุดนี้ครบแล้ว |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอทั้งหมดในชุดคำขอนี้ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่ยังไม่ได้ดำเนินการ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่อยู่ระหว่างดำเนินการ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่ดำเนินการเสร็จแล้วและสำเร็จ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่ดำเนินการเสร็จแล้วแต่ไม่สำเร็จ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่ผู้ใช้ยกเลิก |
ประเภท: สตริง | ไม่แสดงตามค่าเริ่มต้น URI การแจ้งเตือนสำหรับชุดคำขอแบบไม่ซิงค์นี้ |
ประเภท: สตริง | ไม่แสดงตามค่าเริ่มต้น วิธีในการรับการแจ้งเตือน ค่าที่ถูกต้อง ได้แก่
|
หลังจากได้รับสถานะโดยรวมของชุดคำขอแบบไม่ซิงค์แล้ว ให้คุณรับรายละเอียดของคำขอแต่ละรายการ ดังนี้
curl -G \
-d 'fields=id,status' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>/requests
การดำเนินการนี้จะส่งคืนสถานะและรายละเอียดของแต่ละคำขอที่อยู่ในชุดคำขอแบบไม่ซิงค์ สำหรับการสร้างโฆษณาแบบไม่ซิงค์ ให้ส่ง 1 คำขอเพื่อสร้างโฆษณา 1 ชิ้น ระบบจะใช้พารามิเตอร์สถานะเพื่อกรองคำขอตามสถานะของคำขอนั้น และจะเป็นการผสมรูปแบบใดก็ได้ระหว่างค่าต่างๆ ต่อไปนี้
initial
– ยังไม่ได้ดำเนินการ in_progress
– กำลังดำเนินการตามคำขอ success
– ดำเนินการตามคำขอเสร็จแล้วและสำเร็จ error
– ดำเนินการตามคำขอเสร็จแล้วแต่ไม่สำเร็จ Canceled
– ผู้ใช้ยกเลิกคำขอการตอบกลับจะเป็นอาร์เรย์ JSON พร้อมช่องที่เป็นค่าเริ่มต้น หากต้องการให้แสดงช่องที่ไม่ใช่ค่าเริ่มต้น ให้ระบุใน fields
เช่น fields=id,scope_object_id,status,result,input,async_request_set
ชื่อ | คำอธิบาย |
---|---|
ประเภท: จำนวนเต็ม | แสดงตามค่าเริ่มต้น ID ของแต่ละคำขอแบบไม่ซิงค์ |
ประเภท: จำนวนเต็ม | แสดงตามค่าเริ่มต้น ID หลักของอ็อบเจ็กต์ที่คำขอนี้สร้างขึ้น หากคุณสร้างโฆษณา นี่คือ ID ชุดโฆษณาสำหรับโฆษณาใหม่ |
ประเภท: สตริง | แสดงตามค่าเริ่มต้น สถานะของคำขอแบบไม่ซิงค์นี้ ตัวเลือกมีดังนี้
|
ประเภท: อาร์เรย์ | ไม่แสดงตามค่าเริ่มต้น หากดำเนินการตามคำขอเสร็จ ระบบจะแสดงผลลัพธ์ของคำขอ
|
ประเภท: อ็อบเจ็กต์ | ไม่แสดงตามค่าเริ่มต้น อินพุตเดิมของคำขอแบบไม่ซิงค์นี้ หากคุณสร้างโฆษณา อินพุตคือ |
ประเภท: อ็อบเจ็กต์ | ไม่แสดงตามค่าเริ่มต้น ชุดคำขอแบบไม่ซิงค์ที่มีคำขอแยกต่างหากนี้ |
หากต้องการรับรายละเอียดของคำขอแบบไม่ซิงค์ที่เจาะจง ให้ทำการเรียกดังนี้
curl -G \
-d 'fields=id,status' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>/requests
การดำเนินการนี้จะส่งคืนอ็อบเจ็กต์ JSON พร้อมช่องตามที่ระบุข้างต้น
คุณสามารถสร้างชุดคำขอโฆษณาแบบไม่ซิงค์ได้หลายรายการ วิธีสืบค้นชุดคำขอโฆษณาแบบไม่ซิงค์ทั้งหมดสำหรับบัญชีโฆษณามีดังนี้
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/asyncadrequestsets
การดำเนินการนี้จะส่งคืนอาร์เรย์ JSON ที่แสดงอ็อบเจ็กต์ชุดคำขอแบบไม่ซิงค์ แต่ละอ็อบเจ็กต์จะเหมือนกับที่ระบุไว้ในส่วนชุดคำขอแบบไม่ซิงค์ คุณสามารถกรองผลลัพธ์ด้วย is_completed
หากกรองด้วย is_completed=true
คุณจะเห็นเฉพาะชุดคำขอแบบไม่ซิงค์ที่เสร็จสมบูรณ์แล้วเท่านั้น
คุณสามารถเรียกข้อมูลแบบไม่ซิงค์เพื่อสร้างโฆษณาในชุดโฆษณาต่างๆ ได้ หากต้องการรับสถานะสำหรับชุดโฆษณาแต่ละชุด ให้รับคำขอสร้างโฆษณาทั้งหมดสำหรับชุดโฆษณา 1 ชุด ดังนี้
curl -G \
-d 'fields=id,status' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<AD_SET_ID>/asyncadrequests
การดำเนินการนี้จะส่งคืนอาร์เรย์ JSON ของอ็อบเจ็กต์คำขอแบบไม่ซิงค์ โดยสถานะ ตัวกรองช่อง และช่องคำขอแบบไม่ซิงค์จะเหมือนกับ API https://graph.facebook.com/<API_VERSION>/<REQUEST_SET_ID>/requests
คุณสามารถเปลี่ยน name
, notification_uri
และ notification_mode
สำหรับชุดคำขอแบบไม่ซิงค์
curl \
-F 'name=New Name' \
-F 'notification_mode=OFF' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>
การดำเนินการนี้จะส่งคืน true
เมื่ออัพเดตสำเร็จ ทั้งนี้ คุณสามารถเปลี่ยนได้เฉพาะ notification_uri
และ notification_mode
ก่อนส่งการแจ้งเตือน
คุณสามารถยกเลิกคำขอแบบไม่ซิงค์ได้ แต่จะยกเลิกคำขอได้เฉพาะในกรณีที่ยังไม่ได้ดำเนินการตามคำขอเท่านั้น
curl -X DELETE \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_ID>
ระบบจะส่งคืนค่าเป็น true
เมื่อยกเลิกสำเร็จ และคุณยังสามารถยกเลิกคำขอที่ยังไม่ได้ดำเนินการในชุดคำขอแบบไม่ซิงค์ได้เช่นกัน ดังนี้
curl -X DELETE \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>
ระบบจะส่งคืนค่าเป็น true
เมื่อยกเลิกสำเร็จ
การรับข้อมูลสถานะของคำขอแบบไม่ซิงค์ที่ต้องการมีวิธีดังนี้
//pretty=true for command line readable output
curl -G \
-d "id=6012384857989" \
-d "pretty=true" \
-d "access_token=_____" \
"https://graph.facebook.com/v21.0
/"
ระบบจะส่งคืนค่าดังนี้
{ "id": "6012384857989", "owner_id": 12345, "name": "testasyncset", "is_completed": true }
รับผลลัพธ์ของคำขอ
curl -G \
-d "id=6012384857989" \
-d "pretty=true" \
-d "fields=result" \
-d "access_token=_____" \
"https://graph.facebook.com/v21.0
/requests"
ส่งคืนผลลัพธ์ดังนี้
{ "data": [ { "result": { "id": "6012384860989" }, "id": "6012384858389" }, { "result": { "id": "6012384858789" }, "id": "6012384858189" } ], "paging": { "cursors": { "after": "___", "before": "___" } } }
รับรายการชุดคำขอสำหรับบัญชีโฆษณา ดังนี้
curl -G \
-d "is_completed=1" \
-d "pretty=true" \
-d "access_token=___" \
"https://graph.facebook.com/v21.0
/act_71597454/asyncadrequestsets"
ส่งคืนผลลัพธ์ดังนี้
{ "data": [ { "id": "6012384253789", "owner_id": 71597454, "name": "testasyncset", "is_completed": true }, ], "paging": { "cursors": { "after": "___", "before": "___" } } }
การรับรายการชุดคำขอสำหรับแคมเปญมีวิธีดังนี้
curl -G \
-d "status=SUCCESS,ERROR" \
-d "pretty=true" \
-d "access_token=___" \
"https://graph.facebook.com/v21.0
/6008248529789/asyncadrequests"
ระบบจะส่งคืนค่าดังนี้
{ "data": [ { "id": "6012384951789", "scope_object_id": 6008248529789, "status": "SUCCESS" }, ], "paging": { "cursors": { "after": "___", "before": "___" } } }
เมื่อใช้คำขอแบบแบตช์ คุณจะสามารถรวมการเรียกใช้ API กราฟจำนวนหนึ่งเข้าด้วยกันเป็นคำขอ HTTP เพียงรายการเดียวได้ โดย API การตลาดจะแบ่งคำขอนี้เป็นคำขอหน่วยประกอบของ API เอง วิธีนี้ทำให้คำขอแบบแบตช์เป็นวิธีโต้ตอบกับ API การตลาดที่มีประสิทธิภาพที่สุด หากคุณต้องการประสิทธิภาพที่สูงยิ่งขึ้น ให้สร้างคำขอแบบแบตช์คู่กันโดยใช้เธรดการประมวลผลแบบแยกต่างหาก
คำขอแบบแบตช์แต่ละรายการสามารถใส่คำขอได้สูงสุด 50 รายการ หากเป็นการสร้างโฆษณา คุณควรใส่โฆษณาไม่เกิน 10 ชิ้นต่อแบตช์
คำขอแบบแบตช์สำหรับโฆษณาชิ้นงานโฆษณา และชุดโฆษณาจะคล้ายคลึงกันมาก ดังนั้นเราจะกล่าวถึงทั้งสองอย่างนี้ไปพร้อมกัน โปรดดูข้อมูลเพิ่มเติมที่คำขอแบบแบตช์สำหรับ API และ ETag
คุณสามารถใส่ชิ้นงานโฆษณาและอ็อบเจ็กต์โฆษณาอื่นๆ ลงในคำขอแบบแบตช์ได้ ตัวอย่างเช่น คุณสามารถสร้างโฆษณา 3 ชิ้นโดยใช้ชิ้นงานโฆษณา 1 ชิ้น และข้อมูลจำเพาะของการกำหนดเป้าหมายที่ต่างกัน 3 รายการ โดยคุณจะต้องกำหนดชิ้นงานโฆษณาก่อน จากนั้นจึงอ้างอิงงานชิ้นนั้นเมื่อคุณสร้างโฆษณาแต่ละชิ้น ดังนี้
curl -F 'access_token=______' -F 'test1=@./test1.jpg' -F 'batch=[ { "method": "POST", "name": "create_adimage", "relative_url": "<API_VERSION>/act_187687683/adimages", "attached_files": "test1" }, { "method": "POST", "name": "create_creative", "relative_url": "<API_VERSION>/act_187687683/adcreatives", "attached_files": "test1", "body": "name=sample creative&object_story_spec={\"link_data\": {\"image_hash\": \"{result=create_adimage:$.images.*.hash}\", \"link\": \"https://www.test12345.com\", \"message\": \"this is a sample message\"}, \"page_id\":\"12345678\"}°rees_of_freedom_spec={\"creative_features_spec\": {\"standard_enhancements\": {\"enroll_status\": \"OPT_OUT\"}}}" }, { "method": "POST", "relative_url": "<API_VERSION>/act_187687683/ads", "body": "adset_id=6004163746239&redownload=1&status=PAUSED&optimization_goal=REACH&billing_event=IMPRESSIONS&&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test1" }, { "method": "POST", "relative_url": "<API_VERSION>/act_187687683/ads", "body": "adset_id=6004163746239&redownload=1&status=PAUSED&optimization_goal=REACH&billing_event=IMPRESSIONS&&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test2" }, { "method": "POST", "relative_url": "<API_VERSION>/act_187687683/ads", "body": "adset_id=6004163746239&redownload=1&status=PAUSED&optimization_goal=REACH&billing_event=IMPRESSIONS&&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test3" } ]' https://graph.facebook.com/
การตอบกลับนี้มีรหัสการตอบกลับของแต่ละคำขอและการตอบกลับ API กราฟมาตรฐาน ดูรายละเอียดที่การสร้างคำขอ API หลายรายการ
กระบวนการคำขอแบบแบตช์จะใช้รูปแบบนิพจน์ JSONPath ในการอ้างอิงถึงคำขอก่อนหน้า
คุณสามารถอัพเดตโฆษณาได้ด้วยคำขอแบบแบตช์ วิธีอัพเดตราคาประมูลสำหรับโฆษณา 3 ชิ้นมีดังนี้
curl -F 'access_token=____' -F 'batch=[ { "method": "POST", "relative_url": "<API_VERSION>/6004251715639", "body": "redownload=1&name=new name" }, { "method": "POST", "relative_url": <API_VERSION>/v6004251716039", "body": "redownload=1&name=new name" }, { "method": "POST", "relative_url": "<API_VERSION>/6004251715839", "body": "redownload=1&name=new name" } ]' https://graph.facebook.com
หากคุณรวม redownload=1
ไว้ใน URL ที่เกี่ยวข้อง คุณจะได้รับรายละเอียดทั้งหมดของโฆษณา ซึ่งรวมถึง ID โฆษณาด้วย วิธีนี้จะช่วยระบุโฆษณาที่คุณอัพเดตแล้ว
หากต้องการอัพเดตชิ้นงานโฆษณา ให้ระบุชิ้นงานโฆษณาทั้งหมด หรือแจ้ง ID ชิ้นงานโฆษณาใหม่ ที่ต้องทำเช่นนี้เพราะชิ้นงานโฆษณาที่สร้างขึ้นมาแล้วจะไม่สามารถแก้ไขได้ คุณจะแก้ไขได้เพียงชื่อและสถานะการทำงานของโฆษณาเท่านั้น
หากคุณมีโฆษณาจำนวนมาก ให้แบ่งคำขอออกเป็นหลายๆ คำขอภายในคำขอแบบแบตช์ ดังนี้
curl -F 'access_token=____' -F 'batch=[ { "method": "GET", "relative_url": "<API_VERSION>/?ids=6003356308839,6004164369439&fields=<comma separated list of fields>" }, { "method": "GET", "relative_url": "<API_VERSION>/6003356307839/ads&fields=<comma separated list of fields>" }, { "method": "GET", "relative_url": "<API_VERSION>/act_187687683/ads?adset_ids=[6003356307839, 6004164259439]&fields=<comma separated list of fields>" } ]' https://graph.facebook.com
6003356308839
และ 6004164369439
คือ ID โฆษณา ส่วน 6003356307839
และ 6004164259439
คือ ID ชุดโฆษณา
หากคุณมีข้อมูลเชิงลึกของโฆษณาจำนวนมาก ให้แบ่งคำขอออกเป็นหลายๆ คำขอภายในคำขอแบบแบตช์ ดังนี้
curl -F 'access_token=____' -F 'batch=[ { "method": "GET", "relative_url": "<API_VERSION>/act_19643108/insights?filtering=[{field:'ad.id',operator:'IN',value:[6003356308839,6004164369439]}]" }, { "method": "GET", "relative_url": "<API_VERSION>/6003356308839/insights" }, { "method": "GET", "relative_url": "<API_VERSION>/act_187687683/insights?filtering=[{field:'adset.id',operator:'IN',value:[6003356307839, 6004164259439]}]" } ]' https://graph.facebook.com
ในตัวอย่างนี้ 6003356308839
และ 6004164369439
คือ ID โฆษณา ส่วน 6003356307839
และ 6004164259439
คือ ID ชุดโฆษณา
ในกรณีของบัญชีโฆษณาที่มีโฆษณาจำนวนมาก เราไม่แนะนำให้ใช้ act_<account_ID>/adgroupstats
เนื่องจากอาจส่งผลให้คำขอหมดเวลาได้
คุณสามารถขอค่าประมาณการเข้าถึงได้สูงสุด 50 รายการภายในคำขอแบบแบตช์รายการเดียว ตัวอย่างต่อไปนี้แสดงค่าประมาณการเข้าถึงที่ร้องขอสำหรับข้อมูลจำเพาะของการกำหนดเป้าหมายที่ต่างกัน 2 รายการ
curl -F 'access_token=____' -F 'batch=[ { "method": "GET", "relative_url": "<API_VERSION>/act_600335/reachestimate?targeting_spec={'geo_locations': {'countries':['US']}}" }, { "method": "GET", "relative_url": "<API_VERSION>/act_600335/reachestimate?targeting_spec={'geo_locations': {'countries':['FR']}}" } ]' https://graph.facebook.com
API แบตช์ช่วยให้คุณสามารถจัดกลุ่มคำขอและส่งแบบไม่ซิงโครไนซ์ได้ โดยจัดกลุ่มการเรียกใช้ API กราฟหลายรายการไว้ในคำขอ HTTP เดียว จากนั้นดำเนินการแบบไม่ซิงโครไนซ์โดยไม่ต้องบล็อก นอกจากนี้ คุณสามารถกำหนดความขึ้นต่อกันระหว่างการดำเนินการที่เกี่ยวข้องได้ด้วย
Facebook จะประมวลผลการดำเนินการอิสระแต่ละรายการแบบขนานและการดำเนินการที่ขึ้นต่อกันตามลำดับ การเรียกใช้ API แต่ละรายการจะมีคำขอได้ไม่เกิน 1,000 รายการ
วิธีเรียกใช้ API แบตช์มีดังนี้
curl \
-F "access_token=___" \
-F "name=asyncbatchreqs" \
-F "adbatch=<an array of requests>"\
"https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/async_batch_requests"
ให้ระบุอาร์เรย์ของคำขอ HTTP POST
เป็นอาร์เรย์ JSON
โดยแต่ละคำขอต้องมีข้อมูลต่อไปนี้
name
relative_url
- ส่วนของ URL หลัง graph.facebook.combody
API จะส่งคืน ID ที่คุณใช้เพื่อสืบค้นความคืบหน้าของคำขอ
ตัวอย่างเช่น สร้างแคมเปญที่มีชุดโฆษณาโดยใช้รูปแบบ JSONPath เพื่ออ้างอิงคำขอก่อนหน้า ดังนี้
curl \ -F "access_token=___" \ -F "name=batchapiexample" \ -F "adbatch=[ { 'name': 'create-campaign', 'relative_url': 'act_123456/campaigns', 'body': 'name%3DTest+Campaign%26objective%3DLINK_CLICKS%26status%3DPAUSED%26buying_type%3DAUCTION', }, { 'name': 'create-adset', 'relative_url': 'act_123456/adsets', 'body': 'targeting%3D%7B%22geo_locations%22%3A%7B%22countries%22%3A%5B%22US%22%5D%7D%7D%26daily_budget%3D5000%26campaign_id%3D%7Bresult%3Dcreate-campaign%3A%24.id%7D%26bid_amount%3D2%26name%3DFirst%2BAd%2BSet%20Test%26billing_event%3DLINK_CLICKS', }, ]" \ https://graph.facebook.com/<API_VERSION>/act_123456/async_batch_requests
วิธีรับสถานะชุดคำขอมีดังนี้
curl –G \
-d "access_token=___" \
-d "fields=<comma separated list of fields>" \
"https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>"
การดำเนินการนี้จะส่งคืนสถานะโดยรวมของชุดคำขอแบบไม่ซิงค์ในรูปแบบอ็อบเจ็กต์ JSON ระบบจะไม่แสดงบางช่องโดยค่าเริ่มต้น หากต้องการรวมช่องข้อมูลใด ให้ระบุ fields
เช่น fields=id,owner_id,name,total_count,success_count,error_count,is_completed
ชื่อ | คำอธิบาย |
---|---|
ประเภท: จำนวนเต็ม | แสดงตามค่าเริ่มต้น
|
ประเภท: จำนวนเต็ม | แสดงตามค่าเริ่มต้น อ็อบเจ็กต์ที่เป็นเจ้าของชุดคำขอแบบไม่ซิงค์นี้ หากคุณสร้างโฆษณา |
ประเภท: สตริง | แสดงตามค่าเริ่มต้น ชื่อของชุดคำขอแบบไม่ซิงค์นี้ |
ประเภท: บูลีน | แสดงตามค่าเริ่มต้น คำขอแบบไม่ซิงค์ทั้งหมดอยู่ในชุดครบแล้ว |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอทั้งหมดสำหรับชุดคำขอนี้ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่ยังไม่ได้ดำเนินการ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่อยู่ระหว่างดำเนินการ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่ดำเนินการเสร็จแล้วและสำเร็จ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่ดำเนินการเสร็จแล้วแต่ไม่สำเร็จ |
ประเภท: จำนวนเต็ม | ไม่แสดงตามค่าเริ่มต้น จำนวนคำขอที่ผู้ใช้ยกเลิก |
ประเภท: สตริง | ไม่แสดงตามค่าเริ่มต้น URI การแจ้งเตือนสำหรับชุดคำขอแบบไม่ซิงค์นี้ |
ประเภท: สตริง | ไม่แสดงตามค่าเริ่มต้น วิธีในการรับการแจ้งเตือน ค่าที่ถูกต้อง ได้แก่
|
ประเภท: สตริง | ไม่แสดงตามค่าเริ่มต้น ผลลัพธ์ของการส่งการแจ้งเตือน |
ประเภท: สตริง | ไม่แสดงตามค่าเริ่มต้น สถานะการแจ้งเตือน ได้แก่ |
หลังจากได้รับสถานะโดยรวมแล้ว คุณสามารถรับรายละเอียดของแต่ละคำขอได้ ดังนี้
curl –G \
-d "access_token=___" \
-d "fields=<comma separated list of fields>" \
"https://graph.facebook.com/v21.0
/<REQUEST_SET_ID>/requests"
การดำเนินการนี้จะส่งคืนรายละเอียดในรูปแบบของอาร์เรย์ JSON หากต้องการให้แสดงช่องที่ไม่ใช่ค่าเริ่มต้น ให้ระบุใน fields
เช่น fields=id,scope_object_id,status,result,input,async_request_set
ชื่อ | คำอธิบาย |
---|---|
ประเภท: จำนวนเต็ม | แสดงตามค่าเริ่มต้น ID ของแต่ละคำขอแบบไม่ซิงค์ |
ประเภท: จำนวนเต็ม | แสดงตามค่าเริ่มต้น ID หลักของอ็อบเจ็กต์ที่คำขอนี้สร้างขึ้น หากคุณสร้างโฆษณา นี่คือ ID ชุดโฆษณาสำหรับโฆษณาใหม่ |
ประเภท: สตริง | แสดงตามค่าเริ่มต้น สถานะของคำขอแบบไม่ซิงค์นี้ ได้แก่
|
ประเภท: อาร์เรย์ | ไม่แสดงตามค่าเริ่มต้น หากดำเนินการตามคำขอเสร็จแล้ว ให้แสดงผลลัพธ์ ในกรณีที่สำเร็จ ผลลัพธ์จะเหมือนกันกับ API ที่ไม่ใช่แบบไม่ซิงค์ ตัวอย่างเช่น หากคุณสร้าง “การสร้างโฆษณา” ขึ้นมาหนึ่งรายการ ผลลัพธ์ที่ได้คือ ID โฆษณาใหม่ ในกรณีที่เกิดข้อผิดพลาด ระบบจะแสดงผลลัพธ์ดังนี้
|
ประเภท: อ็อบเจ็กต์ | ไม่แสดงตามค่าเริ่มต้น อินพุตเดิมสำหรับคำขอนี้ หากคุณสร้างโฆษณา อินพุตคือ |
ประเภท: อ็อบเจ็กต์ | ไม่แสดงตามค่าเริ่มต้น ชุดคำขอแบบไม่ซิงค์มีคำขอนี้ |
คุณสามารถสร้างชุดคำขอ API แบบแบตช์ได้หลายรายการ หากต้องการสืบค้นชุดคำขอทั้งหมดที่อยู่ภายใต้บัญชีโฆษณา ให้ดำเนินการดังนี้
curl –G \
-d "access_token=___" \
"https://graph.facebook.com/v21.0
/act_<AD_ACCOUNT_ID>/async_requests"
API การตลาดรองรับ Etag ซึ่งจะช่วยให้คุณทราบว่าข้อมูลที่คุณสืบค้นมีการเปลี่ยนแปลงหรือไม่นับตั้งแต่ที่คุณตรวจสอบครั้งล่าสุด โดยวิธีการทำงานมีดังนี้
304 – Not Modified
และจะไม่มีการส่งคืนข้อมูลถึงแม้ว่า ETag จะช่วยลดจำนวนผู้เข้าชมข้อมูลได้ แต่ If-None-Match GET
จะยังคงนับโดยเทียบกับขีดจำกัดอัตราสำหรับแอพของคุณ
ระบบจะคำนวณ ETag โดยใช้การตอบกลับทั้งหมดจากการเรียกใช้ API รวมถึงการจัดรูปแบบด้วย ซึ่งการจัดรูปแบบของการตอบกลับอาจได้รับผลกระทบจากสตริงตัวแทนผู้ใช้ ดังนั้น คุณควรดูแลให้ตัวแทนผู้ใช้เหมือนเดิมทุกครั้งสำหรับการเรียกจากไคลเอนต์เดิม
วิธีตรวจสอบว่าบัญชีโฆษณาของผู้ใช้มีการเปลี่ยนแปลงหรือไม่ มีดังนี้
ขั้นตอนที่ 1: กำหนด ETag สำหรับข้อมูลปัจจุบัน
curl -i "https://graph.beta.facebook.com/me/adaccounts?access_token=___"
การตอบกลับจะมีลักษณะดังนี้
HTTP/1.1 200 OK Access-Control-Allow-Origin: * Cache-Control: private, no-cache, no-store, must-revalidate Content-Type: text/javascript; charset=UTF-8 ETag: "7776cdb01f44354af8bfa4db0c56eebcb1378975" Expires: Sat, 01 Jan 2000 00:00:00 GMT Pragma: no-cache X-FB-Rev: 495685 X-FB-Server: 10.30.149.204 X-FB-Debug: CWbHcogdwUE8saMv6ML+8FacXFrE8ufhjjwxU2dQWaA= X-Cnection: close Date: Mon, 16 Jan 2012 12:07:44 GMT Content-Length: 3273 {"data":[{"id":"act.......
ในตัวอย่างนี้ ETag คือ "7776cdb01f44354af8bfa4db0c56eebcb1378975"
ให้สังเกตว่า ETag จะมีเครื่องหมายอัญประกาศ ("
) อยู่ด้วย
ขั้นตอนที่ 2: ตรวจสอบว่าข้อมูลมีการเปลี่ยนแปลงหรือไม่
curl -i -H "If-None-Match: \"7776cdb01f44354af8bfa4db0c56eebcb1378975\"" "https://graph.beta.facebook.com/me/adaccounts?access_token=___"
หากไม่มีการเปลี่ยนแปลง การตอบกลับจะมีลักษณะดังนี้
HTTP/1.1 304 Not Modified Access-Control-Allow-Origin: * Cache-Control: private, no-cache, no-store, must-revalidate Content-Type: text/javascript; charset=UTF-8 Expires: Sat, 01 Jan 2000 00:00:00 GMT Pragma: no-cache X-FB-Rev: 495685 X-FB-Server: 10.30.177.190 X-FB-Debug: ImBhat3k07Nez5FvuS2lPWU0U2xxmxD4B3k9ua4Sk7Q= X-Cnection: close Date: Mon, 16 Jan 2012 12:09:17 GMT Content-Length: 0
ให้สังเกตการตอบกลับ 304 Not Modified
หากข้อมูลมีการเปลี่ยนแปลง ระบบจะส่งคืนการตอบกลับ API ตามปกติ
ตัวอย่างแบบกลุ่มใช้ตรวจสอบว่าโฆษณาของผู้ใช้มีการเปลี่ยนแปลงหรือไม่
ขั้นตอนที่ 1: กำหนด ETag สำหรับข้อมูลปัจจุบัน
curl -i "curl -F 'access_token=___' -F 'batch=[ {"method":"GET", "relative_url": "?ids=6003356308839,6004164369439" }, {"method":"GET", "relative_url": "act_12345678/ads?campaign_ids=[6003356307839, 6004164259439]"}]' https://graph.facebook.com"
การตอบกลับจะประกอบด้วยค่า ETag ดังต่อไปนี้
...{"name":"ETag","value":"\"21d371640127490b2ed0387e8af3f0f8c9eff012\""}... ...{"name":"ETag","value":"\"410e53bb257f116e8716e4ebcc76df1c567b87f4\""}...
ในตัวอย่างนี้ ETag คือ "21d371640127490b2ed0387e8af3f0f8c9eff012"
และ "410e53bb257f116e8716e4ebcc76df1c567b87f4"
ให้สังเกตว่า ETag จะมีเครื่องหมายอัญประกาศ ("
) อยู่ด้วย
ขั้นตอนที่ 2: ตรวจสอบว่าข้อมูลมีการเปลี่ยนแปลงหรือไม่:
curl -F 'access_token=___' -F 'batch=[ {"method":"GET", "headers":["If-None-Match: \"21d371640127490b2ed0387e8af3f0f8c9eff012\""], "relative_url": "?ids=6003356308839,6004164369439" }, {"method":"GET", "headers":["If-None-Match: \"410e53bb257f116e8716e4ebcc76df1c567b87f4\""], "relative_url": "act_12345678/ads?campaign_ids=[6003356307839, 6004164259439]"}]' https://graph.facebook.com
หากไม่มีการเปลี่ยนแปลง การตอบกลับจะเป็นดังนี้
[{ "code": 304, . . . "body": null }, { "code": 304, . . . "body": null }]
ให้สังเกตการตอบกลับ 304 Not Modified
หากข้อมูลมีการเปลี่ยนแปลง เราจะส่งคืนการตอบกลับ API ตามปกติ