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.