在 Nuxt.js 项目中添加 Google AdSense 代码的方式主要有以下几种,具体方法取决于你的需求(如全局加载、组件内嵌入、使用 Nuxt 插件等)。
1. 直接在 nuxt.config.js
中添加 AdSense
最简单的方法是在 nuxt.config.js
中的 head
选项里添加 AdSense 的 script
:
export default {
head: {
script: [
{
src: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js",
async: true,
'data-ad-client': 'ca-pub-XXXXXXXXXXXXXXX' // 替换为你的 AdSense 客户端 ID
}
]
}
}
优点:全局生效,所有页面都会加载 AdSense。
缺点:可能会影响部分性能,并且不适用于单独控制广告加载。
2. 在组件中手动插入广告
如果你希望在特定页面或组件内加载广告,可以使用 <ins>
标签手动嵌入 AdSense 代码。
在 components/AdSense.vue
组件中:
<template>
<div>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-XXXXXXXXXXXXXXX"
data-ad-slot="XXXXXXXXXX"
data-ad-format="auto"
data-full-width-responsive="true">
</ins>
</div>
</template>
<script>
export default {
mounted() {
this.loadAds();
},
methods: {
loadAds() {
try {
(window.adsbygoogle = window.adsbygoogle || []).push({});
} catch (e) {
console.error("AdSense error:", e);
}
}
}
};
</script>
然后在页面或 layout
文件中使用:
<template>
<div>
<h1>我的文章</h1>
<AdSense />
</div>
</template>
<script>
import AdSense from '~/components/AdSense.vue';
export default {
components: {
AdSense
}
};
</script>
优点:可以灵活控制广告出现的位置。
缺点:需要手动在每个需要展示广告的地方引入组件。
3. 使用 Nuxt 插件自动加载 AdSense
如果希望更优雅地管理 AdSense,可以创建一个 Nuxt 插件。
(1) 创建插件 plugins/adsense.js
export default ({ app }) => {
if (process.client) {
const script = document.createElement('script');
script.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
script.async = true;
script.setAttribute('data-ad-client', 'ca-pub-XXXXXXXXXXXXXXX'); // 替换为你的 AdSense ID
document.head.appendChild(script);
}
};
(2) 在 nuxt.config.js
中注册插件
export default {
plugins: [
{ src: '~/plugins/adsense.js', mode: 'client' }
]
};
优点:全局生效,不会影响 SSR 渲染,适合 Nuxt。
缺点:需要手动管理广告位置。
4. 结合 nuxt-google-adsense
模块(推荐)
nuxt-google-adsense 是一个专门用于在 Nuxt.js 项目中集成 Google AdSense 的模块。
(1) 安装依赖
npm install nuxt-google-adsense
(2) 在 nuxt.config.js
中配置
export default {
modules: [
'nuxt-google-adsense'
],
googleAdsense: {
id: 'ca-pub-XXXXXXXXXXXXXXX', // 你的 AdSense 客户端 ID
pageLevelAds: true,
analyticsUacct: 'UA-XXXXXXXXX-X', // 可选,用于 Google Analytics
analyticsDomainName: 'example.com'
}
}
优点:模块化管理,自动加载,无需手动插入 script
。
缺点:额外的依赖,可能不适合所有场景。
总结
方法 | 适用场景 | 优缺点 |
---|---|---|
nuxt.config.js 直接添加 script | 适合全局使用 AdSense | 简单直接,但控制力较弱 |
组件内手动插入 <ins> | 适合特定页面、精准控制广告位置 | 更灵活,但需要手动加载广告 |
使用插件 plugins/adsense.js | 适合全局管理 | 避免 SSR 问题,但仍需手动嵌入广告组件 |
使用 nuxt-google-adsense 模块 | 适合长期使用 AdSense 的项目 | 配置简单,但依赖额外模块 |
如果你需要全局加载,推荐方法 1 或 4;如果你想控制广告出现的位置,推荐方法 2 或 3。