【问题标题】:Is Google adsense available for localhost?Google adsense 是否可用于本地主机?
【发布时间】:2015-01-07 23:59:54
【问题描述】:

是否可以在本地服务器上运行 google adsense 广告作为示例应用程序的试用? 我想在我的网络应用程序中实施 Google Adsense 广告,该应用程序在本地网站上运行,然后在实时网站中实施。 如果可能的话,请给我建议。

谢谢。

【问题讨论】:

    标签: localhost adsense


    【解决方案1】:

    是的,这是可能的(截至 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;为您的广告代码添加参数以指定这是一个测试实现。请务必将此参数设置为“开启”,以确保不会记录点击次数和展示次数,并且不会向广告商收费。默认值为“关闭”。

    【讨论】:

    • 这个建议今天仍然有效吗?测试了代码(放置了正确的 pub id 和 slot id),但它不起作用 - 我只看到一个应该显示广告的空白区域。
    • 我也只看到了空白。但是,您可以在 Backup ads 下的广告设置中选择不同的颜色显示在 AdSense 控制面板中。这至少可以准确显示广告的展示位置。
    • @tyteen4a03 确实你是对的,我应该更积极参与!
    • 对我也不起作用。它只是留下空白的空间。尝试了data-adtest 和data-ad-test。
    • 这不应再被标记为解决方案,因为它根本不起作用。谷歌浏览器检查员说failed to load resource, 403,所以超级管理员应该再次将此问题标记为未解决,并附注:2019 年需要解决方案!
    【解决方案2】:

    经过大量的尝试和错误,这就是我发现的。至少,这些是我的结果。

    adsbygoogle.js 似乎不会在localhost 上呈现广告。您可能会得到如下内容:

    因此,您需要做的第一件事就是为您的localhost 设置一个本地自定义域。

    这是我在 Windows 上所做的:

    • 以管理员身份运行记事本。
    • 打开 C:\Windows\System32\drivers\etc\hosts
    • 将您的自定义域添加到列表中

    然后你应该可以通过点击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 &lt;script/&gt; 标签。

    <script data-ad-client="XXXXXXXX" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    

    【讨论】:

    • 我是否理解正确:没有问题,test.mydomain.com 不能被公共 DNS 解析?这也适用于不同的域名吗?因此,如果我调用了我的主机 mydomain.test,我可以将它添加到我的 Adsense 帐户中设置测试标志,它应该可以工作吗?
    • 如果我没记错的话,您的 AdSense 帐户需要一个有效的注册/验证域。然后您可以添加该域的子域变体。但我不认为你可以添加不同的域名。每一个都需要验证。比如mydomain.com 与mydomain.test 是不同的域。
    • 谢谢,这是我对我所寻找的答案的回答。我工作正常
    【解决方案3】:

    我也无法在 localhost 中使用 data-adtest="on" 显示广告。由于仍然有一个空的 div,作为一种快速解决方法,我为样式添加了一个边框,所以它看起来像 display: inline-block; border: 1px solid green;。我只关心展示位置以及它如何与我的布局互动,而不是广告的外观,所以这让我能够查看广告的尺寸并相应地进行布局调整。

    【讨论】:

    • 是的,同样,为了安全起见,我添加了min-height: 10vh; min-width: 50vw; ,这样 chrome 就不会捕获导致页面崩溃的空广告。
    【解决方案4】:

    按照以下步骤,我可以让 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&lt;:PORT_NUMBER&gt;,如果您的本地服务器可用的端口号不是80)。

    从资源中获得灵感的步骤:

    https://medium.com/@jeffersonlicet/testing-ads-on-localhost-300215b415d6

    https://stackoverflow.com/a/34389120/1979861

    注意:还要注意广告(样式)的空间。如果这受到某些宽度或高度的限制,您可能会收到错误消息,并且您会看到一个空白。

    【讨论】:

      【解决方案5】:

      你可以把它作为代码的第一行:

      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

      【讨论】:

        【解决方案6】:

        通过在我的hosts 文件中添加一个条目,我能够在 localhost 中投放广告。

        sudo vi /etc/hosts
        

        然后在文件末尾添加以下内容:

        127.0.0.1 local.your-page.com
        

        您现在可以通过 http://local.your-page.com:3000 访问您的本地主机 请注意,您仍然需要添加端口(在此示例中为 :3000)

        此外,在处理广告时,最好在无任何浏览器扩展程序的情况下进行隐身测试(它们可能会阻止广告)

        【讨论】:

          猜你喜欢
          • 2018-02-09
          • 2023-03-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-01
          • 2014-07-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多