もちろんバナー広告が有効になるまで、2倍の速さで読み込まれる美しく洗練されたエレガントなウェブサイトがあります。取得するのを待つと、ページの読み込み時間が最大10秒長くなります。これは、サイトの残りの部分を最適化するために何年も費やしてきたため、私にとっては本当に苛立たしいことです。
私はajaxなどを介して広告をロードしようとしましたが、さまざまな成功を収めました。フラッシュベースのバナーと、広告サーバーからhtmlのスニペットを取得するだけの広告は正常に機能します。ただし、javascriptを返し、document.write()を使用してhtml広告をDOMに追加するものがいくつかあります(私があなたについて話しているPaddyPower)。広告が表示されることはありません。
アフィリエイトコード:
<script type="text/javascript" src="someadserver.com/impression.aspx"></script>
someadserver.comから返されたスクリプト
document.write('Normal HTML code')
クロスサイトスクリプティングとセキュリティと関係があるはずですが、私はこれについての専門家ではありません。私が望むことを達成する方法はありますか?
キャッシュはインプレッション/クリックスルーの統計を歪めるため、オプションではないと思います。
また、アフィリエイトコードはクライアントのウェブサイトであり、ハッキング広告コードに依存しない安定した実行可能なソリューションが必要なため、変更することはできません。
- -編集 - -
<noscript>タグで囲まれた広告コードを返すように広告クラスを変更し、同時に静的メンバーに広告コードを保存しました。</ body>タグの直後に、次のコードを使用します。
<?php foreach(Advert::getCachedAds() as $id => $code): ?>
<div class="advert <?php echo $id ?>" style="visibility:hidden;">
<?php echo $code ?>
</div>
<?php endforeach; ?>
<script type="text/javascript">
$(function(){
$('.adContainer').each(function(index, object){
var advert = $('div.' + $(object).attr('id')).html();
$('div.' + $(object).attr('id')).html('');
$(object).html(advert);
});
});
</script>
これは非常にうまく機能し、Netscapeやダイヤルアップ接続の時代に使用していた昔ながらの画像プリローダースクリプトを思い出させます。