أين يتم وضع سكريبت الإعلان؟

من الصعب معالجة نقاطك دون سياق. سيكون من المفيد جدًا إذا قمت بتضمين تفاصيل أكثر حول شبكة الإعلانات التي تشير إليها وكيف بالضبط لم تعمل معك.

هذا ليس صحيحًا تمامًا ويعتمد حقًا على شبكة الإعلانات التي تحاول استخدامها. إذا كان شرطًا صارمًا أن يتم وضع سكريبت شبكة الإعلانات بجوار وسم </body> - وهو أمر غير مرجح - فإن المسؤولية تقع حقًا على عاتق شبكة الإعلانات بسبب هذا الشرط الصارم وغير المعقول.

تُستدعى السكريبتات المضافة في السمة ضمن ملف theme.js الذي يُحقن بعد ذلك في وسم <head> للمستند.

هذا يمنحنا درجة من التحكم ويسمح لنا بتنفيذ بعض الميزات المفيدة مثل منع السمات المعطلة من إسقاط الموقع بأكمله، على سبيل المثال.

هذا أيضًا صحيح جزئيًا فقط. يمكن للسمات تعديل أي شيء على جانب العميل. ما يعنيه ذلك هو أن أي شيء مكتوب بلغة JavaScript في Discourse يمكن الوصول إليه من قبل السمات.

في الواقع، يمكن تحويل إضافة الإعلانات الرسمية بالكامل إلى مكون سمة وستعمل. الشيء الوحيد الذي سيفتقده هو القدرة على إضافة ملف ads.txt لأن ذلك يتطلب الوصول إلى الخلفية. والسبب في أننا لم نفعل ذلك هو أن الإضافة هي تنفيذ أنظف لهذا الغرض - وتحديدًا لأنها تتضمن أكثر من موفر واحد. لذا نعم، للسمات قيود لكن هذا ليس النقطة الرئيسية هنا.

هناك ملاحظة مهمة جدًا هنا: Discourse هو تطبيق صفحة واحدة. هذا يعني أنه بمجرد تحميل التطبيق في عرض الصفحة الأولي، يتم التعامل مع جميع عمليات التنقل التي تحدث بعد ذلك بواسطة Discourse وليس المتصفح.

من المهم ملاحظة ذلك لأن شبكة الإعلانات يجب أن توفر الخطافات اللازمة لتطبيقات الصفحة الواحدة لتحديث معلومات الصفحة وعرض إعلانات جديدة. لا أعرف الكثير عن Adbutler أو Openx، لكنني لم أجد أي توثيق لدعم تطبيقات الصفحة الواحدة من قبل أي من الموفرين.

لذا، إذا لم توفر شبكة الإعلانات الخطافات اللازمة، فهل حقًا ذنب Discourse عدم دعمها؟

أنت لست مجبرًا حقًا على استخدام DFP. إنه مجرد واحد من ستة خيارات متاحة في إضافة الإعلانات الرسمية وسأذكرها هنا للرجوع إليها.

  1. DFP
  2. AdSense
  3. Google ads
  4. Amazon advertizing
  5. Codefund
  6. Carbon Ads

مرة أخرى، لأن Discourse هو تطبيق صفحة واحدة، فإن “عام” ببساطة لن يعمل.

بالتأكيد، يمكنك تحميل أي سكريبتات إعلانات تريدها في سمة، لكنها ستعمل فقط في عرض الصفحة الأولي. أي شيء يأتي بعد ذلك سيفوته سكريبت شبكة الإعلانات - ما لم توفر شبكة الإعلانات الخطافات اللازمة.

إليك كيف يبدو هذا التكامل على شبكة إعلانات تدعم تطبيقات الصفحة الواحدة.

https://github.com/discourse/discourse-adplugin/blob/master/assets/javascripts/discourse/components/google-dfp-ad.js.es6#L191-L230

في الواقع، تحتاج إلى وجود تطبيقات كود محددة لكل شبكة إعلانات.

أيضًا، أعتقد أنك تخلط بين الإعلانات الداخلية والإعلانات من شبكات الإعلانات. السبب في أن الصندوق مخصص لـ HTML فقط هو أنه يُفترض استخدامه لإنشاء إعلاناتك الداخلية الخاصة. إنه تنفيذ مباشر تم ربطه بالفعل في الإضافة حتى لا تضطر إلى التعقيد مع خطافات الصفحة الواحدة إذا كنت تريد فقط عرض إعلاناتك الخاصة.

علاوة على ذلك، إذا كنت ترغب حقًا في تضمين شبكة إعلانات أخرى في إضافة الإعلانات، فهناك سابقة لإضافة شبكات إعلانات جديدة بناءً على مساهمات المجتمع.

أحدث مثال على ذلك هو تكامل Carbon Ads

ومع ذلك، فإن عبء ربط كل شيء بشكل صحيح يقع عليك هنا.

إذا وجدت مثل هذا التنفيذ معقدًا جدًا، فهذا كل شيء. أنا كفؤ جدًا في تغيير الإطارات أو الزيت في سيارتي، لكن إذا احتجت إلى صيانة ناقل الحركة، فأنا ببساطة أجد شخصًا يعرف أكثر مني وأدفع له للقيام بذلك نيابةً عني.

ما أريد قوله هو أنه إذا كنت ترغب حقًا في استخدام شبكة إعلانات أخرى ولا يمكنك إنجاز ذلك بنفسك، فأقترح إنشاء موضوع في Marketplace وأنا متأكد من أنك ستحظى باهتمام مطور إذا كان لديك الميزانية المناسبة.