【发布时间】:2015-01-07 23:59:54
【问题描述】:
是否可以在本地服务器上运行 google adsense 广告作为示例应用程序的试用? 我想在我的网络应用程序中实施 Google Adsense 广告,该应用程序在本地网站上运行,然后在实时网站中实施。 如果可能的话,请给我建议。
谢谢。
【问题讨论】:
是否可以在本地服务器上运行 google adsense 广告作为示例应用程序的试用? 我想在我的网络应用程序中实施 Google Adsense 广告,该应用程序在本地网站上运行,然后在实时网站中实施。 如果可能的话,请给我建议。
谢谢。
【问题讨论】:
是的,这是可能的(截至 2015 年)。有一个特殊的参数,可以在没有风险的本地主机上使用 Adsense。
如今,AdSense 代码有所不同。如果要添加 adtest 参数,请在 ins 块中使用 data-adtest="on"。这是一个示例代码:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- XYZ 336 x 280 -->
<ins class="adsbygoogle"
style="display:inline-block;width:336px;height:280px"
data-ad-client="ca-pub-XXXXXXXXXXXXX"
data-adtest="on"
data-ad-slot="XXXXXXXXXXX"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
在 Google AdManager 帮助中找到此内容:
它显示了如何实现这一点的基本教程。
Test Ad Exchange tags without charging advertisers or recording clicks and impressions
添加 google_adtest = on;为您的广告代码添加参数以指定这是一个测试实现。请务必将此参数设置为“开启”,以确保不会记录点击次数和展示次数,并且不会向广告商收费。默认值为“关闭”。
【讨论】:
Backup ads 下的广告设置中选择不同的颜色显示在 AdSense 控制面板中。这至少可以准确显示广告的展示位置。
data-adtest 和data-ad-test。
failed to load resource, 403,所以超级管理员应该再次将此问题标记为未解决,并附注:2019 年需要解决方案!
经过大量的尝试和错误,这就是我发现的。至少,这些是我的结果。
adsbygoogle.js 似乎不会在localhost 上呈现广告。您可能会得到如下内容:
因此,您需要做的第一件事就是为您的localhost 设置一个本地自定义域。
这是我在 Windows 上所做的:
然后你应该可以通过点击dev.mydomain.com访问你的localhost
设置本地域后,您应该转到您的 AdSense 帐户并将其添加为您注册网站的主域下的子域。
根据我运行的测试。如果域/子域尚未添加到您的 AdSense 帐户,AdSense 似乎不会呈现真实的广告或测试广告。
在此示例中,我添加了不带 www 的主域,并添加了两个子域。一个是www. 变体,另一个是我刚刚添加到localhost 的dev.。
然后你可以在你的代码上渲染它,就像你在一个真正的 add 上一样,并使用设置为 on 的 data-adtest 标志来运行你的测试。
<ins className="adsbygoogle"
style={{display:"inline-block", width:"100%", height: "100%"}}
data-ad-client={AD_SENSE_ACCOUNT}
data-ad-slot={AD_SENSE_SLOT}
data-adtest={ON_DEV ? "on" : "off"}
>
</ins>
我有一个 ON_DEV 标志,只要我在我的 dev. 域上,它就会自动将其设置为 on。
额外
这超出了这个问题的范围,但对于一切正常工作都是必要的。
您还需要将其推送到adsbygoogle 数组。这就是我在 React 中的做法。
useEffect(()=>{
(window.adsbygoogle = window.adsbygoogle || []).push({});
},[]);
当然,您还需要在index.html 上加上adsense <script/> 标签。
<script data-ad-client="XXXXXXXX" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
【讨论】:
mydomain.com 与mydomain.test 是不同的域。
我也无法在 localhost 中使用 data-adtest="on" 显示广告。由于仍然有一个空的 div,作为一种快速解决方法,我为样式添加了一个边框,所以它看起来像 display: inline-block; border: 1px solid green;。我只关心展示位置以及它如何与我的布局互动,而不是广告的外观,所以这让我能够查看广告的尺寸并相应地进行布局调整。
【讨论】:
min-height: 10vh; min-width: 50vw; ,这样 chrome 就不会捕获导致页面崩溃的空广告。
按照以下步骤,我可以让 Adsense 广告在 localhost 上正常工作:
1) 在myDomain的根目录中添加ads.txt文件
https://support.google.com/adsense/answer/7532444?hl=en-GB
该文件应可用于GET at myDomain.com/ads.txt
(我不确定如果没有这一步,广告是否可以正常工作)
2) 编辑hosts系统文件:
在 Linux 和 macOS 中,您可以在 /etc/hosts 找到它
有这样一行127.0.0.1 mylocalstuff.myDomain.com
运行sudo killall -HUP mDNSResponder
可能还需要重新启动浏览器。
如果没有这一步,你可能会得到一个403
3) 在ins 标记中使用data-adtest="on",以免影响展示次数。
在浏览器中访问mylocalstuff.myDomain.com(或mylocalstuff.myDomain.com<:PORT_NUMBER>,如果您的本地服务器可用的端口号不是80)。
从资源中获得灵感的步骤:
https://medium.com/@jeffersonlicet/testing-ads-on-localhost-300215b415d6
https://stackoverflow.com/a/34389120/1979861
注意:还要注意广告(样式)的空间。如果这受到某些宽度或高度的限制,您可能会收到错误消息,并且您会看到一个空白。
【讨论】:
你可以把它作为代码的第一行:
google_adtest = "on";
test-adsense-ads-on-your-site
请注意,您必须将分号 (;) 放在此行的末尾。
将此行添加到代码后,对于 adsense 单元,它将显示为测试单元,并且不会计算其展示次数。
非常重要的注意事项 - 一旦您对 adsense 单元感到满意,请不要忘记从代码中删除这一行。
查看此链接: http://www.hacktrix.com/2-ways-to-safely-test-google-adsense-ads-on-your-site
【讨论】:
通过在我的hosts 文件中添加一个条目,我能够在 localhost 中投放广告。
sudo vi /etc/hosts
然后在文件末尾添加以下内容:
127.0.0.1 local.your-page.com
您现在可以通过 http://local.your-page.com:3000 访问您的本地主机
请注意,您仍然需要添加端口(在此示例中为 :3000)
此外,在处理广告时,最好在无任何浏览器扩展程序的情况下进行隐身测试(它们可能会阻止广告)
【讨论】: