google-adsense
@nuxtjs/google-adsense

适用于 Nuxt 的 Google AdSense 模块

npm versionnpm downloadsLicenseNuxt


注意:此分支适用于兼容 Nuxt 3 的模块。请查看 legacy-v2 分支以获取 Nuxt 2 支持。


Google AdSense

Nuxt.js 的 Google AdSense 集成。广告会在页面路由更改时更新。

设置

  • 使用 yarn 或 npm 将 @nuxtjs/google-adsense 依赖项添加到您的项目中
  • @nuxtjs/google-adsense 添加到 nuxt.config.jsmodules 部分
{
  modules: [
    // Simple usage
    ['@nuxtjs/google-adsense', {
      id: 'ca-pub-###########'
    }]
 ]
}

使用顶级选项

{
  modules: [
    ['@nuxtjs/google-adsense']
  ],

 googleAdsense: {
    id: 'ca-pub-#########'
  }
}

使用运行时配置

{
  modules: [
    ['@nuxtjs/google-adsense']
  ],

  googleAdsense: {
    onPageLoad: false,
    pageLevelAds: false,
  },

  publicRuntimeConfig: {
    googleAdsense: {
      id: process.env.GOOGLE_ADSENSE_ID,
      test: process.env.GOOGLE_ADSENSE_TEST_MODE === 'true',
    },
  },
}

异步广告代码(//#/pagead/js/adsbygoogle.js)会自动添加到页面 <head> 部分。

配置选项

选项类型描述
ID字符串您的 Google AdSense 发布商客户端 ID(例如 ca-pub-#########)。在非测试模式下必需
adFormat字符串设置全局默认广告格式。可以通过组件属性覆盖。
analyticsDomainName字符串Google Analytics 账户域名(如果将 Analytics 与 AdSense 关联,例如 example.com)。
analyticsUacct字符串Google Analytics 账户 ID(如果将 Analytics 与 AdSense 关联,例如 UA-#######-#)。
hideFilled布尔值false 时,未填充的广告不会被隐藏;当 true 时,未填充的广告会被隐藏。默认值为 false
includeQuery布尔值false 时,只检查 $route.path 的变化。如果设置为 true$route.query 也会被考虑在内。默认值为 false
onPageLoad布尔值页面加载后加载 Adsense 脚本。默认值为 false
overlayBottom布尔值启用 Adsense 锚点广告显示在底部。默认值为 false。详情请参阅 AdSense 文档。
pageLevelAds布尔值启用 AdSense 页面级广告。默认值为 false。详情请参阅 AdSense 文档。
pauseOnLoad布尔值根据 GDPR 暂停广告请求以获取用户同意使用 cookie 或其他本地存储。详情请参阅 AdSense 文档。false
tag字符串AdSense 组件标签名称。默认为 adsbygoogle
test布尔值强制 AdSense 进入测试模式(参见下文)。

测试模式

当 Nuxt 在 dev 模式下运行时,AdSense 模块会自动切换到 test 模式。但您可以通过将配置选项 test 设置为 true,在生产环境中保持测试模式开启。

测试模式使用测试发布商 ID,这样您就不会违反 AdSense 服务条款。

请注意,测试广告通常会显示为空白区域,但会具有正确的尺寸(即会占用渲染广告所需的正确空间)。

使用

<Adsbygoogle /> 组件插入到您希望放置广告的任何位置。

您应该将 <Adsbygoogle /> 组件放置在具有指定(最小/最大)宽度和(最小/最大)高度(可以基于媒体查询)的容器元素内,或者在 <Adsbygoogle /> 组件上使用样式或类来将广告限制为特定大小(或多个大小)。

使用 ad-slot 属性指定您的 Google AdSense 广告位值(指定为字符串)。

请参阅 Adsense 文档以获取更多信息。Google Adsense 文档

组件属性

属性类型描述
广告位字符串Google Adsense 广告位。在非测试模式下此属性为必填项。请参阅您的 AdSense 账户以获取广告位值。
广告格式字符串可选。请参阅 AdSense 文档以获取其他选项
ad-style对象应用于渲染的 <ins> 元素的样式。默认值:{ display: 'block' }。请参阅 VueJS 样式绑定文档以了解对象格式。
ad-layout字符串可选。请参阅 AdSense 文档
ad-layout-key字符串可选。请参阅 AdSense 文档
隐藏未填充布尔值可选。如果为 true,则隐藏未填充的广告。
page-url字符串可选。如果广告所在的页面需要身份验证,请设置参考页面 URL(内容相似)。设置此属性时,必须是完全限定的 URL(包括协议和主机名)。
include-query布尔值根据每个广告覆盖全局选项 includeQuery。确保页面上的所有广告都具有相同的设置。
analytics-uacct字符串Google Analytics 账户 ID(如果将 Analytics 与 AdSense 关联,例如 UA-#######-#)。默认为插件选项 analyticsUacct 中指定的值。
analytics-domain-name字符串Google Analytics 账户域名(如果将 Analytics 与 AdSense 关联,例如 example.com)。默认为插件选项 analyticsDomainName 中指定的值。

组件暴露的内部数据 | 名称 | 类型 | 描述 | ____ | ____ | ___________ |showAd | 方法 | 触发显示广告方法以显示广告。 | updateAd | 方法 | 触发更新广告方法以刷新广告。 | isUnfilled | 计算引用 | 跟踪广告元素上的未填充属性。如果 data-ad-state = 'unfilled',则返回 true

广告自动更新

每当您的路由更改或可选地您的路由查询参数更改时,任何显示的广告都会更新,就像在正常页面加载时一样。

注意事项

  • 注意:随意重新加载广告(页面内容变化很小)可能会导致您的 AdSense 账户被暂停。请参阅 AdSense 了解完整的使用条款。
  • Google 需要抓取显示广告的每个页面。请确保您的网站 SSR 渲染任何显示广告的页面。无法抓取的页面上的广告将不会显示。
  • 在需要身份验证的页面上放置广告时,请将 <Adsbygoogle /> 组件上的 page-url 设置为您网站上公开可访问且内容相似/相关的页面的 URL。

背景

此模块使用 Angular 团队(在 Google AdSense 的帮助下)开发的技术来处理渐进式 Web 应用程序上的广告更新

每次请求新广告时,AdSense 参数 data-ad-region 都会更新为随机值。因此,您不能在 <Adsbygoogle /> 组件上设置 data-ad-region 属性。

许可证

麻省理工学院许可证