ติดตามสถานะโฆษณาของคุณแบบเรียลไทม์ กฎแบบตามทริกเกอร์จะได้รับการตรวจสอบเงื่อนไขทันทีที่มีการเปลี่ยนแปลงเมตาดาต้าหรือข้อมูลเชิงลึกของอ็อบเจ็กต์โฆษณาที่เกี่ยวข้อง การเปลี่ยนแปลงเมตาดาต้ามักจะมีความล่าช้าหลักวินาที ส่วนการเปลี่ยนแปลงข้อมูลเชิงลึกมักจะมีความล่าช้าหลักนาที (เวลาแฝงแบบ P99 ปัจจุบันอยู่ที่ 7.5 นาที)
กฎแบบตามทริกเกอร์จะไม่รองรับ schedule_spec
เนื่องจากมีการตรวจสอบแบบเรียลไทม์ตลอดเวลาอยู่แล้ว
ขณะนี้กฎแบบตามทริกเกอร์ใช้งานได้เฉพาะใน API เท่านั้น ไม่สามารถเข้าถึงผ่านตัวจัดการโฆษณาได้
อ็อบเจ็กต์ trigger
เป็นตัวกำหนดวิธีการตรวจสอบเงื่อนไขของกฎ ทริกเกอร์ทุกประเภทจำเป็นต้องมี field
ที่เป็นทริกเกอร์ ยกเว้น METADATA_CREATION
กฎแบบตามทริกเกอร์จะตรวจสอบเงื่อนไขเมื่อมีการเปลี่ยนแปลงฟิลด์นี้เท่านั้น
กฎแบบตามทริกเกอร์มี trigger
ได้เพียงรายการเดียว หากคุณใช้เงื่อนไขหรือข้อจำกัดกับเกณฑ์ชี้วัดหลายรายการ คุณสามารถเพิ่มเงื่อนไขหรือข้อจำกัดที่เหลือเป็น filters
ได้
ฟิลด์ filters
มีวิธีใช้เหมือนกับในกฎแบบตามกำหนดเวลา กฎแบบตามทริกเกอร์จะผ่านการตรวจสอบเงื่อนไขก็ต่อเมื่อ trigger
และ filters
ทั้งหมดตรงตามเกณฑ์เปรียบเทียบ ดังนั้นทริกเกอร์กับตัวกรองจึงสามารถใช้แทนกันได้หากการเปลี่ยนแปลงฟิลด์หนึ่งรายการส่งผลให้ฟิลด์อื่นเปลี่ยนแปลงไปด้วย ตัวอย่างเช่น หากคุณต้องการทริกเกอร์กฎข้อหนึ่งเมื่อ cost_per_mobile_app_install
> X
และ spent
> Y
คุณสามารถใช้ cost_per_mobile_app_install
หรือ spent
เป็นทริกเกอร์ แล้วใช้อีกรายการเป็นตัวกรองได้ เนื่องจากทั้งสองฟิลด์มีความสัมพันธ์กัน
อ็อบเจ็กต์ trigger
อยู่ใน evaluation_spec
และมีโครงสร้างดังนี้
คีย์ของอ็อบเจ็กต์ทริกเกอร์ | คำอธิบาย |
---|---|
| ประเภทของกฎแบบตามทริกเกอร์ ในขณะนี้ ตัวเลือกที่ระบบรองรับมีดังนี้
|
| ฟิลด์เบื้องหลัง ไม่ใช้สำหรับ |
| ค่าตัวกรองเบื้องหลัง ไม่ใช้สำหรับ |
| ตัวดำเนินการตัวกรองเบื้องหลัง ไม่ใช้สำหรับ |
คุณสามารถสร้างกฎโฆษณาที่มีการทริกเกอร์ได้ 4 แบบ ดังนี้
METADATA_CREATION
หรือ METADATA_UPDATE
STATS_MILESTONE
หรือ STATS_CHANGE
กฎนี้ใช้สำหรับติดตามเมื่อมีการสร้างอ็อบเจ็กต์โฆษณา โดยจำเป็นต้องใช้เพียง type
ภายในส่วนข้อมูลจำเพาะ trigger
เท่านั้น สำหรับตัวกรอง ให้ระบุ entity_type
ที่คุณต้องการติดตาม
ต่อไปนี้คือตัวอย่างกฎการสร้างเมตาดาต้าให้ติดตามการสร้างโฆษณาทั้งหมดที่มีวัตถุประสงค์ตรงตามที่กำหนด ทุกครั้งที่มีการสร้างโฆษณาใหม่ภายในแคมเปญโฆษณาที่มีวัตถุประสงค์เป็น APP_INSTALLS
ระบบจะส่งการแจ้งเตือน
curl -i -X POST \ -F 'name=Metadata Creation Example 1' \ -F 'evaluation_spec={ "evaluation_type" : "TRIGGER", "trigger" : { "type": "METADATA_CREATION", }, "filters" : [ { "field": "entity_type", "value": "AD", "operator": "EQUAL", }, { "field": "campaign.objective", "value": ["APP_INSTALLS"], "operator": "IN", }, ] }' \ -F 'execution_spec={ "execution_type": "PING_ENDPOINT" }' \ -F "access_token=<ACCESS_TOKEN>" \ "https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library"
กฎนี้ใช้สำหรับติดตามเมื่อมีการเปลี่ยนแปลงเมตาดาต้าของอ็อบเจ็กต์โฆษณา ดูรายการฟิลด์เมตาดาต้าที่ระบบรองรับ ภายในส่วนข้อมูลจำเพาะ trigger
นั้น field
คือส่วนที่ต้องระบุ แต่ value
และ operator
จะระบุหรือไม่ก็ได้
หากคุณสนใจการเปลี่ยนแปลงฟิลด์ ไม่ว่าฟิลด์นั้นจะมีค่าเป็นอะไร คุณแค่ต้องระบุตัวเลือก field
เท่านั้น นี่คือตัวอย่างการตั้งค่าให้ระบบส่งการแจ้งเตือนทาง Facebook ถึงคุณทุกครั้งที่มีการเปลี่ยนแปลงงบประมาณต่อวันของชุดโฆษณา
curl -i -X POST \ -F 'name=Metadata Update Example 1' \ -F 'evaluation_spec={ "evaluation_type" : "TRIGGER", "trigger" : { "type": "METADATA_UPDATE", "field": "daily_budget", }, "filters" : [ { "field": "entity_type", "value": "ADSET", "operator": "EQUAL", }, ] }' \ -F 'execution_spec={ "execution_type": "NOTIFICATION" }' \ -F "access_token=<ACCESS_TOKEN>" \ "https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library"
หากคุณสนใจชุดเหตุการณ์ย่อย คุณสามารถระบุ operator
และตัวเลือก value
เพื่อปรับแต่งเงื่อนไข trigger
ได้ นี่คือตัวอย่างการให้ระบบแจ้งเตือนเมื่องบประมาณต่อวันของชุดโฆษณามีการเปลี่ยนแปลงและมีค่าสูงเกิน 1000
curl -i -X POST \ -F 'name=Metadata Update Example 2' \ -F 'evaluation_spec={ "evaluation_type" : "TRIGGER", "trigger" : { "type": "METADATA_UPDATE", "field": "daily_budget", "value": 1000, "operator": "GREATER_THAN" }, "filters" : [ { "field": "entity_type", "value": "ADSET", "operator": "EQUAL", }, ] }' \ -F 'execution_spec={ "execution_type": "PING_ENDPOINT" }' \ -F "access_token=<ACCESS_TOKEN>" \ "https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library"
เมื่อใช้ STATS_MILESTONE
เป็น type
แล้ว evaluation_spec
จะทริกเกอร์เมื่อ field
มีค่าถึงตัวคูณของ value
สำหรับอ็อบเจ็กต์ที่มีเงื่อนไขตรงตามเกณฑ์ในอาร์เรย์ filters
สำหรับกฎประเภทนี้ ทริกเกอร์ operator
จะต้องเป็น EQUAL
และตัวกรอง time_preset
ต้องมีค่าเป็น LIFETIME
ทั้งนี้ ยังมีฟิลด์ที่ระบบรองรับซึ่งมีข้อจำกัดมากกว่านี้อยู่ด้วย ฟิลด์ที่ไม่ได้ระบุไว้ที่ด้านล่างนี้คือฟิลด์ที่ระบบไม่รองรับให้ใช้เป็น field
ที่เป็นทริกเกอร์ แต่ยังสามารถใช้เป็นตัวกรองในรายการ filters
ได้ นอกจากนี้ value
ของทริกเกอร์ยังมีการกำหนดค่าขั้นต่ำตาม field
ด้วย
ค่าในฟิลด์ทริกเกอร์ที่รองรับ | ค่าขั้นต่ำ |
---|---|
| 1000 |
| 1000 |
| 1000 |
| 10 |
| 10 |
| 1000 (เซนต์) |
| 5 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
นี่คือตัวอย่างกฎเป้าหมายสถิติที่จะส่งการแจ้งในระบบทุกครั้งที่มีคนแสดงความคิดเห็นในโพสต์ของคุณ
curl \ -F 'name=Rule 1' \ -F 'evaluation_spec={ "evaluation_type" : "TRIGGER", "trigger" : { "type": "STATS_MILESTONE", "field": "post_comment", "value": 1, "operator": "EQUAL" }, "filters" : [ { "field": "entity_type", "value": "CAMPAIGN", "operator": "EQUAL", }, { "field": "time_preset", "value": "LIFETIME", "operator": "EQUAL", }, ] }' \ -F 'execution_spec={ "execution_type": "PING_ENDPOINT" }' \ -F "access_token=<ACCESS_TOKEN>" \ https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library
เมื่อใช้ STATS_CHANGE
เป็น type
ของทริกเกอร์แล้ว execution_spec
จะทริกเกอร์เมื่อตัวดำเนินการทางตรรกะ AND
ของทริกเกอร์และตัวกรองทั้งหมดได้รับการตรวจสอบเงื่อนไขจาก false
เป็น true
ภายใน time_preset
ที่กำหนด
หากต่อมาระบบตรวจสอบเงื่อนไขของตัวดำเนินการทางตรรกะ AND
แล้วพบว่าเป็นจริงด้วย execution_spec
ก็จะไม่ดำเนินการ อย่างไรก็ตาม หากผลการตรวจสอบเงื่อนไขของตัวดำเนินการทางตรรกะ AND
เปลี่ยนจาก true
เป็น false
แล้ว execution_spec
ก็จะดำเนินการเมื่อค่าเปลี่ยนกลับไปเป็น true
สำหรับกฎประเภทนี้ ทริกเกอร์ operator
อาจเป็น GREATER_THAN
, LESS_THAN
, IN_RANGE
หรือ NOT_IN_RANGE
ก็ได้
นี่คือตัวอย่างกฎการเปลี่ยนแปลงสถิติ ทุกครั้งที่โฆษณาเข้าถึงผู้คนได้มากกว่า 5,000 คนและมีต้นทุนต่อการซื้อมากกว่า $10 ในช่วง 3 วันที่ผ่านมา ให้หยุดการทำงานไว้
curl \ -F 'name=Rule 1' \ -F 'evaluation_spec={ "evaluation_type" : "TRIGGER", "trigger" : { "type": "STATS_CHANGE", "field": "cost_per_purchase_fb", "value": 1000, "operator": "GREATER_THAN", }, "filters" : [ { "field": "entity_type", "value": "AD", "operator": "EQUAL" }, { "field": "time_preset", "value": "LAST_3_DAYS", "operator": "EQUAL" }, { "field": "reach", "value": 5000, "operator": "GREATER_THAN" } ] }' \ -F 'execution_spec={ "execution_type": "PAUSE" }' \ -F "access_token=<ACCESS_TOKEN>" \ https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library
เมื่อใช้ DELIVERY_INSIGHTS_CHANGE
เป็น type
ของทริกเกอร์ กฎจะถูกทริกเกอร์เมื่อตัวกรองทุกรายการที่ระบุใน evaluation_spec
มีผลการตรวจสอบเงื่อนไขเป็น true
และทริกเกอร์ที่ระบุใน evaluation_spec
เพิ่งเปลี่ยนจาก false
เป็น true
หากต่อมามีการตรวจสอบเงื่อนไข หากตัวกรองและทริกเกอร์ยังคงมีผลการตรวจสอบเป็น true
กฎจะไม่ถูกทริกเกอร์อีก
หากต้องการใช้ประเภทการดำเนินการ PING_ENDPOINT
คุณจะต้องตั้งค่าการติดตามข้อมูลสำหรับแอพพลิเคชั่นของคุณผ่าน Webhooks ตั้งค่า URL การเรียกกลับ, แอพ Facebook และ Webhooks เพื่อรับการแจ้งเตือนจาก API กฎตามขั้นตอนต่อไปนี้
ดูคู่มือการใช้ Webhooks แล้วสร้าง URL การเรียกกลับที่สามารถจัดการกับอุปสรรคและการตอบสนองที่เกิดขึ้นระหว่างการตรวจสอบยืนยันได้ URL การเรียกกลับจะจัดการกับโครงสร้างข้อมูลที่มีการส่งเมื่อกฎถูกทริกเกอร์ ดังภาพ
{ object: 'application', entry: [{ id: '<APPLICATION_ID>', time: 1468938744, changes: [{ field: 'ads_rules_engine', value: { 'rule_id': 1234, 'object_id': 5678, 'object_type': 'ADSET', 'trigger_type': 'STATS_CHANGE', 'trigger_field': 'COST_PER_LINK_CLICK', 'current_value': '15.8', } }], }], }
ฟิลด์ current_value
เป็นสตริงที่เข้ารหัส JSON ค่าของฟิลด์นี้อาจเขียนเป็นสตริงล้อมรอบด้วยอัญประกาศคู่ ตัวเลข หรืออาร์เรย์ที่ขึ้นต้นด้วย [
(วงเล็บเหลี่ยมเปิด) และลงท้ายด้วย ]
(วงเล็บเหลี่ยมปิด)
ads_rules_engine
ลงในแอพของคุณเมื่อ URL การเรียกกลับจัดการอุปสรรคและการตอบสนองในการตรวจสอบยืนยันแล้ว ให้บันทึก URL ดังกล่าวลงในแอพของคุณเมื่อมีกฎถูกทริกเกอร์
ad_rules_engine
หรืออาจดำเนินการผ่าน API กราฟโดยใช้โทเค็นการเข้าถึงของแอพ ไม่ใช่โทเค็นการเข้าถึงของผู้ใช้ ดังภาพ
curl \ -F "object=application" \ -F "callback_url=<CALLBACK_URL>" \ -F "fields=ads_rules_engine" \ -F "verify_token=<VERIFY_TOKEN>" \ -F "access_token=<APP_ACCESS_TOKEN>" \ "https://graph.facebook.com/<VERSION>/<APP_ID>/subscriptions"
ดูข้อมูลอ้างอิงเกี่ยวกับการติดตามข้อมูลเพื่อรับทราบรายละเอียดเพิ่มเติมเกี่ยวกับ APP_ID/subscriptions