| الملخص | يضيف تتبع Meta Pixel مع واجهة تحويلات API (CAPI) إلى منتداك على Discourse. | ||
| رابط المستودع | إضافة Discourse Meta Pixel & Conversions API | ||
| دليل التثبيت | كيفية تثبيت الإضافات في Discourse |
الطريقة المعتادة لإضافة Meta Pixel إلى Discourse هي لصق الكود الأساسي في مكوّن سمة. يطلق هذا fbq('track', 'PageView') مرة واحدة عند تحميل المستند، وبما أن Discourse لا يعيد تحميل المستند أبدًا، فإنك تحصل على حدث PageView واحد لكل زيارة مهما كان عدد المواضيع التي يقرؤها الشخص. تطلق هذه الإضافة الأحداث مع كل تنقّل، وتضيف أحداث المحتوى والتحويلات، وترسل نسخة من جهة الخادم عبر واجهة تحويلات API (Conversions API) حتى تبقى الأحداث سليمة حتى في حال وجود حجب للإعلانات.
لماذا لا تستخدم مكوّن سمة فحسب؟
يعمل مكوّن السمة في المتصفح فقط، مما له ثلاث عواقب.
تحجب حجب الإعلانات وإعدادات Safari ITP نسبة معنوية من أحداث المتصفح، ولا يمكنك معرفة أي منها مفقود. كما لا يمكنه استخدام واجهة تحويلات API (Conversions API) على الإطلاق، لأن ذلك يتطلب رمز وصول (access token) ولا يوجد مكان في مكوّن السمة لتخزين سرّ لا يمكن للزوار قراءته. بالإضافة إلى ذلك، فإنه يطلق الأحداث في كل مكان يتم فيه حقنه، بما في ذلك الرسائل الخاصة، وصفحات /admin وإعادة تعيين كلمة المرور.
إذا كان كل ما تريده هو حدث PageView لجمهور إعادة الاستهداف، فإن مكوّن السمة يكفي حقًا ويستغرق دقيقتين. هذه الإضافة مخصصة لجودة التحويلات.
هل أحتاج إلى هذا لمنتداي؟
ربما لا. صُممت Pixel وCAPI لمساعدتك على تتبع التحويلات وإنشاء جماهير إعلانية. على الرغم من أنه يمكن أن يوفر لك بعض البيانات التحليلية، فإن لوحة تحكم Discourse تحتوي بالفعل على بيانات تحليلية قوية. هذه الإضافة مخصصة للمستخدمين الذين يريدون بشكل أساسي تتبع التحويلات وإدارة إعلانات Meta التي تساعد في جذب المستخدمين إلى منتداك وموقعك.
الميزات
- Pixel للمتصفح وواجهة تحويلات API من جهة الخادم في إضافة واحدة، تشاركان معًا معرّف حدث واحد حتى تقوم Meta بإزالة التكرار بدلاً من العد المزدوج
PageView,ViewContent,Search,TopicEngaged,CompleteRegistration,TopicCreated,ReplyCreated- تطلق الأحداث مع كل تنقّل SPA، وليس مع كل تحميل للصفحة
- تصل التحويلات من جهة الخادم حتى لو تم حجب Pixel للمتصفح
- الرسائل الخاصة والفئات المقيدة ومسارات الإدارة لا تنتج أي حدث
- عناوين المحتوى الذي ينشئه المستخدمون ونصوص البحث لا تُرسل أبدًا
- يمكن استبعاد حركة مرور الموظفين حسب المجموعة، ويُنفَّذ ذلك على أحداث الخادم أيضًا
- تسليم مجمّع مع تصنيف إعادة المحاولة، وتراجع عند تجاوز حد المعدل، وجدول تقارب دائم (idempotency table)
- صفحة تشخيصات تعرض التسليمات الأخيرة وحالتها
الإعدادات
1. التثبيت
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/multidimension-al/discourse-meta-pixel-capi.git
ثم قم بتشغيل ./launcher rebuild app. يقوم إعادة البناء بتشغيل هجرة (migration) تنشئ جدول التسليم.
2. Pixel. الإدارة ← الإعدادات ← Meta Pixel & Conversions API. ضع معرّف Pixel الخاص بك في meta pixel dataset id، ثم فعّل discourse meta pixel enabled. هذا إعداد عامل يعتمد على Pixel فقط.
(تسمي Meta هذا المعرّف بـ Pixel ID في مدير الأحداث (Events Manager) وبمعرّف مجموعة البيانات (dataset ID) في وثائق واجهة تحويلات API. إنه الرقم نفسه.)
3. واجهة تحويلات API (اختياري). قم بتوليد رمز في مدير الأحداث ← مجموعة بياناتك ← الإعدادات ← Conversions API. ضع الرمز في meta pixel capi access token، ثم فعّل meta pixel capi enabled. يرفض الإعداد التفعيل بدون رمز ومعرّف مجموعة بيانات.
4. التحقق. ضع رمزًا من مدير الأحداث ← أحداث الاختبار (Test Events) في meta pixel test event code وتصفح المنتدى. يجب أن يصل كل حدث مرة واحدة، وليس مرتين. هذا يعني أن إزالة التكرار تعمل. امسح الحقل لاحقًا، لأن الأحداث المرسلة برمز اختبار لا تُحتسب كتحويلات.
5. الفحص. الإدارة ← الإضافات ← Meta Pixel ← التشخيصات تعرض الإعدادات، حالة المتصفح، عدّادات التسليم، وآخر 25 عملية تسليم مع أي أخطاء.
الإعدادات
| الاسم | الوصف |
|---|---|
discourse meta pixel enabled |
تفعيل الإضافة. غير مفعّل افتراضيًا. |
meta pixel pixel enabled |
تحميل Meta Pixel في المتصفح. |
meta pixel dataset id |
معرّف Meta Pixel الخاص بك (يُسمى معرّف مجموعة البيانات في وثائق CAPI). |
meta pixel capi enabled |
إرسال نسخة من جهة الخادم عبر واجهة تحويلات API. يتطلب رمزًا. غير مفعّل افتراضيًا. |
meta pixel capi access token |
رمز Conversions API من مدير الأحداث. سر من جهة الخادم، لا يُرسل أبدًا إلى المتصفح. |
meta pixel graph api version |
إصدار Graph API لطلبات CAPI. الافتراضي v26.0. |
meta pixel test event code |
رمز أحداث الاختبار. يُضبط فقط أثناء التحقق، لأن هذه الأحداث لا تُحتسب كتحويلات. |
meta pixel track page view |
إرسال PageView للصفحات المؤهلة. |
meta pixel track view content |
إرسال ViewContent عند فتح موضوع مرئي للعامة. |
meta pixel track search |
إرسال Search عند تنفيذ بحث كامل للصفحة. لا يتم تمرير نص البحث أبدًا. غير مفعّل افتراضيًا. |
meta pixel track topic engaged |
إرسال TopicEngaged بعد قراءة ذات معنى. |
meta pixel topic engaged seconds |
ثوانٍ القراءة النشطة قبل إطلاق TopicEngaged. الافتراضي 30. |
meta pixel track complete registration |
إرسال CompleteRegistration عند إنشاء حساب. |
meta pixel track topic created |
إرسال TopicCreated لموضوع عام جديد. |
meta pixel track reply created |
إرسال ReplyCreated لرد على موضوع عام. |
meta pixel enhanced email matching |
تضمين تجزئة SHA-256 من بريد العضو لتحسين جودة التطابق. غير مفعّل افتراضيًا. |
meta pixel external id matching |
تضمين HMAC غير شفاف (opaque) لمعرّف المستخدم. ليس اسم مستخدم أو بريد إلكتروني أبدًا. |
meta pixel excluded groups |
أعضاء هذه المجموعات لا ينتجون أي أحداث Meta على الإطلاق. الافتراضي: المشرفون، المراقبون. |
meta pixel respect do not track |
لا ترسل شيئًا للزوار الذين يبلغ متصفحهم عن “عدم التتبع” (Do Not Track). |
meta pixel public content only |
أرسل أحداث المحتوى فقط للمواضيع التي يمكن لزائر مجهول قراءتها. |
meta pixel batch size |
عدد التحويلات لكل طلب. تقبل Meta حتى 1000. الافتراضي 100. |
meta pixel batch max wait seconds |
المدة التي ينتظرها الدفعة (batch) المملوءة جزئيًا. الافتراضي 300. |
meta pixel delivery retention days |
الأيام التي تُحفظ فيها سجلات التسليم. الحد الأدنى 7، الافتراضي 30. |
meta pixel debug mode |
تسجيل الأحداث المرسلة في وحدة تحكم المتصفح. |
ملاحظات
- نسخ المتصفح والخادم للحدث تشارك معًا معرّفًا واحدًا. تقوم Meta بإزالة التكرار بناءً على اسم الحدث بالإضافة إلى المعرّف خلال 48 ساعة، وهو السبب في أن نافذة انتظار الدفعة (batch) بالدقائق وليس بالساعات.
- إنشاء المواضيع والردود يتم من جهة الخادم فقط. لنضيف نسخة المتصفح أي إشارة هوية، وعميل يستطيع الادعاء بأنه “تم إنشاء موضوع” يمكنه الادعاء بذلك زورًا.
- يُرسل التسجيل من الخادم لكنه مقترن بحدث المتصفح، لأنه عند إنشاء الحساب لا يوجد طلب جارٍ يمكن أخذ عنوان IP أو وكيل المستخدم أو
_fbpمنه. - تُنفَّذ المجموعات المستبعدة في كل مسار إرسال من جهة الخادم، وليس في المتصفح فقط. لا تتضمن
TopicCreatedوReplyCreatedوCompleteRegistrationمتصفحًا على الإطلاق. - النقطة النهائية التي يرسل إليها المتصفح ليست وكيلًا (proxy) لـ CAPI. تقبل أربعة أسماء أحداث، ومعرّف حدث، وخيارًا لمعرّف موضوع ومسار. ليس عنوان URL، وليس
user_dataعشوائيًا.
توجد إضافة مكملة لـ Google Analytics 4 مبنية بالطريقة نفسها.

