Nous ne sommes pas satisfaits des réseaux publicitaires pris en charge par Discourse, mais nous en avons trouvé un qui fonctionne parfaitement sur notre blog et nous aimerions l’implémenter sur notre forum également. Cependant, cela nécessite que nous copions un code et le collions dans le HTML de notre site. Où exactement devons-nous le faire et cela fonctionnera-t-il ?
Utilisez simplement les composants de thème pour cela
Merci, mais je ne suis pas développeur. Mes connaissances ne vont pas au-delà de la configuration d’un serveur Discord (ce qui m’a pris une semaine) et de la modification des paramètres du site.
Ensuite, vous pouvez commencer par ici
Votre objectif est de créer un composant de thème, d’ajouter le <script> de publicité dans l’onglet /head et d’activer le composant de thème dans votre thème principal.
Lorsque votre composant de thème sera activé, vous devrez autoriser l’URL de votre script en suivant ce guide :
Bienvenue dans le club, nous sommes tous dans le même bateau. Cependant, petite mise en garde : cela ne fonctionnera pas avec les composants de thème, donc la réponse suggérée ne sera pas applicable. Nous avons emprunté cette voie, tout comme d’autres (voir nos sujets à ce sujet). Avec les composants de thème, le script publicitaire ne s’affiche pas dans le corps de la page là où il est censé apparaître. Le commentateur qui suggère d’insérer le script dans la section /head n’est peut-être pas familier avec la manière dont les scripts publicitaires doivent réellement être implémentés. Nous avons essayé les composants de thème mais n’avons pas pu y parvenir en raison des limitations inhérentes à ce type de composants.
En définitive, vous aurez besoin d’un plugin pour afficher les balises provenant d’autres réseaux publicitaires. Malheureusement, aucun plugin n’existe encore pour cela. La seule espérance réside dans le fait que Discourse ajoute un script publicitaire générique dans le plugin Ads afin de prendre en charge les scripts publicitaires tiers qui doivent être injectés dans la zone dédiée aux annonces. Pour l’instant, vous ne pouvez pratiquement utiliser que Google DFP, mais si vous optez pour un autre fournisseur publicitaire, vous êtes coincé et ne pouvez pas monétiser votre forum. C’est regrettable car il existe de nombreux autres réseaux publicitaires de qualité (par exemple Adbutler, Openx, etc.), et vous ne devriez pas être contraint d’utiliser Google DFP pour diffuser des annonces.
Espérons donc que Discourse ajoutera un script publicitaire générique au plugin Ads. Je ne vois pas particulièrement pourquoi cela serait difficile à réaliser, mais honnêtement, je ne sais pas programmer en Ruby ni en Ember, donc je ne suis pas sûr de la manière de procéder. En théorie, tout ce dont ils ont besoin, c’est d’une zone de texte dans le plugin permettant d’accepter des balises script, puis d’injecter ces dernières dans les zones publicitaires déjà désignées par le plugin. Disposer d’une boîte générique pour les scripts, plutôt que d’une boîte n’acceptant que du HTML brut, permettrait de prendre en charge pratiquement tous les réseaux publicitaires, sans avoir besoin d’implémenter un code spécifique pour chacun d’eux.
Caleb, par curiosité, quel service utilises-tu sur ton blog ?
Il est un peu difficile de répondre à vos points sans contexte. Il serait très utile si vous pouviez inclure plus de détails sur le réseau publicitaire auquel vous faites référence et sur la manière exacte dont il ne vous a pas convenu.
Ce n’est pas tout à fait vrai et cela dépend vraiment du réseau publicitaire que vous essayez d’utiliser. Si c’est une exigence stricte que le script du réseau publicitaire soit placé à côté de la balise </body> – ce qui est peu probable – alors c’est vraiment la faute du réseau publicitaire d’avoir une exigence aussi stricte et déraisonnable.
Les scripts ajoutés dans un thème sont intégrés dans un fichier theme.js qui est ensuite injecté dans la balise <head> du document.
Cela nous donne un certain niveau de contrôle et nous permet de mettre en œuvre des fonctionnalités utiles, comme empêcher les thèmes défectueux de faire tomber l’ensemble du site, par exemple.
Ceci n’est également vrai que partiellement. Les thèmes peuvent modifier n’importe quoi côté client. Cela signifie que tout ce qui est écrit en JavaScript dans Discourse est accessible par les thèmes.
En fait, tout le plugin publicitaire officiel peut être converti en un composant de thème et cela fonctionnerait. La seule chose qui manquerait serait la possibilité d’ajouter un fichier ads.txt, car cela nécessiterait un accès au back-end. La raison pour laquelle nous ne l’avons pas fait est qu’un plugin est une implémentation plus propre pour cet objectif – notamment parce qu’il inclut plus d’un fournisseur. Donc oui, les thèmes ont des limitations, mais ce n’est pas vraiment le point principal ici.
Il y a une note très importante ici : Discourse est une application monopage (single-page application). Cela signifie que, une fois que vous chargez l’application lors de la première vue de la page, toute la navigation qui se produit après cela est gérée par Discourse et non par votre navigateur.
C’est important à noter car un réseau publicitaire doit fournir les crochets (hooks) nécessaires pour que les applications monopages puissent mettre à jour les informations de la page et diffuser de nouvelles publicités. Je ne connais pas grand-chose à Adbutler ou Openx, mais je n’ai trouvé aucune documentation sur le support des applications monopages par l’un ou l’autre de ces fournisseurs.
Donc, si le réseau publicitaire ne fournit pas les crochets nécessaires, est-ce vraiment la faute de Discourse qu’il ne soit pas pris en charge ?
Vous n’êtes pas vraiment obligé d’utiliser DFP. Ce n’est que l’une des six options disponibles dans le plugin publicitaire officiel, et je les énumère ici pour référence.
- DFP
- AdSense
- Google ads
- Amazon advertising
- Codefund
- Carbon Ads
Encore une fois, parce que Discourse est une application monopage, le terme “générique” ne fonctionnera tout simplement pas.
Bien sûr, vous pouvez charger n’importe quels scripts publicitaires que vous voulez dans un thème, mais ils ne se déclencheront que lors de la première vue de la page. Tout ce qui suit sera manqué par le script du réseau publicitaire – sauf si le réseau publicitaire fournit les crochets nécessaires.
Voici à quoi ressemble une telle intégration sur un réseau publicitaire qui prend en charge les applications monopages.
Vous avez en réalité besoin d’implémentations de code spécifiques pour chaque réseau publicitaire.
De plus, je pense que vous confondez les publicités internes (house ads) avec les publicités provenant de réseaux publicitaires. La raison pour laquelle la boîte accepte uniquement du HTML est que vous êtes censé l’utiliser pour créer vos propres publicités internes. C’est une implémentation très simple qui est déjà configurée dans le plugin afin que vous n’ayez pas à vous soucier des crochets monopages si vous souhaitez simplement diffuser vos propres publicités.
En outre, si vous souhaitez vraiment qu’un autre réseau publicitaire soit inclus dans le plugin publicitaire, il existe un précédent pour l’ajout de nouveaux réseaux publicitaires basés sur des contributions de la communauté.
L’exemple le plus récent étant l’intégration de Carbon Ads :
Cependant, la charge de tout configurer correctement vous incombe ici.
Si vous trouvez une telle implémentation trop compliquée, alors c’est comme ça. Je suis très compétent pour changer les pneus ou l’huile de ma voiture, mais si je dois faire l’entretien de la transmission, je trouve simplement quelqu’un qui en sait plus que moi et je le paie pour le faire à ma place.
Ce que je veux dire, c’est que si vous voulez vraiment utiliser un autre réseau publicitaire et que vous n’arrivez pas à le faire vous-même, je vous suggère de créer un sujet dans Marketplace et je suis sûr que vous attirerez l’attention d’un développeur si vous avez le bon budget.
Merci pour votre réponse détaillée et votre aide. Il y a beaucoup d’éléments à assimiler ici.
Cependant, je pense qu’il y a un malentendu. AdButler est un type de serveur publicitaire, similaire à Google DFP. Ces fournisseurs vous aident à gérer vos propres publicités avec les annonceurs. En revanche, des solutions comme Adsense (et apparemment Carbon) sont des réseaux publicitaires. Les réseaux publicitaires fonctionnent différemment des serveurs publicitaires. Notre problème concerne les serveurs publicitaires, et non les réseaux publicitaires. Désolé pour la confusion.
Nous devons pouvoir générer des revenus grâce à notre site web pour rester en activité, et pour cela, nous avons besoin d’utiliser un serveur publicitaire pour gérer les annonceurs. Nous utilisons AdButler à cette fin. La fonctionnalité « Publicités internes » ne correspond même pas de loin à nos besoins. À ce que j’ai pu comprendre, le seul serveur publicitaire pris en charge par le plugin Publicités de Discourse est Google DFP. À mon avis, Google DFP est inadéquat pour diverses raisons, qui ne sont pas pertinentes dans le cadre de cette discussion. Bien sûr, si nous sommes contraints d’utiliser Google DFP parce qu’aucun autre serveur publicitaire n’est pris en charge par le plugin Publicités, nous le ferons, car Discourse offre tant d’autres avantages que cela compense largement l’énervement d’utiliser Google DFP.
Je comprends tout à fait qu’il nous incombe de développer un plugin pour un autre serveur publicitaire que Google DFP, et que Discourse ne peut pas répondre à tous les besoins, surtout qu’il propose déjà tant de fonctionnalités exceptionnelles dès la sortie de la boîte. Nous avons soumis cette demande au marketplace, et certains développeurs expérimentés avec Discourse nous ont indiqué que cela ne pouvait pas être fait sans plugin et que le travail était assez coûteux et chronophage, par rapport à ce qui semble être un problème simple.
Vous avez raison : je ne sais pas encore comment fonctionne Discourse, car nous venons de commencer à l’utiliser et à apprendre Ruby et Ember. Cependant, avec WordPress, par exemple, il suffit d’insérer le script publicitaire d’AdButler dans une zone de widget, et tout fonctionne. Rien n’est à programmer. J’ai donc été quelque peu surpris que l’intégration d’un outil comme AdButler avec Discourse soit aussi complexe. Je comprends que Discourse soit évidemment très différent de WordPress et beaucoup plus compliqué, mais je ne comprends toujours pas pourquoi une telle fonctionnalité nécessite un développement aussi lourd.
En résumé, nous allons continuer à essayer et nous contacterons AdButler directement pour voir s’ils peuvent nous aider. Cela serait certainement dans leur intérêt de contribuer au développement d’une solution pour Discourse, car ils pourraient ainsi acquérir de nombreux clients (une fois que vous utilisez AdButler, vous ne reviendrez jamais à DFP). Nous examinerons également l’intégration de Carbon Ads pour comprendre son fonctionnement, au cas où nous pourrions l’adapter à nos besoins.
Merci encore.
Petit rappel : j’ai examiné le code de Carbon Ads dans le plugin Ad et j’ai une compréhension conceptuelle de la manière dont cela a été réalisé. J’espère donc que nous pourrons nous en servir de tremplin pour mettre en œuvre Ad Butler. Merci pour l’info concernant Carbon Ads.
Bonjour @sfoster, avez-vous des nouvelles concernant l’intégration d’AdButler ?
Non. Nous avons contacté quelques développeurs, mais personne ne nous a encore donné de devis ferme ni de calendrier. Dans WordPress, nous intégrons le code dans un widget et c’est terminé. Nous avons été surpris par la complexité de certains développements dans Discourse. Quoi qu’il en soit, nous allons chercher un peu plus, donc je vous tiendrai informé. Cependant, nous penchons plutôt vers une migration vers DFP, qui est pris en charge par le plugin principal, même si nous sommes vraiment peu enthousiastes à l’idée de devoir faire cela.