您如何在 localhost 中呈现 Google 广告单元?

Posted

技术标签:

【中文标题】您如何在 localhost 中呈现 Google 广告单元?【英文标题】:How do you render Google ad units in localhost? 【发布时间】:2019-05-31 06:36:51 【问题描述】:

根据研究,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 中进行测试后,会呈现一个白框。搜索后,我无法在产品论坛或任何网站上找到任何解决方案。如何在 localhost 中测试广告单元?

【问题讨论】:

【参考方案1】:

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

使用 Placeholders,这是大多数 Google Adsense 论坛条目建议的方式。 e. G。在这里:https://productforums.google.com/forum/#!msg/adsense/RLeUEq6na-w/i93-TFVRiHUJ (我自己试过了,对解决方案很满意) 使用您自己的 (dev) 域 在此解释:https://medium.com/@jeffersonlicet/testing-ads-on-localhost-300215b415d6(我无法自行尝试,因为我没有域)

如果您打开了开发者控制台,您会看到出现 403 错误。此处进一步解释了此错误的原因:https://www.shoutmeloud.com/adsense-403-forbidden-error.html。简而言之:Adsense Crawlers 拒绝 Localhost。这就是为什么你有一个空白而不是广告。

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于您如何在 localhost 中呈现 Google 广告单元?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Backbone中呈现JSP页面

什么是 google oauth 同意屏幕值?

如何在 localhost 上测试 Google One-tap?获得 403

如何平铺 UIWebView?

在 Google Colab 笔记本中运行 localhost 服务器

如何修复您应该只在 IOS 的应用程序中显式呈现一个导航器