我正在尝试在我的Sapper构建的网站中设置AdSense,但我没有成功。我已经将代码添加到template.html文件中,它可以工作,但是我想使用一个组件在特定页面上显示它。
目标是在资源页面上的侧边栏中显示广告(参见图像)。其上面的小部件是由index.svelte页面加载的组件,因此我希望对广告做同样的处理。
目前,我有以下内容:
- AdSense脚本在template.html文件中,然后
- 在组件OnMount函数中,我从template.html文件中获取Adsense代码,并将其放置在组件内的div中,然后从template.html文件中删除它。
template.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>
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>
这将会把Adsense代码放在正确的位置,但广告不会显示出来。 我在控制台上得到的错误是:"adsbygoogle.push() error: No slot size for availableWidth=0"(见图像) 控制台错误 我也参考了这篇文章 链接,但没有成功。
任何帮助都将不胜感激 :)