摘要
基于官方 Discourse 广告插件的部分代码,我创建了一个 Revive 广告服务器插件的草稿。基本上,我移除了广告网络,并重构了自家广告代码(README 中已详细记录),使其从我们的 Revive 广告服务器提供标签,并过滤为桌面端或移动端广告(Revive 目前尚不支持响应式标签)。以下是当前的重新设计:
https://github.com/unixneo/neo-revive-discourse
状态:
<script>标签(同步和异步)渲染存在问题,但<iframe>标签工作正常
待办事项:
- 修复
<script>标签和<iframe>标签的渲染问题
示例:
此 iframe 标签工作正常:
<!-- 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>
此异步 JS 标签无法渲染(这是我们通常使用的标签格式):
<!-- 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>
同样,此 JS 标签也无法渲染:
<!-- 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 ("'>\u003c\/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>
尝试的修复方法:
尝试过使用 htmlSafe() 和三重大括号,但未成功。我不明白为什么只有 iframe 标签能渲染,而 JS 标签却无法渲染!这似乎是一个“Ember.js”问题,但作为 Ember.js 和 Rails 的新手,我对此并不了解。
您需要在何时完成?
不着急,我们近期不打算使用它;这是我为“未来”构建的功能。
您能为此任务提供的预算是多少(美元)?
任何合理的报价,只要能帮我突破这个 Ember.js 渲染难题,我们都欢迎并感激。
备注:
感兴趣的朋友请注意,我不使用 DFP。单纯不喜欢它。Revive 对我们来说运行良好(自托管),但一旦此解决方案生效,它也应能顺利支持 DFP 及其他广告服务器标签,因此源代码将免费提供给所有有类似需求的人。
测试站点(仅用于临时测试):
测试站点已移除。
