首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态AdSense单元

动态AdSense单元
EN

Stack Overflow用户
提问于 2010-07-16 20:06:06
回答 2查看 2.4K关注 0票数 3

我有一个OpenSocial应用程序,并想在其中尝试一下AdSense。我可以很容易地运行Javascript,但不能直接包含HTML代码片段。出于这个原因,我正在尝试想出一个脚本来创建一个包含AdSense广告的DIV。

代码语言:javascript
复制
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测试目的),并根据需要重新定位它们。你有什么办法让它工作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-02 02:42:57

很明显,现在已经太晚了,但我也遇到了同样的问题,我也在StackOverflow上问过了(很快我也会在上面发布长格式的答案),但你唯一能做的就是把它加载到iframe中。

步骤1

使用adsense代码在服务器上创建一个HTML文件,如下所示:

代码语言:javascript
复制
<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文件中,在顶部添加:

代码语言:javascript
复制
<style> body {padding:0;margin:0;} </style>

这将确保iframe中没有空格,并且广告代码恰好贴近iframe的边界。

步骤3

动态添加iframe,如下所示:

代码语言:javascript
复制
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和StackOverflow上发布这个是违反服务条款的,所以我只是创建了一个广告形状的div,但是如果你把广告放进去,它会起作用的。

请参阅:http://jsbin.com/evoqi6/ Hack:http://jsbin.com/evoqi6/edit

票数 1
EN

Stack Overflow用户

发布于 2010-07-20 19:30:50

我把div标签放在外面,它起作用了..看起来是IE处理javascript的方式有问题。

代码语言: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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3264633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档