next.js 如何正确检测广告拦截器和显示警告?

kt06eoxx  于 2023-06-22  发布在  其他
关注(0)|答案(1)|浏览(134)

我们有一些自定义的广告位置,可以在整个网站上显示给Next.js项目。这些广告可以是谷歌广告,也可以是本地广告商的定制广告。现在,我们需要检测是否有广告拦截器阻止这些广告正常显示,并显示一个警告,如果任何广告拦截器在浏览器上是活跃的。
我们已经尝试了一些NPM软件包,但它们中的任何一个都不能按预期工作。

ndh0cuux

ndh0cuux1#

您可以检查元素是否被隐藏。
例如,这将是一个典型的诱饵:

<div id="ad-banner">
  <img src="https://example.com/ad.jpg" />
</div>

当然,您也应该能够使用现有的广告位置。但是添加一个特定的元素是有意义的,它尖叫着“广告”以便检查。
然后,你可以检查元素是否被隐藏:

useEffect(() => {
  const ad = document.getElementById('ad-banner');
  const isAdBlockActive = ad && ad.offsetHeight === 0;
  if (isAdBlockActive) {
    console.log('We have an AdBlocker!!');
  }
}, []);

希望这能帮上忙。

相关问题