[INGAGGIO A PAGAMENTO] Aiuto con il rendering del tag SCRIPT per i tag di Revive Ad Server nel plugin Draft

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&amp;cb=INSERISCI_NUMERO_CASUALE' frameborder='0' scrolling='no' width='728' height='90'><a href='http://srv.adserver.com/www/delivery/ck.php?n=aa785d4b&amp;cb=INSERISCI_NUMERO_CASUALE' target='_blank'><img src='http://srv.adserver.com/www/delivery/avw.php?zoneid=63&amp;cb=INSERISCI_NUMERO_CASUALE&amp;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 ('&amp;cb=' + m3_r);
   if (document.MAX_used != ',') document.write ("&amp;exclude=" + document.MAX_used);
   document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));
   document.write ("&amp;loc=" + escape(window.location));
   if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));
   if (document.context) document.write ("&context=" + escape(document.context));
   if (document.mmm_fo) document.write ("&amp;mmm_fo=1");
   document.write ("'>\<\/scr"+"ipt>");
//]]>--></script><noscript><a href='http://srv.adserver.com/www/delivery/ck.php?n=aef496cd&amp;cb=INSERISCI_NUMERO_CASUALE' target='_blank'><img src='http://srv.adserver.com/www/delivery/avw.php?zoneid=63&amp;cb=INSERISCI_NUMERO_CASUALE&amp;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.

1 Mi Piace

Questo GIG è completato:

Il successo è stato ottenuto aggiungendo lo script esterno all’intestazione del tema direttamente con un po’ di JS, come questo:

<script>
    var js_script = document.createElement('script');
    js_script.type = "text/javascript";
    js_script.src = "https://srv.adserver.com/www/delivery/asyncjs.php";
    js_script.async = true;
    document.getElementsByTagName('head')[0].appendChild(js_script);
</script>

e poi chiamando solo questa parte del tag di Revive Adserver, specificando la zona pubblicitaria, nel codice del plugin, come questo:

<div style='text-align: center;'>
<ins style='display:inline-block;' data-revive-zoneid="63" data-revive-id="2d220f1e3f63403189face1b493bcc4b"></ins>
</div>

Grazie!

PS: Non sono riuscito a trovare una soluzione per Embers.js, poiché sembra dalle documentazioni di Ember che Handlebars non accetti i tag <script>. Potrei provare a trovare un modo per farlo in Ember.js in futuro…

8 Mi Piace