Non siamo soddisfatti di nessuna delle reti pubblicitarie supportate da Discourse, ma ne abbiamo trovata una che funziona perfettamente sul nostro blog e vorremmo implementarla anche nel nostro forum. Tuttavia, richiede di copiare un codice e incollarlo all’interno dell’HTML del nostro sito. Dove esattamente possiamo farlo e funzionerebbe?
Usa semplicemente i componenti del tema per farlo
Grazie, ma non sono uno sviluppatore. Le mie conoscenze non vanno oltre la configurazione di un server Discord (che mi ha richiesto una settimana) e la modifica delle impostazioni del sito.
Allora puoi iniziare da qui
Il tuo obiettivo è creare un componente tema, aggiungere lo script <script> alla scheda /head e attivare il componente tema nel tuo tema principale.
Quando il tuo componente tema verrà attivato, dovrai mettere in whitelist l’URL del tuo script seguendo questa guida:
Benvenuti nel club, siamo nella stessa barca. Tuttavia, un rapido avvertimento: questo non funzionerà con i componenti del tema, quindi la risposta suggerita non sarà efficace. Abbiamo seguito questa strada, così come altri (vedi i nostri argomenti a riguardo). Con i componenti del tema, lo script degli annunci non viene visualizzato nel corpo dove dovrebbe apparire. Il commentatore che suggerisce di utilizzare uno script nell’area /head potrebbe non conoscere il modo corretto di implementare gli script degli annunci. Abbiamo provato i componenti del tema ma non siamo riusciti a farlo a causa delle limitazioni su ciò che è possibile fare con essi.
In definitiva, avrete bisogno di un plugin per mostrare provenienti da altre reti pubblicitarie. Purtroppo, al momento non esiste un plugin per questo. L’unica speranza è che Discourse aggiunga uno script generico per gli annunci nel plugin Ads per supportare script di terze parti che devono essere iniettati nell’area dedicata agli annunci. Attualmente potete utilizzare praticamente solo Google DFP, ma se usate un altro fornitore di annunci, siete bloccati e non potete monetizzare il forum. È un peccato perché esistono molte altre valide reti pubblicitarie (ad esempio Adbutler, Openx, ecc.) e non dovreste essere costretti a usare Google DFP per veicolare gli annunci.
Speriamo quindi che Discourse aggiunga uno script generico per gli annunci al plugin Ads. Non vedo particolarmente perché sia difficile da fare, ma onestamente non ho idea di come programmare in Ruby e Ember, quindi non so come procedere. In teoria, tutto ciò di cui hanno bisogno è un’area di testo nel plugin che accetti i tag e poi li inietti nelle aree degli annunci già designate dal plugin. Avere una casella generica per gli script, invece di una casella che accetta solo HTML puro, risolverebbe il problema per praticamente tutte le reti pubblicitarie, senza la necessità di implementare codice specifico per ciascuna di esse.
Caleb, per curiosità, quale servizio stai usando sul tuo blog?
È un po’ difficile rispondere ai tuoi punti senza contesto. Sarebbe molto utile se potessi includere maggiori dettagli su quale rete pubblicitaria stai citando e esattamente come non ha funzionato per te.
Non è del tutto vero e dipende davvero dalla rete pubblicitaria che stai cercando di utilizzare. Se è un requisito tassativo che lo script della rete pubblicitaria venga posizionato accanto al tag </body> – il che è improbabile – allora la responsabilità è della rete pubblicitaria per avere un requisito così rigido e irragionevole.
Gli script aggiunti in un tema vengono estratti in un file theme.js che viene poi iniettato nel tag <head> del documento.
Questo ci offre un certo livello di controllo e ci permette di implementare alcune funzionalità utili, come ad esempio impedire che temi difettosi facciano crollare l’intero sito.
Anche questo è vero solo in parte. I temi possono modificare qualsiasi cosa lato client. Ciò significa che tutto ciò che è scritto in JavaScript in Discourse è accessibile ai temi.
In effetti, l’intero plugin ufficiale per la pubblicità potrebbe essere convertito in un componente del tema e funzionerebbe. L’unica cosa che mancherebbe sarebbe la possibilità di aggiungere un file ads.txt, poiché ciò richiederebbe l’accesso al backend. Il motivo per cui non lo abbiamo fatto è che un plugin è un’implementazione più pulita per questo scopo, in particolare perché include più di un fornitore. Quindi sì, i temi hanno delle limitazioni, ma non è questo il punto principale qui.
C’è una nota molto importante qui: Discourse è un’applicazione a pagina singola (SPA). Ciò significa che una volta caricata l’app alla visualizzazione iniziale della pagina, tutta la navigazione successiva è gestita da Discourse e non dal tuo browser.
È importante sottolinearlo perché una rete pubblicitaria deve fornire gli hook necessari affinché le applicazioni a pagina singola possano aggiornare le informazioni della pagina e servire nuovi annunci. Non so molto su Adbutler o Openx, ma non ho trovato alcuna documentazione sul supporto per le applicazioni a pagina singola da parte di uno di questi fornitori.
Quindi, se la rete pubblicitaria non fornisce gli hook necessari, è davvero colpa di Discourse che non è supportata?
Non sei davvero costretto a utilizzare DFP. È solo una delle sei opzioni disponibili nel plugin ufficiale per la pubblicità, che elenco qui per riferimento:
- DFP
- AdSense
- Google ads
- Amazon advertising
- Codefund
- Carbon Ads
Ancora una volta, poiché Discourse è un’applicazione a pagina singola, “generico” semplicemente non funzionerà.
Certo, puoi caricare gli script pubblicitari che vuoi in un tema, ma verranno eseguiti solo alla visualizzazione iniziale della pagina. Tutto ciò che segue verrà ignorato dallo script della rete pubblicitaria, a meno che la rete non fornisca gli hook necessari.
Ecco come appare un’integrazione del genere su una rete pubblicitaria che supporta le applicazioni a pagina singola.
In realtà, hai bisogno di implementazioni di codice specifiche per ogni singola rete pubblicitaria.
Inoltre, credo che tu stia confondendo gli annunci interni con quelli provenienti da reti pubblicitarie. Il motivo per cui la casella accetta solo HTML è perché è pensata per creare i tuoi annunci interni. È un’implementazione molto semplice che è già stata integrata nel plugin in modo che non debba preoccuparti degli hook per le SPA se vuoi semplicemente servire i tuoi propri annunci.
Inoltre, se desideri davvero che un’altra rete pubblicitaria venga inclusa nel plugin, esiste un precedente per l’aggiunta di nuove reti basate su contributi della comunità.
L’esempio più recente è l’integrazione di Carbon Ads:
Tuttavia, in questo caso, l’onere di configurare tutto correttamente ricade su di te.
Se ritieni che tale implementazione sia troppo complicata, allora è così. Sono molto capace nel cambiare le gomme o l’olio della mia auto, ma se devo fare la manutenzione del cambio, allora trovo semplicemente qualcuno che ne sa più di me e lo pago per farlo al posto mio.
Quello che voglio dire è che se vuoi davvero utilizzare un’altra rete pubblicitaria e non riesci a farlo da solo, ti consiglio di creare un argomento nella sezione Marketplace e sono sicuro che attirerai l’attenzione di uno sviluppatore se hai il budget adeguato.
Grazie per la tua risposta dettagliata e per l’aiuto. C’è molto da assimilare.
Tuttavia, credo ci sia un malinteso. AdButler è un tipo di Ad Server, simile a Google DFP. Questi provider ti aiutano a gestire i tuoi annunci direttamente con gli inserzionisti. Al contrario, servizi come Adsense (e apparentemente anche Carbon) sono Ad Network. Gli Ad Network funzionano in modo piuttosto diverso rispetto agli Ad Server. Il nostro problema riguarda gli Ad Server, non gli Ad Network. Scusa per la confusione.
Dobbiamo essere in grado di generare entrate dal nostro sito per rimanere in attività, e per farlo abbiamo bisogno di utilizzare un Ad Server per gestire gli inserzionisti. Utilizziamo Ad Butler per questo scopo. La funzionalità “In House Ads” non si avvicina nemmeno a quanto necessario. Dall’analisi che ho fatto, l’unico Ad Server supportato dal plugin per gli annunci di Discourse è Google DFP. A mio avviso, Google DFP è inaccettabile per varie ragioni, che però non sono pertinenti a questa discussione. Ovviamente, se fossimo costretti a usare Google DFP perché non ci sono altri Ad Server supportati dal plugin per gli annunci, lo faremmo, dato che Discourse offre molti altri vantaggi che in qualche modo compensano la grande seccatura di dover usare Google DFP.
Capisco perfettamente che spetta a noi sviluppare un plugin per un Ad Server diverso da Google DFP, e che Discourse non può soddisfare ogni singola esigenza, soprattutto perché offre già così tanto “out of the box” che è semplicemente eccezionale. Abbiamo già sottoposto questa richiesta al marketplace e alcuni sviluppatori esperti di Discourse ci hanno detto che non è possibile farlo senza un plugin e che il lavoro sarebbe stato piuttosto costoso e impegnativo, relativamente a quello che sembra essere un problema semplice.
Hai ragione nel dire che non ho ancora idea di come funzioni Discourse, dato che stiamo appena iniziando a usarlo e stiamo imparando Ruby ed Ember. Tuttavia, con WordPress, ad esempio, basta inserire lo script pubblicitario di Ad Butler in una widget box e funziona subito. Non c’è nulla da programmare. Quindi sono rimasto piuttosto sorpreso che far funzionare qualcosa come Ad Butler con Discourse sia stato così complicato. Capisco che Discourse sia ovviamente molto diverso da WordPress e molto più complesso, ma non riesco ancora a capire perché una cosa del genere richieda così tanta programmazione.
In sintesi, continueremo a provare e contatteremo direttamente Ad Butler per vedere se possono fornire aiuto. Sarebbe sicuramente nel loro interesse sviluppare qualcosa per Discourse, poiché potrebbero acquisire molti clienti (una volta che si usa Ad Butler, non si torna più a DFP). Valuteremo anche l’integrazione con Carbon Ads e cercheremo di capire come funziona, forse potremo adattarla alle nostre esigenze.
Grazie ancora.
Un rapido seguito: ho esaminato il codice per Carbon Ads nel plugin Ad e ho compreso a livello concettuale come è stato realizzato, quindi speriamo di poterlo usare come punto di partenza per implementare Ad Butler. Grazie per l’avviso su Carbon Ads.
Ciao @sfoster, ci sono novità sull’integrazione con AdButler?
No. Abbiamo contattato alcuni programmatori, ma nessuno ci ha ancora fornito un preventivo e una tempistica definitivi. In WordPress inseriamo il codice in un widget e abbiamo finito. Siamo rimasti sorpresi da quanto complesso sia il codice in Discourse. Comunque, daremo un’occhiata più approfondita, quindi ti terrò aggiornato. Ma siamo orientati a passare semplicemente a DFP, che è supportato nel plugin principale, anche se non siamo affatto contenti di doverlo fare.