在搜索谷歌和Stackoverflow几个小时后,我找不到解决方案.我正在尝试检测Adblock plus并显示一条简单的消息.
我想要做的是在不使用JavaScript文件或jQuery的情况下检测Adblock plus .大多数adblock加检测脚本都使用了一个文件,例如"show_ads.js",它存放在自己的域中,并带有一行来设置它"adblock = false;"
使用JavaScript文件的问题是,用户可以白名单列出该JavaScript文件,它将不再检测它.我正在寻找的是一个直接加载到HTML中的JavaScript,可以检测是否有人在不使用文件的情况下使用广告拦截器.
示例如下:
<script type="text/javascript">
// line of code that detects if using ad blocker
if so display message
</script>
Run Code Online (Sandbox Code Playgroud)
这样做的原因是没有广告拦截器可以在服务器上列出JavaScript文件.是的,我知道还有其他方法可以使用NoScript插件解决这个问题,但我已经有了解决方法.我有一个从未尝试过的好主意,一旦我完成它,广告拦截器就无法阻止它.
任何建议和例子将不胜感激.
我今天遇到了这个应用程序Adblock Mobile,它在用户设备上安装了一个配置文件,并通过其安全 VPN 路由所有网络流量,以便在网上冲浪时禁用/阻止广告,以及使用实现广告的应用程序时,示例横幅广告或插页式广告.我的大多数应用程序收入都是基于广告的,因此这引起了我的一些担忧,我实际上对Apple批准此应用程序感到惊讶,因为它阻碍了iAd按预期工作.
有没有办法访问用户安装的配置文件,以检查是否从我的应用程序安装此配置文件?
我最近访问了一个网站并注意到该页面有一个部分说它注意到我正在使用AdBlocking软件,我可以将其关闭以帮助支持这样的小网站.我只是想知道你会怎么做?最好是客户端还是服务器端?
如果用户安装了某种广告拦截器,广告拦截器当然会从我的网站上删除所有广告,并留下广告所在的空白区域.我想通过在其中添加一些其他内容来使用该空白空间,例如链接到我网站的大多数重要页面,我需要检测是否加载了AdSense javascript.
到目前为止我尝试过的方法:
if (!document.getElementById("google_ads_frame1"))
{
}
Run Code Online (Sandbox Code Playgroud)
和:
if (typeof(window.google_render_ad) == "undefined")
{
}
Run Code Online (Sandbox Code Playgroud)
在某些情况下,这两种情况似乎都失败了,例如,如果浏览器下载AdSense javascript文件的速度稍慢,它会在加载AdSense代码之前执行上述代码,并且最终会为那些甚至没有广告被屏蔽的用户隐藏广告.
您对如何确保我的代码在AdSense之后运行有任何建议吗?或者是否有其他方法可以检测到AdSense脚本未加载?
我正在努力寻找解决方案,到目前为止没有任何进展。我试图捕获用户是否有 AdBlocker,如果有,我想显示一条消息,建议他将其关闭。但是,到现在为止还没有成功。
我将我的组件导入到我的主容器中,例如:
<DetectAdBlock pathname={window.location.pathname} />
Run Code Online (Sandbox Code Playgroud)
这是我的 adblocker.js
import React from 'react';
import PropTypes from 'prop-types'
class DetectAdBlock extends React.Component {
static propTypes = {
pathname: PropTypes.string.isRequired
};
constructor(props) {
super(props);
this.state = {
adBlockDetected: false
}
this.detectAdBlocker = this.detectAdBlocker.bind(this);
}
componentDidMount() {
this.detectAdBlocker();
}
componentWillUpdate(nextProps, nextState) {
if (this.props.pathname !== nextProps.pathname) {
this.detectAdBlocker();
}
}
detectAdBlocker() {
const head = document.getElementsByTagName('head')[0];
const noAdBlockDetected = () => {
this.setState({
adBlockDetected: false
});
}
const adBlockDetected = () => {
this.setState({ …Run Code Online (Sandbox Code Playgroud) 通过一些简单的 JavaScript,我如何检测客户端用户是否正在使用 Adblocker?