Riepilogo
Ho creato una bozza di un plugin per server pubblicitari Revive basato su un sottoinsieme di codice del plugin ufficiale per annunci di Discourse. In sostanza, ho rimosso le reti pubblicitarie e rifattorizzato il codice per gli annunci interni (tutto documentato nel README) per servire tag dal nostro server pubblicitario Revive, filtrando per annunci desktop o mobile (Revive non supporta ancora tag responsivi). Ecco il nuovo design attuale:
https://github.com/unixneo/neo-revive-discourse
Stato:
- Problema con il rendering dei tag
<script>(sincroni e asincroni), ma funziona correttamente con i tag<iframe>
DA FARE:
- Risolvere il problema di rendering dei tag
<script>e<iframe>
Esempi:
Questo tag iframe funziona correttamente:
<!-- Tag iFrame di Revive Adserver - Generato con Revive Adserver v4.2.0 -->
<iframe id='a41d6e46' name='a41d6e46' src='http://srv.adserver.com/www/delivery/afr.php?zoneid=63&cb=INSERISCI_NUMERO_CASUALE' frameborder='0' scrolling='no' width='728' height='90'><a href='http://srv.adserver.com/www/delivery/ck.php?n=aa785d4b&cb=INSERISCI_NUMERO_CASUALE' target='_blank'><img src='http://srv.adserver.com/www/delivery/avw.php?zoneid=63&cb=INSERISCI_NUMERO_CASUALE&n=aa785d4b' border='0' alt='' /></a></iframe>
Questo tag JS asincrono non viene renderizzato (questo è il formato di tag che usiamo normalmente):
<!-- Tag JS Asincrono di Revive Adserver - Generato con Revive Adserver v4.2.0 -->
<ins data-revive-zoneid="63" data-revive-id="2d220f1e3f63403189face1b493bcc4b"></ins>
<script async src="//srv.adserver.com/www/delivery/asyncjs.php"></script>
Allo stesso modo, questo tag JS non viene renderizzato:
<!-- Tag JavaScript di Revive Adserver - Generato con Revive Adserver v4.2.0 -->
<script type='text/javascript'><!--//<![CDATA[
var m3_u = (location.protocol=='https:'?'https://srv.adserver.com/www/delivery/ajs.php':'http://srv.adserver.com/www/delivery/ajs.php');
var m3_r = Math.floor(Math.random()*99999999999);
if (!document.MAX_used) document.MAX_used = ',';
document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
document.write ("?zoneid=63");
document.write ('&cb=' + m3_r);
if (document.MAX_used != ',') document.write ("&exclude=" + document.MAX_used);
document.write (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : ''));
document.write ("&loc=" + escape(window.location));
if (document.referrer) document.write ("&referer=" + escape(document.referrer));
if (document.context) document.write ("&context=" + escape(document.context));
if (document.mmm_fo) document.write ("&mmm_fo=1");
document.write ("'>\<\/scr"+"ipt>");
//]]>--></script><noscript><a href='http://srv.adserver.com/www/delivery/ck.php?n=aef496cd&cb=INSERISCI_NUMERO_CASUALE' target='_blank'><img src='http://srv.adserver.com/www/delivery/avw.php?zoneid=63&cb=INSERISCI_NUMERO_CASUALE&n=aef496cd' border='0' alt='' /></a></noscript>
Tentativi di Risoluzione:
Ho provato htmlSafe() e le triple parentesi graffe di Handlebars, senza successo. Non ho idea del motivo per cui solo il tag iframe viene renderizzato mentre i tag JS non lo sono! Sembra un problema di “emberjs”, cosa che non capisco essendo un principiante di Ember.js e Rails.
Quando serve che sia fatto?
Nessuna fretta, non prevediamo di usarlo a breve; è qualcosa che sto costruendo per “il futuro”.
Qual è il tuo budget, in $USD, che puoi offrire per questo compito?
Tutte le offerte ragionevoli per aiutarmi a superare questo muro di rendering di Ember.js sono apprezzate e benvenute.
Note:
Per chi è interessato, non uso DFP. Semplicemente non mi piace. Revive funziona bene per noi (self-hosting), ma quando questa soluzione funzionerà , dovrebbe funzionare bene anche con DFP e altri tag di server pubblicitari, quindi il codice sorgente rimarrà liberamente disponibile per tutti coloro che potrebbero avere un requisito simile.
Sito di test (temporaneo, solo per test):
Sito di test rimosso.
