Hen*_*nry 4 adsense svelte sapper
我正在尝试在我的 Sapper 构建的网站中设置 AdSense,但没有成功。我已将代码添加到 template.html 文件中并且它可以工作,但我想使用组件在特定页面上显示它。
目标是在资源页面的侧边栏上显示广告(见图)。它上面的小部件是由 index.svelte 页面加载的组件,因此我想对广告执行相同的操作。
目前,我有以下几点:
模板.html
<footer>
<!-- GoogleAdsence Script. -->
<div id="gAdsense-code" style="display: none;">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-X0X0X0X0X0X0X" crossorigin="anonymous"></script>
<!-- Resource page Ad -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-X0X0X0X0X0X0X"
data-ad-slot="X0X0X0X0X0X0"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
</footer>
Run Code Online (Sandbox Code Playgroud)
adswidget.svelte
<script>
import { onMount } from 'svelte';
onMount(() => {
window.addEventListener( 'load', () => {
//get ads-widget div
let adWidget = document.getElementById('ads-widget');
let adCode = document.getElementById('gAdsense-code');
let adHtml = adCode.innerHTML;
adCode.remove();
//append Adsence code from the head on resources index file
adWidget.innerHTML = adHtml;
});
});
</script>
<div id="ads-widget"><!-- Adsence code inserted onMount --></div>
Run Code Online (Sandbox Code Playgroud)
这会将 Adsense 代码放置在正确的位置,但广告不会显示。我在控制台上收到的错误是:“adsbygoogle.push() 错误:没有可用宽度=0 的插槽大小”(参见图片) 控制台错误
我也参考过这篇文章,但没有成功。
任何帮助将不胜感激 :)
在看到一篇展示如何在 React 中实现 Adsense 的文章后,我能够将其调整为在 Svelte 中工作。因此,发布答案以防对其他人有帮助:
模板.html
...
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-X0X0X0X0X0X0X" crossorigin="anonymous"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
将“adsbygoogle”代码放入组件的 OnMount() 函数中。但是,稍微修改一下。而不是(adsbygoogle = window.adsbygoogle ...)你会做(window.adsbygoogle = window.adsbygoogle ...)
<ins>另外,在样式之后的同一组件内添加标签。所以该文件看起来像这样:
AdsWidget.svelte
<script>
onMount(() => {
(window.adsbygoogle = window.adsbygoogle || []).push({});
});
</script>
<style>
...
</style>
<div class="ads-widget-container">
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-X0X0X0X0X0X0X"
data-ad-slot="X0X0X0X0X0X0"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
</div>
Run Code Online (Sandbox Code Playgroud)
就这样。希望这可以帮助某人节省一些时间。
| 归档时间: |
|
| 查看次数: |
2102 次 |
| 最近记录: |