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