概要
公式の Discourse 広告プラグインの一部のコードを基に、Revive Adserver プラグインのドラフト版を作成しました。基本的には、広告ネットワークを削除し、README にすべて記載されているハウス広告のコードをリファクタリングして、Revive Adserver からタグを提供するように変更しました。デスクトップ用またはモバイル用の広告でフィルタリングします(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 ("'>\</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 や他の広告サーバータグとも問題なく動作するはずです。そのため、ソースコードは同様の要件を持つすべての人に無料で公開されます。
テストサイト(テスト用一時的なサイト):
テストサイトは削除されました。
