قواعد الإعلانات التي تستند إلى التشغيل

تحقق من حالة إعلاناتك بشكل فوري. يتم تقييم القاعدة التي تستند إلى التشغيل بمجرد تغيير بيانات التعريف أو الرؤى الخاصة بالكائنات الإعلانية ذات الصلة. عادةً ما يكون زمن استجابة تغييرات البيانات التعريفية بضع ثوانٍ، ويكون زمن استجابة تغييرات الرؤى عادةً خلال بضع دقائق (يبلغ زمن الاستجابة 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.

يمكنك إنشاء قواعد إعلانات يتم تشغيلها بأربعة طرق مختلفة:

  • البيانات التعريفية ذات الصلة: 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. فيما يلي مثال لإرسال إشعار فيسبوك إليك عند تغيير الميزانية اليومية لمجموعة إعلانية.

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.

فيما يلي مثال على قاعدة تغيير الإحصاءات. في كل مرة يصل فيها الإعلان إلى أكثر من 5000 شخص ويتجاوز سعر كل عملية شراء 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 لاستدعاء وتطبيق فيسبوك وأحداث Webhooks للحصول على إشعارات من API القواعد:

الخطوة الأولى: إعداد عنوان 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. يمكن أن تكون قيمته عبارة عن سلسلة بين علامتي اقتباس مزدوجتين أو رقم أو مصفوفة تبدأ بـ [ (القوس الأيسر) وتنتهي بـ ] (القوس اليمين).

الخطوة الثانية: إضافة حدث Webhook لـ ads_rules_engine إلى تطبيقك

بمجرد أن يعالج عنوان URL للاستدعاء المشكلة والاستجابة للتحقق، قم بتسجيله في تطبيقك عند تشغيل قاعدة:

  • قم بإنشاء تطبيق فيسبوك جديد أو استخدم تطبيقًا موجودًا.
  • أضف منتج Webhooks.
  • قم بإنشاء اشتراك جديد لأحد التطبيقات وحدد ad_rules_engine.

بدلاً من ذلك، يمكن تنفيذ ذلك من خلال Graph 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.