您如何在本地主机中呈现Google广告单元?

时间:2019-01-04 16:59:58

标签: macos localhost mamp adsense

根据研究,2014年有一个先前的问题(Is Google adsense available for localhost?)建议添加:

data-adtest="on"

,并且在测试并阅读comments之后,该解决方案不再起作用。在广告单元中:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <!-- responsive_ad -->
    <ins class="adsbygoogle"
        style="display:block"
        data-ad-client="ca-pub-####"
        data-ad-slot="######"
        data-ad-format="auto"
        data-adtest="on"
        data-full-width-responsive="true">
    </ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

在Chrome,Firefox和Safari中进行测试后,将呈现一个白框。搜索后,我无法在产品论坛或任何站点上找到任何解决方案。如何在本地主机中测试广告单元?

2 个答案:

答案 0 :(得分:0)

我也尝试了data-adtest="on"方法,但它对我也不起作用。我发现了两种不同的测试方法:

如果打开开发人员控制台,您将看到403错误。此错误的原因在这里进一步说明:https://www.shoutmeloud.com/adsense-403-forbidden-error.html。简而言之: Adsense抓取工具拒绝Localhost 。那就是您为什么要留空白而不是广告的原因。

但是如果有第三种方式,我也会很高兴听到。

答案 1 :(得分:0)

正如另一个答案所暗示的,使用 localhost 以外的主机名很重要。使用 0.0.0.0 是一个简单的选择。

自 2021 年初以来,Google 似乎需要明确的 TCF v2.0 同意才能加载任何广告。以下代码段可以包含在应用程序代码或类似 Violentmonkey 的内容中:

window.__tcfapi = (command, parameter, callback) => {
    if (command === 'checkConsent') {
        callback(true);
    }
    if (command === 'addEventListener') {
        callback({eventStatus: 'tcloaded', gdprApplies: false}, true);
    }
};