إدراج سكربت مخصص بعد الهيدر

مرحبًا يا رفاق،

أنا أستخدم بالفعل إضافة الإعلانات الرسمية الخاصة بـ Discourse وهي تعمل بشكل جيد وتعرض الإعلانات على موقعي. لكن السؤال هو: ماذا لو أراد شخص ما وضع سكريبت مخصص أو إعلان لا يندرج ضمن الإعلانات المدمجة في Discourse؟

حاولت الدخول إلى تخصيص → المظهر → تحرير HTML/CSS → بعد الرأس (after header). قمت بلصق كتلة السكريبت هذه هناك وأعدت تحميل موقعي، لكنني لم أرَ الإعلان. في الواقع، المرة الوحيدة التي أرى فيها الإعلان هي عندما أضعه بين وسوم و، مما يتسبب في ظهوره في أسفل الصفحة تمامًا. أما موضع “بعد الرأس” فهو الأفضل، لكنه لا يعمل. تجدر الإشارة إلى أن هذا السكريبت يحتوي على الخاصية async.

أعني، لماذا نحتاج إلى إضافة معقدة لمجرد نسخ ولصق كتلة HTML؟ حتى جوجل تمنحك سكريبتهم ويمكنك ببساطة نسخه ولصقه بعد الرأس. هذا ما يفعله الناس عادةً للمواقع، لكنه لا يبدو أنه يعمل مع Discourse لأن شيئًا ما يحجب السكريبت. الأمر ليس بسبب سياسة المحتوى الآمن (CSP) لأنني أضفت بالفعل https: وinline-code كمرشحات، وهو ما يجب أن يسمح بأي JavaScript يبدأ بـ “https”. إليك مثال على إعلان من جوجل:

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Ad 1 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-3368174556925488"
     data-ad-slot="4362547659"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

حاول جعل الكود أعلاه يعمل يدويًا دون استخدام إضافة AdSense، وضعه في المظهر بعد الرأس.

#plugin:advertising

تحديث: يبدو أن الإجابة كانت “إعلانات المنزل” (House Ads). ومع ذلك، حتى عند وضع بعض السكريبتات في إعلانات المنزل، لا تظهر هذه الإعلانات، مما يعني أن Discourse يحجب شيئًا ما؛ لأنه إذا نشرت نفس السكريبت في أي صفحة HTML، فسيظهر.

يمكنك تجربة ذلك الآن باستخدام مكون السمة. هل جربت ذلك؟

تلميح: لن يتم تحديث الإعلانات لأن Discourse هو تطبيق صفحة واحدة. إذا كانت Google AdSense قد تغيرت ويمكنها الآن تحديث الإعلانات تلقائيًا دون استخدام adsbygoogle.push({})، فهذا خبر جديد بالنسبة لي.

في الواقع، لقد انتهى بي الأمر باستخدام iframe. لقد وضعت iframe داخل إعلانات المنزل (House Ads) وقد نجح ذلك. تتحدّث إعلانات Google Adsense عند تحديث الصفحة.

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

إلا أن Google لن تتعرف على موضوع منتداك وستقدم لزوارك إعلانات أقل صلة بكثير، مما سيؤدي إلى انهيار إيراداتك تمامًا.

لن يحدث ذلك إذا انتقلت ببساطة إلى صفحة أخرى.

يرجى تقديم مرجع لهذا البيان.

يجب ألا يكون هناك فرق سواء كانت الإعلانات تُعرض عبر وسم IFRAME أو وسم SCRIPT بالنسبة لجوجل أدسنس وروبوتات الإعلانات الأخرى التي تقوم بزحف الموقع للحصول على السياق.

أتطلع حقًا إلى قراءة بعض المراجع الخاصة بمطوري جوجل!

شكرًا لك.

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

نعم، لكن هذا مجرد تفصيل دقيق وليس الصورة الكاملة لكيفية إنشاء سياق الإعلانات.

جميع المواقع التي تعمل بإعلانات Google AdSense يتم زيارتها بواسطة برنامج الزحف الخاص بـ Google Adsense، وبالتالي تقوم خوادم Google بعرض الإعلانات بما يتناسب مع موقع الويب بناءً على برنامج الزحف الذي يزور الموقع.

وهذا يعني أن موقعًا تقنيًا يناقش Ruby on Rails، سيُعرض عليه إعلانات ذات صلة بهذا السياق (إذا كانت متوفرة) على مستوى الموقع.

ومع ذلك، على مستوى الصفحة، توجد بالتأكيد مشكلة تتعلق بالسياق في وسوم IFRAME المتداخلة.

ليست جميع وسوم الإعلانات المعروضة في وسوم IFRAME متداخلة.

إليك مثال على وسوم IFRAME متداخلة:

<iframe src="http://www.w3schools.com" width="1000" height="1000" id="frame1" name="frame1">
   <iframe width="200" height="200" src="http://www.bing.com" id="frame2" name="frame2">
   </iframe>
</iframe>

شخصيًا، نادرًا ما رأيت هذا يحدث عمليًا، بصراحة؛ وعندما نتحقق من ذلك (وهو ما قمنا به مرات عديدة على مدار 15 عامًا تقريبًا)، فإن المرة الوحيدة التي لاحظنا فيها هذه المشكلة كانت مع وسوم الإرجاع (passback tags).

أتمنى أن يكون هذا مفيدًا.

أردت مرجعًا. هذا ليس ما يقصده بـ ‘متداخل’. يتضح ذلك من عنوان الفقرة “كيف يمكنني عرض إعلان AdSense داخل إطار مضمن (iFrame)؟”. كان استخدام إطار مضمن (iframe) حتى في الماضي انتهاكًا للسياسة.

لقد جربت كل حيلة ممكنة مع Adsense منذ عام 2007، وكنتُ من كتبت إضافة Discourse Adsense الأولى مع @michaeld.

أعتقد أن لدينا تجارب مختلفة. من الجيد سماع أنك تمكنت من تجاوز ذلك. أما لأي شخص آخر يرغب في تجربتها: فلن أكون هنا لأجفف دموعك.

حسنًا، بصراحة، قمنا بتقديم أكثر من مليار إعلان خلال العقد الماضي، ولم نستخدم إعلانات أدسنس مباشرة منذ سنوات عديدة (لا نحب أدسنس لأسباب عديدة)، لذا دعونا ننظر إلى “تقديم الإعلانات” من منظور عام، من زاوية ما يحدث حاليًا في مجال الإعلان الظاهري.

السياق (الصلة)

معظم شبكات الإعلانات التي تقدم إعلانات الشراء المباشر، مثل IDN Technet أو غيرها من شبكات الإعلانات القائمة على السياق، لا تقوم بفحص المواقع بحثًا عن المحتوى. بل يقومون بتسويق الموقع لمشترِي الإعلانات، ويقولون مثلًا: “مرحبًا، هذا هو موقع Discourse Meta ويحتوي على محتوى رائع لكل ما يتعلق بتطوير التكنولوجيا، وRuby، وJavaScript وما إلى ذلك”. نوصي بهم بشدة.

ثم يقدمون للمُصدر مدخلاً في ملف ads.txt، ويقومون بتقديم الإعلانات للمصدر من شبكتهم الإعلانية بناءً على فئة الموقع والفرعيّات، وليس من خلال الزحف (مثل زحف أدسنس).

هذه هي القاعدة في أيامنا هذه، وليست الاستثناء.

ينطبق الشيء نفسه على محتوى الفيديو والإعلانات القائمة على الفيديو. يبيع شريك الفيديو الخاص بنا إعلانات لموقعنا بناءً على سياق الموقع، في كتيب، وليس بناءً على “روبوت زحف” يبحث عن السياق.

في الواقع، لم نقدم إعلانات لسنوات من أي شبكة إعلانية تعتمد على الزحف لتصنيف الموقع؛ خاصةً لعلامات التمرير الخلفي (passback tags). تعمل علامات التمرير الخلفي دائمًا بشكل أفضل عندما يكون السياق مُشفّرًا بشكل ثابت في الشبكة الإعلانية، بدلاً من استنتاجه من خلال زحف يقوم بالتصنيف.

التمرير الخلفي (Passbacks)

من الصعب دائمًا الحصول على سياق ذي صلة من إعلانات التمرير الخلفي (العلامات).

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

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

أدسنس (AdSense)

استخدمنا أدسنس ربما قبل 15 إلى 10 سنوات، وخلال العقد الماضي لا أستطيع تذكر متى قدمنا أدسنس مباشرة. في رأيي، أدسنس ليس وسيلة رائعة لتوليد الإيرادات.

يقوم أدسنس بتطوير السياق من خلال الزحف الخاص به، لذا بشكل عام، إذا لم تكن علامتك عبارة عن علامة IFRAME متداخلة (علامة تمرير خلفي IFRAME داخل علامة iFRAME)، فستكون الأمور على ما يرام مع علامات IFRAME.

بعض مزايا علامات IFRAME

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

  • تطبق إطارات IFRAME سياسة أصل المجال المتقاطع، مما قد يكون مفيدًا لجلب المواقع/المحتوى/الإعلانات من أسماء نطاقات أخرى، وهي أيضًا آمنة نسبيًا، ولهذا السبب تعتمد معظم حلول الإعلان على الويب على إطارات IFRAME.

  • إذا كان المحتوى يجب تحميله أولاً ثم الإعلانات، فيمكن القيام بذلك باستخدام IFRAME.

  • يساعد IFRAME في تحسين الأداء.

  • يتم تحميل IFRAME بشكل مستقل عن المكونات الأخرى في الصفحة.

  • إذا كان المستخدم قد عطل JavaScript، فستعمل إطارات IFRAME.

  • تحتوي علامة iframe على سمات "height" و"width"، مما يسمح للمصمم بمرونة كبيرة في الأبعاد والتنسيقات مثل 300×250، 728×90 اعتمادًا على حجم الإعلان.

  • يمكن أن تظهر علامة IFRAME في أي مكان في الصفحة، ويمكن إضافة عدة إطارات IFRAME إذا رغبنا في ذلك.

بعض عيوب علامات IFRAME

  • قد تسبب علامات IFRAME مشاكل في إمكانية الوصول.

  • لا تدعم جميع المتصفحات علامات IFRAME، وقد تعرضها بشكل غير صحيح أو حتى تظهر فارغة.

  • أحد الأسباب الرئيسية لاستخدام IFRAME في الإعلان على الويب هو الأمان في دعم المجال المتقاطع، لكن الأداء ليس مثاليًا.

  • لا يمكن رؤية إطارات IFRAME من قبل العديد من الأجهزة المحمولة.

  • من المعروف أن إطارات IFRAME تقلل من تحسين محركات البحث (SEO) في بعض الأحيان.

مزايا وعيوب علامات JS:

  • يمكن إضافة هذا لاحقًا إذا كان أي شخص مهتمًا.

العرض والطلب

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

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

Discourse والزحف

لا تقدم Discourse صفحة التطبيق أحادي الصفحة (SPA) للزوار، مما يعني أن روبوتات الإعلانات لن ترى أيضًا صفحة SPA، ولم يتم تحليل جميع الآثار المترتبة على ذلك “بشكل موضوعي من طرف ثالث” (من قبل طرف ثالث مستقل)، حسب علمي.

ملخص

أعتقد أن الغالبية العظمى من مستخدمي Discourse الجدد الذين يستخدمون Discourse كصفحة تطبيق أحادية الصفحة (Javascript SPA) لن يحققوا إيرادات كبيرة من شبكات الإيرادات الإعلانية الظاهرة (مثل أدسنس). وهذا صحيح بشكل خاص في عام 2020 حيث أصبحت ميزانيات المعلنين أصغر بكثير بسبب الوباء. بالإضافة إلى ذلك، فإن العرض مرتفع والطلب منخفض.

إذا كنت تشغل إعلانات ظاهرة، فستواجه مشاكل في جميع صفحات SPA بسبب كيفية “عدم إعادة تحميل” الصفحات، وهذه مشكلة تتعلق بعلامات JS وعلامات IFRAME؛ هناك حاجة إلى كود إضافات أفضل لصفحات SPA لتحسين جميع أنواع العلامات التابعة لطرف ثالث.

الخاتمة

لم نقدم أدسنس منذ سنوات عديدة وليس لدينا خطط للقيام بذلك في المستقبل؛ لذا فإن النقطة المتعلقة بكيفية اكتساب أدسنس للسياق غير ذات صلة بنا. بالنسبة للآخرين، من الأفضل تشغيل علامات IFRAME تعمل بشكل جيد بدلاً من تمزيق شعرك في محاولة لمحاربة مشاكل صفحة SPA عند تقديم علامات سكريبت تابعة لطرف ثالث وصداع CORS، حسب رأيي.

زحف قبل أن تمشي. امشِ قبل أن تركض.

أتمنى أن يكون هذا مفيدًا.

اعتنِ بنفسك.


ملاحظة جانبية: آسف على أي أخطاء إملائية، زوجتي تنتظرني عند الباب ونريد الذهاب للتسوق قبل أن تمطر!

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

سؤالي يتعلق بإعلان تابع ثابت سيكون دائمًا هو نفسه. لذا، أردت استخدام إعلانات “House” المصممة لهذا الغرض. ومع ذلك، فهي تحدّني من حيث الموقع الذي يمكنني وضع وحدة الإعلان فيه.

حاليًا، لقد استخدمت فقط إطارًا مدمجًا (iframe) ووضعتُه في تذييل قالب HTML الخاص بي، وهو يعمل بشكل ممتاز. المشكلة الوحيدة مع هذا هي أن الإطار المدمج سيظهر لجميع مجموعات المستخدمين، حتى أولئك الذين يتمتعون بمستوى ثقة عالٍ، بينما كان بإمكاني سابقًا اختيار عدم عرض وحدات الإعلان للمستخدمين الذين لديهم مستوى ثقة 3 أو أعلى من خلال مدير الإعلانات في Discourse.