Insertion d'un script personnalisé après l'en-tête

Salut à tous,

J’ai déjà le plugin officiel de publicité Discourse qui fonctionne chez moi et qui affiche des publicités sur mon site. La question est : que se passe-t-il si quelqu’un souhaite placer un script ou une publicité personnalisé qui ne fait pas partie de celles intégrées à Discourse ?

J’ai essayé d’aller dans Personnaliser > Thème > Modifier HTML/CSS > Après l’en-tête. J’ai collé ce bloc de script là, puis j’ai rechargé mon site, mais je ne le vois pas. En fait, la seule fois où je peux le voir, c’est si je le place dans , ce qui fait que la publicité apparaît tout en bas de la page. Cependant, la position « Après l’en-tête » est la meilleure, et elle ne se charge pas. Notez qu’il y a l’attribut async dans ce script.

Je veux dire, pourquoi avons-nous besoin d’un plugin compliqué pour simplement copier-coller un bloc HTML ? Même Google vous fournit leur script et vous pouvez simplement le copier-coller après l’en-tête. C’est ce que les gens font habituellement pour les sites web, mais cela ne semble pas fonctionner avec Discourse car quelque chose bloque le script. Ce n’est pas la CSP, car j’ai déjà https: et inline-code comme filtres, ce qui devrait autoriser tout JS commençant par « https ». Voici une publicité Google :

<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>

Essayez de faire fonctionner le code ci-dessus manuellement sans utiliser le plugin Adsense et placez-le dans le thème après l’en-tête.

#plugin:advertising

Mise à jour : Apparemment, la réponse était les publicités internes (House Ads). Cependant, même lorsque je publie certains scripts dans les publicités internes, ces publicités ne s’affichent pas, ce qui signifie que Discourse bloque quelque chose, car si je publie le même script sur n’importe quelle page HTML, il s’affiche.

Vous pouvez désormais essayer cela en utilisant un composant de thème. L’avez-vous déjà essayé ?

Spoiler : les publicités ne se rafraîchiront pas car Discourse est une application monopage. Si AdSense a changé et peut désormais rafraîchir automatiquement les publicités sans utiliser adsbygoogle.push({}), c’est une nouvelle pour moi.

En fait, j’ai simplement fini par utiliser une iframe. J’ai intégré une iframe dans les annonces maison et cela a fonctionné. Les annonces de Google Adsense se mettent à jour si vous actualisez la page.

Le seul inconvénient est que si je souhaite placer une annonce d’affiliation issue des annonces maison en bas de page, il n’existe aucune option pour le faire. Je ne peux les placer qu’en haut de la liste des sujets ou entre deux. Ce serait bien d’ajouter également l’option en bas, ce qui nous offrirait plus de liberté.

Sauf que Google ne reconnaîtra pas le sujet de votre forum et affichera à vos visiteurs des publicités beaucoup moins pertinentes, ce qui ruinera complètement vos revenus.

Elles ne le feront pas si vous vous contentez de naviguer vers une autre page.

Veuillez fournir une référence pour cette affirmation.

Cela ne devrait faire aucune différence que les publicités soient servies via une balise IFRAME ou une balise SCRIPT pour que Google AdSense et autres robots publicitaires puissent crawler le site pour en comprendre le contexte.

J’ai hâte de lire quelques références de développeurs de Google à ce sujet, c’est certain !

Merci.

Lorsqu’une publicité AdSense est affichée dans une iframe imbriquée, les fonctionnalités de sécurité du navigateur empêchent la publicité de détecter l’URL ou le domaine de la page à utiliser pour le ciblage. Par conséquent, la publicité la plus pertinente n’est pas diffusée et les revenus publicitaires sont inférieurs à ce qu’ils pourraient être.

Oui, mais cela n’est qu’une nuance, et non l’ensemble du tableau de la création du contexte publicitaire.

Tous les sites qui diffusent des annonces AdSense sont explorés par le robot d’exploration Google Adsense, de sorte que les serveurs de Google diffusent des annonces en contexte par rapport au site, sur la base du robot qui explore le site.

Cela signifie qu’un site technique discutant de Ruby on Rails reçoit des annonces pertinentes pour ce contexte (si disponibles) au niveau du site.

Cependant, au niveau de la page, il y a bien sûr un problème de contexte avec les balises IFRAME imbriquées.

Toutes les balises publicitaires diffusées dans des balises IFRAME ne sont pas imbriquées.

Voici un exemple de balises IFRAME imbriquées :

<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>

Personnellement, j’ai rarement vu cela se produire dans la pratique, pour être honnête ; et lorsque nous l’avons vérifié (ce que nous avons fait de nombreuses fois au cours des 15 dernières années environ), la seule fois où nous avons constaté ce problème concernait les balises de rappel (passback).

J’espère que cela vous sera utile.

Vous vouliez une référence. Ce n’est pas ce qu’ils entendaient par « imbriqué ». Cela ressort clairement du titre du paragraphe « Comment puis-je afficher une publicité AdSense dans une iframe ? ». L’utilisation d’une iframe constituait même autrefois une violation des règles.

J’ai essayé toutes les astuces possibles avec AdSense depuis 2007 et j’ai écrit le premier plugin Discourse AdSense avec @michaeld.

Je suppose que nous avons tous les deux des expériences différentes. C’est bien de savoir que vous avez réussi à vous en sortir. Pour toute autre personne souhaitant essayer : je ne serai pas là pour essuyer vos larmes.

Bon, pour être franc, nous avons diffusé plus d’un milliard de publicités au cours de la dernière décennie, et nous ne servons plus directement d’AdSense depuis de nombreuses années (nous n’aimons pas AdSense pour de nombreuses raisons). Examinons donc cette « diffusion publicitaire » d’un point de vue global, du point de vue de ce qui se passe actuellement dans la publicité d’affichage.

Contexte (Pertinence)

La plupart des réseaux publicitaires qui diffusent des publicités achetées directement, comme par exemple IDN Technet, ou d’autres réseaux publicitaires basés sur le contexte, ne crawlent pas les sites pour en extraire le contenu. Ils commercialisent le site auprès de leurs acheteurs de publicités et disent, par exemple : « Hé, voici Discourse meta et ils ont d’excellents contenus sur tous les sujets liés au développement tech, Ruby, JavaScript, etc. ». Nous les recommandons vivement.

Ensuite, ils fournissent au éditeur une entrée ads.txt ces jours-ci, et ils diffusent des publicités à l’éditeur depuis leur réseau publicitaire en fonction de la catégorie du site et des sous-catégories, pas via un crawler (comme le crawler d’AdSense).

C’est la règle aujourd’hui, et non l’exception.

Il en va de même pour le contenu vidéo et les publicités basées sur la vidéo. Notre partenaire vidéo vend des publicités pour notre site en fonction du contexte du site, dans une brochure, et non sur la base d’un « robot de crawl » cherchant un contexte.

En fait, nous ne diffusons plus de publicités depuis des années via aucun réseau publicitaire qui dépend d’un crawler pour classer un site ; en particulier pour les balises de rappel (passback). Les balises de rappel fonctionnent toujours mieux lorsque le contexte est codé en dur dans le réseau publicitaire, plutôt que dérivé d’un crawler effectuant une classification.

Balises de rappel (Passbacks)

Il est toujours difficile d’obtenir un contexte pertinent à partir des publicités de rappel (balises).

Mon expérience, en tant qu’éditeur ayant diffusé plus d’un milliard de publicités d’affichage au fil des ans, est de ne pas utiliser un réseau publicitaire qui développe un contexte à partir d’un crawler pour les réseaux de publicités de rappel.

Il est préférable, selon mon expérience de la publication de publicités au cours de la dernière décennie, d’utiliser des balises de rappel basées sur un contexte codé en dur. Par exemple, si j’ai un site tech et que je souhaite diffuser des rappels vers l’Inde, j’utiliserai des balises de rappel d’intérêt tech pour les techniciens indiens.

AdSense

Nous avons utilisé AdSense il y a peut-être 10 à 15 ans, et au cours de la dernière décennie, je ne me souviens plus d’avoir servi AdSense directement. À mon avis, AdSense n’est pas vraiment un excellent moyen de générer des revenus.

AdSense développe un contexte à partir de son crawler, donc en général, si votre balise n’est pas une balise IFRAME imbriquée (une balise de rappel IFRAME dans une balise IFRAME), vous serez bien avec des balises IFRAME.

Quelques avantages des balises IFRAME

  • Le navigateur alloue un certain espace pour une frame inline à l’avance et en tient compte lors du rendu du document.

  • Les iframes implémentent la politique de sécurité d’origine croisée, ce qui peut être utile pour intégrer des sites / du contenu / des publicités provenant d’autres noms de domaine, et elles sont également relativement sûres. C’est pourquoi la plupart des solutions de publicité web sont basées sur des iframes.

  • Si le contenu doit être chargé en premier, puis les publicités, cela peut être fait en utilisant une iframe.

  • L’iframe aide à améliorer les performances.

  • L’iframe se charge indépendamment des autres composants de la page.

  • Si un utilisateur a désactivé JavaScript, les iframes fonctionneront.

  • Une balise iframe possède des attributs “height” et “width,” ce qui permet au concepteur une grande latitude en termes de dimensions et de format, comme 300×250, 728×90, selon la taille de la publicité.

  • Une balise iframe peut apparaître n’importe où sur la page, et plusieurs iframes peuvent être ajoutées si souhaité.

Quelques inconvénients des balises IFRAME

  • Les balises iframe peuvent causer des problèmes d’accessibilité.

  • Les balises iframe ne sont pas prises en charge par tous les navigateurs et peuvent les afficher incorrectement, voire afficher un espace vide.

  • Une raison clé pour l’utilisation de l’iframe dans la publicité web est la sécurité dans le support de domaine croisé, mais les performances ne sont pas parfaites.

  • Les iframes ne peuvent pas être vues par de nombreux appareils mobiles.

  • Les iframes sont connues pour parfois nuire au référencement (SEO).

Avantages et inconvénients des balises JS :

  • À ajouter plus tard si quelqu’un est intéressé.

Offre et demande

Nous sommes en 2020. Le nombre de sites web fournissant des publicités aux annonceurs a augmenté de façon exponentielle depuis 2000. L’offre de publicités a largement dépassé la demande. Cela signifie que pour la plupart des sites, ceux qui parlent ici de configurer des publicités sur Discourse, il est peu probable qu’ils obtiennent un trafic publicitaire premium, sauf s’ils ont une forte demande et un public de niche bien établi.

Chaque technicien et sa sœur peuvent publier des publicités sur leurs blogs et forums en 2020, et ils le font. Cela signifie que l’offre continuera de dépasser la demande de publicités d’affichage dans le futur. La plupart des sites de niche auront du mal à générer des revenus publicitaires à partir d’un nouveau site jusqu’à ce qu’ils soient bien établis.

Discourse et les crawlers

Discourse ne sert pas la SPA aux crawlers, ce qui signifie que les crawlers d’adbot ne verront pas non plus la SPA, et toutes les implications de cela n’ont pas été « analysées objectivement par un tiers », à ma connaissance.

Résumé

Je pense que la grande majorité des nouveaux utilisateurs de Discourse exécutant Discourse en tant que SPA JavaScript ne généreront pas de revenus importants grâce aux réseaux de publicité d’affichage (comme AdSense). Cela est particulièrement vrai en 2020, où les budgets publicitaires des annonceurs sont beaucoup plus faibles en raison de la pandémie. De plus, l’offre est élevée et la demande est faible.

Si vous diffusez des publicités d’affichage, vous aurez des problèmes sur toutes les SPA en raison du fait que les pages « ne se rechargent pas », et c’est un problème avec les balises JS et les balises IFRAME ; il faut un meilleur code de plugin pour les SPA afin d’optimiser tous les types de balises tierces.

Conclusion

Nous ne servons plus AdSense depuis de nombreuses années et n’avons pas l’intention de le faire à l’avenir ; donc, la question de savoir comment AdSense obtient un contexte est oiseuse pour nous. Pour les autres, il vaut mieux exécuter des balises IFRAME fonctionnelles que de s’arracher les cheveux en essayant de lutter contre les problèmes de SPA liés à la diffusion de balises de scripts tiers et aux maux de tête CORS, à mon avis.

Rampez avant de marcher. Marchez avant de courir.

J’espère que cela aide.

Prenez soin de vous.


PS : Désolé pour les éventuelles fautes de frappe, ma femme m’attend à la porte et veut aller faire du shopping avant qu’il ne pleuve !

Ce n’est pas pour Google. Comme discuté précédemment, il s’agit d’unités publicitaires d’affiliation qui ne sont pas de Google, Amazon, etc. Pour Google, j’utilise déjà le plugin Adsense intégré. Mes publicités Google fonctionnent déjà et adaptent le sujet de la publicité à mes visiteurs. De plus, je peux contrôler le genre de la publicité via Adsense.

Ma question concerne une publicité d’affiliation statique qui sera toujours la même. Par conséquent, je voulais utiliser les publicités internes (House ads), qui sont conçues à cet effet. Cependant, cela me limite en termes de position pour placer cette unité publicitaire.

Actuellement, j’ai simplement utilisé une iframe et l’ai placée dans le pied de page du HTML de mon thème, ce qui fonctionne très bien. Le seul problème avec cela est que l’iframe s’affichera pour tous les groupes d’utilisateurs, y compris ceux avec un niveau de confiance élevé, alors qu’auparavant, je pouvais choisir de ne pas afficher les unités publicitaires aux utilisateurs avec un niveau de confiance de 3 ou plus via le gestionnaire de publicités dans Discourse.