لسنا راضين عن أي من شبكات الإعلانات المدعومة من Discourse، لكننا وجدنا واحدة تعمل بشكل مثالي على مدونتنا ونود تطبيقها على منتدانا أيضًا. ومع ذلك، يتطلب الأمر نسخ كود ولصقه داخل HTML لموقعنا. أين بالضبط نقوم بذلك، وهل سيعمل؟
ما عليك سوى استخدام مكونات السمات للقيام بذلك
شكرًا لك، لكنني لست مطورًا. لا تتجاوز معرفتي إعداد سيرفر ديسكورد (استغرق مني ذلك أسبوع) وتغيير إعدادات الموقع.
ثم يمكنك البدء من هنا
هدفك هو إنشاء مكون سمة، وإضافة كود <script> إلى تبويب /head، وتفعيل مكون السمة في سمتك الرئيسية.
عند تفعيل مكون السمة، ستحتاج إلى إضافة عنوان URL الخاص بسكربتك إلى قائمة السماح باتباع هذا الدليل:
مرحبًا بك في النادي، نحن في نفس القارب. لكن، تنبيه سريع: لن يعمل هذا مع مكونات السمات (theme components)، لذا لن تنطبق الإجابة المقترحة. لقد سلكنا هذا المسار، كما فعل آخرون (راجع مواضيعنا حول هذا). مع مكونات السمات، لن يظهر سكريبت الإعلان في المكان المخصص له في الجسم (body). قد لا يكون الناقد الذي يقترح استخدام السكريبت في /head على دراية بكيفية تنفيذ سكريبتات الإعلان فعليًا. لقد جربنا مكونات السمات ولم نتمكن من ذلك بسبب القيود المفروضة على ما يمكن فعله مع هذه المكونات.
في النهاية، ستحتاج إلى إضافة (plugin) لتنفيذ ما تحتاجه لعرض وسم من شبكات إعلانية أخرى. للأسف، لا توجد إضافة لهذا الغرض حتى الآن. الأمل الوحيد هو أن تضيف منصة Discourse سكريبت إعلاني عام في إضافة الإعلانات لدعم السكريبتات الإعلانية التابعة لجهات خارجية التي تحتاج إلى حقنها في منطقة الإعلان. حاليًا، يمكنك استخدام Google DFP فقط تقريبًا، ولكن إذا استخدمت مزود إعلانات آخر، فستكون في ورطة ولن تتمكن من تحقيق الدخل من المنتدى. هذا أمر مؤسف لأن هناك العديد من شبكات الإعلانات الجيدة الأخرى (مثل Adbutler و Openx وما إلى ذلك)، ولا ينبغي إجبارك على استخدام Google DFP لعرض الإعلانات.
إذن، نأمل أن تضيف منصة Discourse سكريبت إعلاني عام إلى إضافة الإعلانات. لا أرى سببًا يجعل هذا صعبًا، لكن بصراحة، ليس لدي أي فكرة عن البرمجة بلغة Ruby و Ember، لذا لا أعرف كيفية القيام بذلك. نظريًا، كل ما يحتاجون إليه هو مربع نص (textarea) في الإضافة يقبل وسوم السكريبت ثم يقوم بحقنها في مناطق الإعلان التي حددتها الإضافة بالفعل. وجود مربع سكريبت عام، بدلاً من مربع يقبل فقط كود HTML مباشر، سيحل مشكلة كل شبكة إعلانية تقريبًا، دون الحاجة إلى تنفيذ كود محدد لكل شبكة إعلانية.
كاليب، بدافع الفضول، أي خدمة تستخدمها في مدونتك؟
من الصعب معالجة نقاطك دون سياق. سيكون من المفيد جدًا إذا قمت بتضمين تفاصيل أكثر حول شبكة الإعلانات التي تشير إليها وكيف بالضبط لم تعمل معك.
هذا ليس صحيحًا تمامًا ويعتمد حقًا على شبكة الإعلانات التي تحاول استخدامها. إذا كان شرطًا صارمًا أن يتم وضع سكريبت شبكة الإعلانات بجوار وسم </body> - وهو أمر غير مرجح - فإن المسؤولية تقع حقًا على عاتق شبكة الإعلانات بسبب هذا الشرط الصارم وغير المعقول.
تُستدعى السكريبتات المضافة في السمة ضمن ملف theme.js الذي يُحقن بعد ذلك في وسم <head> للمستند.
هذا يمنحنا درجة من التحكم ويسمح لنا بتنفيذ بعض الميزات المفيدة مثل منع السمات المعطلة من إسقاط الموقع بأكمله، على سبيل المثال.
هذا أيضًا صحيح جزئيًا فقط. يمكن للسمات تعديل أي شيء على جانب العميل. ما يعنيه ذلك هو أن أي شيء مكتوب بلغة JavaScript في Discourse يمكن الوصول إليه من قبل السمات.
في الواقع، يمكن تحويل إضافة الإعلانات الرسمية بالكامل إلى مكون سمة وستعمل. الشيء الوحيد الذي سيفتقده هو القدرة على إضافة ملف ads.txt لأن ذلك يتطلب الوصول إلى الخلفية. والسبب في أننا لم نفعل ذلك هو أن الإضافة هي تنفيذ أنظف لهذا الغرض - وتحديدًا لأنها تتضمن أكثر من موفر واحد. لذا نعم، للسمات قيود لكن هذا ليس النقطة الرئيسية هنا.
هناك ملاحظة مهمة جدًا هنا: Discourse هو تطبيق صفحة واحدة. هذا يعني أنه بمجرد تحميل التطبيق في عرض الصفحة الأولي، يتم التعامل مع جميع عمليات التنقل التي تحدث بعد ذلك بواسطة Discourse وليس المتصفح.
من المهم ملاحظة ذلك لأن شبكة الإعلانات يجب أن توفر الخطافات اللازمة لتطبيقات الصفحة الواحدة لتحديث معلومات الصفحة وعرض إعلانات جديدة. لا أعرف الكثير عن Adbutler أو Openx، لكنني لم أجد أي توثيق لدعم تطبيقات الصفحة الواحدة من قبل أي من الموفرين.
لذا، إذا لم توفر شبكة الإعلانات الخطافات اللازمة، فهل حقًا ذنب Discourse عدم دعمها؟
أنت لست مجبرًا حقًا على استخدام DFP. إنه مجرد واحد من ستة خيارات متاحة في إضافة الإعلانات الرسمية وسأذكرها هنا للرجوع إليها.
- DFP
- AdSense
- Google ads
- Amazon advertizing
- Codefund
- Carbon Ads
مرة أخرى، لأن Discourse هو تطبيق صفحة واحدة، فإن “عام” ببساطة لن يعمل.
بالتأكيد، يمكنك تحميل أي سكريبتات إعلانات تريدها في سمة، لكنها ستعمل فقط في عرض الصفحة الأولي. أي شيء يأتي بعد ذلك سيفوته سكريبت شبكة الإعلانات - ما لم توفر شبكة الإعلانات الخطافات اللازمة.
إليك كيف يبدو هذا التكامل على شبكة إعلانات تدعم تطبيقات الصفحة الواحدة.
في الواقع، تحتاج إلى وجود تطبيقات كود محددة لكل شبكة إعلانات.
أيضًا، أعتقد أنك تخلط بين الإعلانات الداخلية والإعلانات من شبكات الإعلانات. السبب في أن الصندوق مخصص لـ HTML فقط هو أنه يُفترض استخدامه لإنشاء إعلاناتك الداخلية الخاصة. إنه تنفيذ مباشر تم ربطه بالفعل في الإضافة حتى لا تضطر إلى التعقيد مع خطافات الصفحة الواحدة إذا كنت تريد فقط عرض إعلاناتك الخاصة.
علاوة على ذلك، إذا كنت ترغب حقًا في تضمين شبكة إعلانات أخرى في إضافة الإعلانات، فهناك سابقة لإضافة شبكات إعلانات جديدة بناءً على مساهمات المجتمع.
أحدث مثال على ذلك هو تكامل Carbon Ads
ومع ذلك، فإن عبء ربط كل شيء بشكل صحيح يقع عليك هنا.
إذا وجدت مثل هذا التنفيذ معقدًا جدًا، فهذا كل شيء. أنا كفؤ جدًا في تغيير الإطارات أو الزيت في سيارتي، لكن إذا احتجت إلى صيانة ناقل الحركة، فأنا ببساطة أجد شخصًا يعرف أكثر مني وأدفع له للقيام بذلك نيابةً عني.
ما أريد قوله هو أنه إذا كنت ترغب حقًا في استخدام شبكة إعلانات أخرى ولا يمكنك إنجاز ذلك بنفسك، فأقترح إنشاء موضوع في Marketplace وأنا متأكد من أنك ستحظى باهتمام مطور إذا كان لديك الميزانية المناسبة.
شكرًا لك على ردك المفصل ومساعدتك. هناك الكثير من المعلومات التي تحتاج إلى استيعابها.
لكن، أعتقد أن هناك سوء فهم هنا. AdButler هو نوع من خوادم الإعلانات (Ad Server)، يشبه Google DFP. تساعد هذه الموفرونك في إدارة إعلاناتك الخاصة مع المعلنين. أما أشياء مثل Adsense (وكذلك Carbon على ما يبدو) فهي شبكات إعلانية (Ad Networks). تعمل شبكات الإعلانات بطريقة مختلفة إلى حد ما عن خوادم الإعلانات. مشكلتنا تتعلق بخوادم الإعلانات وليس شبكات الإعلانات. نعتذر عن هذا الارتباك.
نحتاج إلى القدرة على تحقيق أرباح من موقعنا الإلكتروني للاستمرار في العمل، ولتحقيق ذلك نحتاج إلى استخدام خادم إعلانات لإدارة المعلنين. نستخدم Ad Butler لهذا الغرض. وظيفة الإعلانات الداخلية لا تقترب حتى من ما هو مطلوب. والخادم الوحيد الذي يدعمه ملحق الإعلانات من Discourse، حسب ما أستطيع استنتاجه، هو Google DFP. في رأيي، Google DFP سيء لعدة أسباب، غير ذات صلة بهذا النقاش. بالطبع، إذا اضطررنا لاستخدام Google DFP لأنه لا يوجد خادم إعلانات آخر مدعوم من ملحق الإعلانات، فسنفعل ذلك، لأن Discourse يوفر العديد من الفوائد الأخرى التي تفوق إلى حد ما مجرد إزعاج استخدام Google DFP.
أفهم تمامًا أن الأمر يعود إلينا لتطوير ملحق لخادم إعلانات آخر غير Google DFP، وأن Discourse لا يمكنه تلبية كل حاجة، خاصة أنه يقدم الكثير من الميزات الجاهزة التي هي ببساطة رائعة. لقد قدمنا هذا الطلب إلى السوق، وأخبرنا بعض المبرمجين ذوي الخبرة في Discourse أنه لا يمكن تنفيذه بدون ملحق، وأن العمل مكلف ويستغرق وقتًا طويلاً، مقارنة بمسألة تبدو بسيطة ظاهريًا.
أنت محق في أنني لا أعرف كيف يعمل Discourse بعد، حيث أننا في بداية رحلتنا معه ونتعلم Ruby و Ember. ومع ذلك، على سبيل المثال، في Wordpress، نقوم ببساطة بإدراج كود الإعلان من Ad Butler في صندوق الأدوات (Widget)، ويعمل مباشرة. لا يوجد أي برمجة مطلوبة. لذا فوجئت إلى حد ما بأن جعل شيء مثل Ad Butler يعمل مع Discourse يمثل كل هذا العناء. أدرك أن Discourse يختلف بوضوح عن Wordpress وهو أكثر تعقيدًا، لكنني لا أفهم بعد لماذا يتطلب شيء مثل هذا برمجة مكثفة إلى هذا الحد.
باختصار، سنواصل المحاولة وسنتصل بـ Ad Butler أنفسهم لنرى ما إذا كان بإمكانهم المساعدة. بالتأكيد سيكون من مصلحتهم المساعدة في تطوير شيء لـ Discourse، حيث قد يحصلون على العديد من العملاء من خلال ذلك (بمجرد استخدامك لـ Ad Butler لن تعود إلى DFP). كما سنلقِ نظرة على تكامل Carbon Ads ونحاول فهم كيفية عمله، ربما يمكننا تعديله ليناسب احتياجاتنا.
شكرًا لك مرة أخرى.
متابعة سريعة، لقد راجعت كود إعلانات Carbon في إضافة الإعلانات، ولدي فهم مفاهيمي لكيفية تنفيذ ذلك، لذا آمل أن نتمكن من استخدامه كنقطة انطلاق لتنفيذ Ad Butler. شكرًا لك على التنبيه بخصوص إعلانات Carbon.
مرحباً @sfoster، هل هناك أي أخبار بخصوص تكامل AdButler؟
لا. لقد تواصلنا مع بعض المبرمجين، لكن لم يقدم أحد لنا عرض سعر أو جدول زمني محدد حتى الآن. في ووردبريس، نقوم بإدراج الكود في أداة (widget) وينتهي الأمر. لقد فوجئنا بمدى تعقيد بعض عمليات البرمجة في ديسكورد. على أي حال، سنبحث قليلاً أكثر، لذا سأبقيك على اطلاع. لكننا نميل إلى الانتقال مباشرة إلى DFP، وهو مدعوم في إضافة النواة، حتى لو لم نكن سعداء حقاً بالاضطرار إلى القيام بذلك.