Динамические блоки AdSense - PullRequest
3 голосов
/ 16 июля 2010

У меня есть приложение OpenSocial, и я хотел попробовать в нем AdSense.Я могу легко запустить Javascript, но не могу напрямую включать фрагменты HTML.По этой причине я пытаюсь придумать сценарий, который бы создавал DIV, содержащий объявление AdSense.

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).в целях тестирования) и перемещайте их по мере необходимости.Любые идеи о том, как заставить это работать?

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Сейчас слишком поздно, очевидно, но у меня возникла та же проблема, и я задал ее в StackOverflow (скоро там тоже будет публиковаться полный ответ), но единственное, что вы можете сделать, это загрузить его в iframe. ,

Шаг 1
Создайте файл HTML на своем сервере с вашим кодом AdSense, как:

<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

0 голосов
/ 20 июля 2010

Я разместил тег 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>
...