Zusammenfassung
Ich habe einen Entwurf für ein Revive Ad Server-Plugin erstellt, der auf einer Teilmenge des Codes des offiziellen Discourse-Ad-Plugins basiert. Im Wesentlichen habe ich die Werbenetzwerke entfernt und den Code für Hauswerbung (alles im README dokumentiert) so umgebaut, dass er Tags von unserem Revive Ad Server bereitstellt und dabei nach Desktop- oder Mobilanzeigen filtert (Revive unterstützt responsive Tags noch nicht). Hier ist das aktuelle Redesign:
https://github.com/unixneo/neo-revive-discourse
Status:
- Problem beim Rendern von
<script>-Tags (synchron und asynchron), funktioniert jedoch einwandfrei mit<iframe>-Tags
TODO:
- Das Problem beim Rendern von
<script>-Tags und<iframe>-Tags beheben
Beispiele:
Dieses iframe-Tag funktioniert einwandfrei:
<!-- Revive Adserver iFrame Tag - Generated with Revive Adserver v4.2.0 -->
<iframe id='a41d6e46' name='a41d6e46' src='http://srv.adserver.com/www/delivery/afr.php?zoneid=63&cb=INSERT_RANDOM_NUMBER_HERE' frameborder='0' scrolling='no' width='728' height='90'><a href='http://srv.adserver.com/www/delivery/ck.php?n=aa785d4b&cb=INSERT_RANDOM_NUMBER_HERE' target='_blank'><img src='http://srv.adserver.com/www/delivery/avw.php?zoneid=63&cb=INSERT_RANDOM_NUMBER_HERE&n=aa785d4b' border='0' alt='' /></a></iframe>
Dieses asynchrone JS-Tag wird nicht gerendert (dies ist das Format, das wir normalerweise verwenden):
<!-- Revive Adserver Asynchronous JS Tag - Generated with 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>
Ebenso wird dieses JS-Tag nicht gerendert:
<!-- Revive Adserver Javascript Tag - Generated with 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=INSERT_RANDOM_NUMBER_HERE' target='_blank'><img src='http://srv.adserver.com/www/delivery/avw.php?zoneid=63&cb=INSERT_RANDOM_NUMBER_HERE&n=aef496cd' border='0' alt='' /></a></noscript>
Versuche zur Behebung:
Ich habe htmlSafe() und dreifache Handlebars ausprobiert, ohne Erfolg. Ich habe keine Ahnung, warum nur das iframe-Tag gerendert wird, die JS-Tags jedoch nicht! Es scheint ein “Ember.js”-Problem zu sein, was ich als Einsteiger in Ember.js und Rails nicht verstehe.
Wann muss es fertig sein?
Keine Eile, wir planen nicht, dies in naher Zukunft zu nutzen; es ist etwas, das ich für “die Zukunft” baue.
Was ist Ihr Budget in USD, das Sie für diese Aufgabe anbieten können?
Alle vernünftigen Angebote, um mich über diese Ember.js-Darstellungsmauer hinwegzubekommen, sind willkommen und werden geschätzt.
Hinweise:
Für diejenigen, die interessiert sind: Ich verwende DFP nicht. Ich mag es einfach nicht. Revive funktioniert für uns einwandfrei (Self-Hosting), aber wenn diese Lösung funktioniert, sollte sie auch mit DFP und anderen Ad-Server-Tags einwandfrei funktionieren. Daher bleibt der Quellcode für alle, die eine ähnliche Anforderung haben, kostenlos verfügbar.
Testseite (nur vorübergehend für Tests):
Testseite entfernt.
