以 advice from this question 开头, 我做了一些搜索并在 this web site 上找到了一些代码,旨在将 Google Adsense 广告插入我网页上的特定位置,在页面加载后。在我的例子中,我在 Javascript 中做了一些检查,将 JSON 数据发送回我的服务器,然后根据我从该 JSON 获得的响应,我决定是否显示 Google Adsense 广告。
由于这段代码是从网上弄来的,不是自己写的,所以有很多地方没弄明白,有些地方还得按自己认为的要求填写,但是我有点猜测。这是我当前使用的代码的样子:
if(userStatus.status == 0)
{
console.log("google ad should show");
window["google_ad_client"] = 'ca-pub-0000000000000000';
window["google_ad_slot"] = "0000000000";
window["google_ad_width"] = 320;
window["google_ad_height"] = 50;
window.adcontainer = document.getElementById('google-ad');
window.adhtml = '';
function mywrite(html)
{
adhtml += html;
if(html == '</iframe>')
{
adcontainer.innerHTML = adhtml;
}
};
document.write_ = document.write;
document.write = mywrite;
script = document.createElement('script');
script.src='http://pagead2.googlesyndication.com/pagead/show_ads.js';
script.type='text/javascript';
document.body.appendChild(script);
}
看来它几乎可以工作了。
当我在启用了 Firebug 的 Firefox 中查看我的页面时,我看到正在显示我的控制台日志消息,所以我知道我已经完成了所有条件。
我也试过使用直接写入 HTML 的代码转换广告,只是为了确认 Google 已接受我的网站并且他们将展示广告。当我这样做时,广告显示正常,所以我相信我的 Asense 帐户没有任何问题。
但是,虽然对 http://pagead2.googlesyndication.com/pagead/show_ads.js
的调用被附加到页面末尾,但似乎没有显示广告参数按预期写入 google-ad
DIV。
因此,广告未展示。
我的代码哪里出错了?
最佳答案
原来问题是 if(html == '</iframe>')
线。我原以为这与 Google 如何构建 adsense 广告有关,但这一定与最初编码的人需要如何构建他们的 HTML 有关。
不过,就我而言,我根本不需要它。我的代码现在已更改为:
function mywrite(html)
{
adhtml += html;
adcontainer.innerHTML = adhtml;
};
令我惊讶的是,它有效!我现在有一个 Google Adsense 广告,它会根据页面加载后检索到的 JSON 数据的结果显示。
此外,对于可能想要做类似事情的任何人,还有进一步的提示:首先将您的 Google 广告硬编码到 HTML 中以确保它有效并且 Google 已接受它,然后再尝试使用 Javascript 或其他任何东西做任何花哨的事情。如果我早点意识到这一点,我可能可以节省一些时间。
希望能帮助其他可能想做同样事情的人。
关于javascript - 为什么用于插入 Adsense 广告的 Javascript 代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272010/