【发布时间】:2019-10-19 09:48:06
【问题描述】:
我一直在关注这个例子:
https://www.jamesbaum.co.uk/blether/using-google-adsense-with-react/
我有这个组件:
import React from "react";
export default class AdBanner extends React.Component {
componentDidMount () {
(window.adsbygoogle = window.adsbygoogle || []).push({});
}
render () {
return (
<div className='ad'>
<ins className='adsbygoogle'
style={{ display: 'block' }}
data-ad-client='div-gpt-ad-1536172937182-0'
data-ad-slot='/164808479/Leaderboard'
data-ad-format='auto' />
</div>
);
}
}
我的index.html上有这个:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
当我运行我的测试页面时,我没有看到广告呈现并且出现这个错误:
我不知道这个错误是什么意思或如何解决它。
值得一提的是,客户端和插槽 ID 在非反应测试应用程序中完美运行所以这里肯定有其他问题。
另外,我正在通过 localhost:8080 进行测试——它适用于非反应测试应用程序,所以我认为这不是 localhost/google 广告问题。
在我们旧的非反应应用中
在我们的<header>:
<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>
<script>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
</script>
<script>
googletag.cmd.push(function() {
googletag.defineSlot('/164808479/Leaderboard', [728, 90], 'div-gpt-ad-1536172937182-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
在我们的<page.php>:
<!-- /164808479/Leaderboard -->
<div id='div-gpt-ad-1536172937182-0' style='height:90px; width:728px;'>
<script>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1536172937182-0'); });
</script>
</div>
这会立即产生一个有效的广告,即使来自127.0.0.1:80(通过 Docker 运行)我们的问题是我们缺乏在 React 组件中进行这项工作的能力。
【问题讨论】:
-
但是 src url 不一样吧?
//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js与https://www.googletagservices.com/tag/js/gpt.js? -
嗯,是的,我从 React Google Ads 示例中获取了那个示例,我将链接放在了帖子的顶部。
-
好的。那么为什么你觉得它使用的是相同的 Google API?重点:你为什么断言你是在比较苹果和苹果?
-
我按照信函链接中的示例,将我们的插槽和 ID 替换为我们在旧实现中使用的那个。然而,服务与它们在我们的旧应用程序和这个人的示例中的使用方式之间似乎存在严重的不匹配。我将尝试为此提供公平的竞争环境,并使用我们自己的 Google API 链接。
标签: javascript reactjs adsense