3

私は OpenSocial アプリケーションを持っており、そこで AdSense を試してみたいと思っていました。Javascript は簡単に実行できますが、HTML スニペットを直接含めることはできません。このため、AdSense 広告を含む DIV を作成するスクリプトを作成しようとしています。

function adsense(w, h, slot) {
google_ad_client = "pub-4815352041522054";
google_ad_slot = slot;
google_ad_width = w;
google_ad_height = h;

var url = "http://pagead2.googlesyndication.com/pagead/show_ads.js";    
document.write(
    '<div style="border:solid 3px red;">'
    + '<sc' + 'ript src="' + url + '">'
    + '</sc' + 'ript>'
    + 'The ad should be inside the same box as this text.</div>'
  );
}

adsense(160, 600, 5133629129);

上記のコードは、赤い枠線の div を作成し、その中に AdSense ユニットを配置します。これは Chrome では正常に動作しますが、IE では、参照されている AdSense コードは div が既に閉じられた後に実行されるようです。

コードから AdSense ユニットを動的に作成し (たとえば、A/B テストの目的で)、必要に応じて再配置できるようにしたいと考えています。これを機能させる方法についてのアイデアはありますか?

4

2 に答える 2

1

明らかに今では遅すぎますが、同じ問題があり、StackOverflowで質問しました(長い形式の回答もすぐに投稿する予定です)が、実際にできることはiframeにロードすることだけです.

ステップ 1
次のようなアドセンス コードを使用して、サーバー上に HTML ファイルを作成します。

<script type="text/javascript"><!--
google_ad_client = "ca-pub-xxxxxxxxxxxx";
/* Some Ad */
google_ad_slot = "xxxxxxxxx";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

ステップ2

作成した同じ HTML ファイルの上部に、次を追加します。

<style> body {padding:0;margin:0;} </style>

これにより、iframe 内にスペースがなくなり、広告コードが iframe の境界線にぴったりと収まるようになります。

ステップ 3
次のように iframe を動的に追加します。

var insertAdsenseIframe = function(src,width,height){
  var iframe = document.createElement('iframe');
  iframe.setAttribute("frameborder","0");
  iframe.setAttribute("src", src);
  iframe.setAttribute("width", width);
  iframe.setAttribute("height", height);
  return iframe; //Return it so you can use whatever method you want to insert/append
}

var myIframe = insertAdsenseIframe('http://oscargodson.com/dev/scriptTest/cleariframe.html','468px','60px');

document.getElementById('test').appendChild(myIframe);

JavaScript は単なるサンプルですが、機能します。私はIEなどでテストしたことはありません。これは、開始するためのものです。

デモ

これを JSBin に投稿するのは TOS に違反するため、StackOverflow で広告の形で div を作成しましたが、広告を入れれば機能します。

参照: http://jsbin.com/evoqi6/ ハック: http://jsbin.com/evoqi6/edit

于 2011-06-01T18:42:56.620 に答える
0

div タグを外側に配置したところ、うまくいきました.. IE が javascript を処理する方法に問題があるようです..

<div style="border:solid 3px red">
<script type="text/javascript" charset="utf-8">

function adsense(w, h, slot) {
google_ad_client = "pub-4815352041522054";
google_ad_slot = slot;
google_ad_width = w;
google_ad_height = h;

var url = "http://pagead2.googlesyndication.com/pagead/show_ads.js";    
document.write(
     '<sc' + 'ript src="' + url + '">'
    + '</sc' + 'ript>'
    + 'The ad should be inside the same box as this text.'
  );
}

adsense(160, 600, 5133629129);


</script>
</div>
于 2010-07-20T11:30:49.723 に答える