首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测我的AdSense广告是否被阻止?

如何检测我的AdSense广告是否被阻止?
EN

Stack Overflow用户
提问于 2011-02-20 04:31:28
回答 6查看 8K关注 0票数 5

如果用户安装了某种类型的广告拦截器,广告拦截器当然会从我的网站上删除所有广告,并在广告过去所在的地方留下空白。我想通过在其中放入一些其他内容来使用这个空白空间,比如链接到我网站最重要的页面的链接,这样我就需要检测是否加载了AdSense javascript。

到目前为止我已经尝试过的方法:

代码语言:javascript
运行
复制
if (!document.getElementById("google_ads_frame1"))
{
}

和:

代码语言:javascript
运行
复制
if (typeof(window.google_render_ad) == "undefined")
{
}

在某些情况下,这两种方法似乎都失败了,例如,如果浏览器下载AdSense javascript文件慢一点,它将在AdSense代码加载之前执行上面提到的代码,而我最终会为甚至没有广告屏蔽的用户隐藏广告。

关于如何确保我的代码在AdSense之后运行,你有什么建议吗?或者其他检测AdSense脚本是否未加载的方法?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-02-20 04:37:17

window.onload事件上运行此代码。window.onload事件在页面完成加载时激发。

代码语言:javascript
运行
复制
window.onload = function() {
  // your checks
}

如果使用的是jQuery,请使用

代码语言:javascript
运行
复制
$(window).load(function() {
  // your checks
});
票数 2
EN

Stack Overflow用户

发布于 2015-03-29 03:12:35

如果使用新的AdSense代码,您可以进行简单的检查,而无需求助于内容或css检查。

在你的标记中像平常一样放置你的广告:

代码语言:javascript
运行
复制
<ins class="adsbygoogle" style="display: block;"
   data-ad-client="ca-pub-######"
   data-ad-slot="#######"
   data-ad-format="auto"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>

然后在页面的底部调用adsense代码(注意,在调用adsbygoogle.js脚本时不要使用"async"标志):

代码语言:javascript
运行
复制
<script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

然后在下面添加一小段代码:

代码语言:javascript
运行
复制
<script>
if (!adsbygoogle.loaded) {
   // do something to alert the user
}
</script>

在加载广告时,AdSense总是创建/设置标志adsbygoogle.loadedtrue。您可以将检查放在setTimeout函数中,以将检查延迟几秒钟。

票数 9
EN

Stack Overflow用户

发布于 2015-08-13 07:41:21

这种超轻量级的方法似乎是万无一失的,并且对所有的广告网络都是不可知的。

在根文件夹中放置一个名为ads.js的文件,并在其中添加以下行:

代码语言:javascript
运行
复制
var can_run_ads = true;

Adblock不允许加载名为ads.js的文件。所以,只需将这段代码放在</body>之前

代码语言:javascript
运行
复制
<script src="/ads.js"></script>
<script>
if(window.can_run_ads === undefined) {
    alert('Please Disable Adblock, ****** ******!');
}
</script>';

我强烈建议将用户重定向到一个页面,其中包含如何删除Adblock的说明。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5053317

复制
相关文章

相似问题

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