Javascript 使用谷歌adsense与React+;反应路由器
我正试图将谷歌Adsense整合到我的React网站中,但遇到了一个问题。为了在我的页面上获取广告,我已将此脚本标记包含到我的html文件的Javascript 使用谷歌adsense与React+;反应路由器,javascript,reactjs,react-router,adsense,Javascript,Reactjs,React Router,Adsense,我正试图将谷歌Adsense整合到我的React网站中,但遇到了一个问题。为了在我的页面上获取广告,我已将此脚本标记包含到我的html文件的头部: <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> 广告包装在一个简单的组件中,如下所示: export default class GoogleAdSense extends Component {
头部
:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
广告包装在一个简单的组件中,如下所示:
export default class GoogleAdSense extends Component {
componentDidMount() {
(window.adsbygoogle = window.adsbygoogle || []).push({});
}
render() {
const {
showAd,
className,
slot,
format,
} = this.props;
return (
<div className="GoogleAdSense">
<ins
className={ `adsbygoogle ${className}` }
style={{ display: 'block' }}
data-ad-client="ca-pub-7104738102834759"
data-ad-slot={slot}
data-ad-format={format}
>
</ins>
</div>
);
}
}
<GoogleAdSense
slot="3461840703"
className="QuestionGoogleAd"
format="auto"
/>
导出默认类GoogleAddSense扩展组件{
componentDidMount(){
(window.adsbygoogle=window.adsbygoogle | |[]).push({});
}
render(){
常数{
肖瓦德,
类名,
狭槽
格式,
}=这是道具;
返回(
);
}
}
由以下其他组件渲染:
export default class GoogleAdSense extends Component {
componentDidMount() {
(window.adsbygoogle = window.adsbygoogle || []).push({});
}
render() {
const {
showAd,
className,
slot,
format,
} = this.props;
return (
<div className="GoogleAdSense">
<ins
className={ `adsbygoogle ${className}` }
style={{ display: 'block' }}
data-ad-client="ca-pub-7104738102834759"
data-ad-slot={slot}
data-ad-format={format}
>
</ins>
</div>
);
}
}
<GoogleAdSense
slot="3461840703"
className="QuestionGoogleAd"
format="auto"
/>
这个方法是从文章中提取出来的
使用上述实现,可以在页面上正确加载广告。当用户导航到其他页面时会出现问题。因为我使用的是react路由器,所以头部不会更新(react头盔标题的一些更改除外),Adsense脚本也不会重新加载。这让Adsense认为它与我获得的Adsense页面浏览量和Adsense文档显示的页面相同:
单独的JavaScript代码:当用户的浏览器执行AdSense广告代码时,AdSense统计页面视图
当我检查Adsense HTTP请求时,我可以看到有一个prev_fmts
参数可以记住以前请求的ads,这一事实进一步证明了这一点:
问题是,在大约12-16个广告出现后(每页2个,最多8个页面浏览量),Adsense会返回一个空html文档,每个后续广告请求都有400个错误:
如果我通过点击cmd-r手动刷新页面,广告将再次正确加载,但仅在接下来的几个页面浏览中加载。我尝试删除我前面提到的
脚本
,并在每次页面更改时将其重新插入头部,因为这(理论上)会重新运行广告代码并触发新的Adsense页面视图,但这不起作用。这个网站的主要目的是能够显示广告以产生稳定的收入流,如果我不能使用React在我所有的页面浏览量上显示广告(我现在平均每个用户20个),我将不得不重新实现整个网站,这是我真正不想做的。还有其他人经历过这种情况并找到了解决方案吗?你可以用谷歌标签来管理你的adsense显示器
它们具有刷新页面上广告的功能,可用于客户端应用程序您可以使用准备好的react组件来有趣的。。。我会尝试一下,等我知道更多的时候再给你回复。谢谢你的洞察力!