กฎโฆษณาแบบตามทริกเกอร์

ติดตามสถานะโฆษณาของคุณแบบเรียลไทม์ กฎแบบตามทริกเกอร์จะได้รับการตรวจสอบเงื่อนไขทันทีที่มีการเปลี่ยนแปลงเมตาดาต้าหรือข้อมูลเชิงลึกของอ็อบเจ็กต์โฆษณาที่เกี่ยวข้อง การเปลี่ยนแปลงเมตาดาต้ามักจะมีความล่าช้าหลักวินาที ส่วนการเปลี่ยนแปลงข้อมูลเชิงลึกมักจะมีความล่าช้าหลักนาที (เวลาแฝงแบบ 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 และมีโครงสร้างดังนี้

คีย์ของอ็อบเจ็กต์ทริกเกอร์ คำอธิบาย

type

ประเภทของกฎแบบตามทริกเกอร์ ในขณะนี้ ตัวเลือกที่ระบบรองรับมีดังนี้

METADATA_CREATION: ทริกเกอร์เมื่อมีการสร้างอ็อบเจ็กต์โฆษณา

METADATA_UPDATE: ทริกเกอร์เมื่อมีการอัพเดต field ของเมตาดาต้า

STATS_CHANGE: ทริกเกอร์เมื่อมีการเปลี่ยนแปลง field ของข้อมูลเชิงลึกเพื่อให้ตรงตามเกณฑ์เปรียบเทียบ

STATS_MILESTONE: ทริกเกอร์เมื่อ field ของข้อมูลเชิงลึกมีค่าถึงตัวคูณของ value

field

ฟิลด์เบื้องหลัง ไม่ใช้สำหรับ METADATA_CREATION

value

ค่าตัวกรองเบื้องหลัง ไม่ใช้สำหรับ METADATA_CREATION ระบุหรือไม่ก็ได้สำหรับ METADATA_UPDATE

operator

ตัวดำเนินการตัวกรองเบื้องหลัง ไม่ใช้สำหรับ METADATA_CREATION ระบุหรือไม่ก็ได้สำหรับ METADATA_UPDATE

คุณสามารถสร้างกฎโฆษณาที่มีการทริกเกอร์ได้ 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 ด้วย

ค่าในฟิลด์ทริกเกอร์ที่รองรับ ค่าขั้นต่ำ

impressions

1000

unique_impressions

1000

reach

1000

clicks

10

unique_clicks

10

spent

1000 (เซนต์)

results

5

app_custom_event

1

app_custom_event_fb_mobile_achievement_unlocked

1

app_custom_event_fb_mobile_activate_app

1

app_custom_event_fb_mobile_add_payment_info

1

app_custom_event_fb_mobile_add_to_cart

1

app_custom_event_fb_mobile_add_to_wishlist

1

app_custom_event_fb_mobile_complete_registration

1

app_custom_event_fb_mobile_content_view

1

app_custom_event_fb_mobile_initiated_checkout

1

app_custom_event_fb_mobile_level_achieved

1

app_custom_event_fb_mobile_purchase

1

app_custom_event_fb_mobile_rate

1

app_custom_event_fb_mobile_search

1

app_custom_event_fb_mobile_spent_credits

1

app_custom_event_fb_mobile_tutorial_completion

1

app_custom_event_other

1

leadgen

1

like

1

link_click

1

mobile_app_install

1

offsite_conversion

1

offsite_conversion_add_to_cart

1

offsite_conversion_checkout

1

offsite_conversion_fb_pixel_add_payment_info

1

offsite_conversion_fb_pixel_add_to_cart

1

offsite_conversion_fb_pixel_add_to_wishlist

1

offsite_conversion_fb_pixel_complete_registration

1

offsite_conversion_fb_pixel_initiate_checkout

1

offsite_conversion_fb_pixel_lead

1

offsite_conversion_fb_pixel_other

1

offsite_conversion_fb_pixel_purchase

1

offsite_conversion_fb_pixel_search

1

offsite_conversion_fb_pixel_view_content

1

offsite_engagement

1

post

1

post_comment

1

post_engagement

1

post_like

1

post_reaction

1

view_content

1

video_play

1

video_view

1

vote

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 กฎจะไม่ถูกทริกเกอร์อีก

การตั้งค่า Webhooks

หากต้องการใช้ประเภทการดำเนินการ PING_ENDPOINT คุณจะต้องตั้งค่าการติดตามข้อมูลสำหรับแอพพลิเคชั่นของคุณผ่าน Webhooks ตั้งค่า URL การเรียกกลับ, แอพ Facebook และ Webhooks เพื่อรับการแจ้งเตือนจาก API กฎตามขั้นตอนต่อไปนี้

ขั้นตอนที่ 1: ตั้งค่า URL การเรียกกลับ

ดูคู่มือการใช้ 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 ค่าของฟิลด์นี้อาจเขียนเป็นสตริงล้อมรอบด้วยอัญประกาศคู่ ตัวเลข หรืออาร์เรย์ที่ขึ้นต้นด้วย [ (วงเล็บเหลี่ยมเปิด) และลงท้ายด้วย ] (วงเล็บเหลี่ยมปิด)

ขั้นตอนที่ 2: เพิ่ม Webhook ads_rules_engine ลงในแอพของคุณ

เมื่อ URL การเรียกกลับจัดการอุปสรรคและการตอบสนองในการตรวจสอบยืนยันแล้ว ให้บันทึก URL ดังกล่าวลงในแอพของคุณเมื่อมีกฎถูกทริกเกอร์

  • สร้างแอพ Facebook ใหม่หรือใช้แอพที่มีอยู่
  • เพิ่มผลิตภัณฑ์ Webhooks
  • สร้างการติดตามใหม่สำหรับแอพพลิเคชั่น แล้วเลือก 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