问题描述
我遵循了 google adsense 网站上的建议,指示我在页面的标签中添加以下代码。
<script data-ad-client="ca-pub-64xxxxxxxxxxx" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
我已经通过将其添加到我的 application.html.erb 文件中来实现这一点。
在我第一次加载页面时将其部署到 Heroku 后,我收到以下控制台错误:
googleads.g.doubleclick.net/pagead/ads?guci=1.2.0.0.2.2.0.0&client=ca-pub-64xxxxxxxx Failed to load resource: the server responded with a status of 403 ()
我怀疑尽管有经过验证的网站,但我可能不得不等待广告开始传播,但我还有第二个问题:
然后在导航到我网站上的不同页面后,我得到:
adsbygoogle.js:72 Uncaught P {message: "adsbygoogle.push() error: Only one AdSense head tag supported per page. The second tag is ignored.",name: "TagError",pbr: true,stack: "TagError: adsbygoogle.push() error: Only one AdSen…lesyndication.com/pagead/js/adsbygoogle.js:238:39"}
我没有复制标签中的代码,但我想知道这是否是 turbolinks 的功能。
我的网站已通过验证并且我启用了自动广告,但我认为我的实施存在问题。有没有人有在 Rails 6 应用程序中使用 turbolinks 5 实现谷歌广告的经验?
解决方法
403 问题
我认为你是对的。传播需要时间。如果它持续几天 - 那么还有别的东西。您仍然收到此错误吗?
Only one AdSense head tag supported per page
错误
这可能与某些框架功能有关,是的。但是这个错误总体上是无害的,它不会影响广告的投放。当您说“导航到其他页面”时-您知道它是重新加载页面还是仅更新 html 而不重新加载?如果是后者,那么当框架获取第二个页面并呈现它时 - 该页面很可能也有一个 adsbygoogle.js
标签。鉴于该页面未重新加载 - 旧的 adsbygoogle.js
标记仍在加载,并且您会收到此错误。