javascript - 如何使用 gatsby-plugin-gdpr-cookies 设置 Gatsby Cookie 同意横幅

标签 javascript reactjs cookies google-analytics gatsby

我的网站收集 Google Analytics 的信息,因此我需要包含一个 Cookie 同意横幅,供用户选择加入/退出。

我看到了插件 gatsby-plugin-gdpr-cookies 并认为它看起来很完美。 我已经跟踪启动并将其放入我的配置文件中。但我不知道下一步该做什么。我是否需要创建一个横幅组件并以某种方式将其链接起来?我尝试四处寻找其他示例,但没有看到任何示例。

感谢任何帮助,谢谢。

最佳答案

您必须结合 Gatsby 插件并构建您自己的 cookie 同意横幅或使用现成的组件来实现此目的。

首先为 AskaNor_29建议您需要安装并配置 gatsby-plugin-gdpr-cookies 插件。您可以获取插件here .

在 gatsby-config.js 中配置插件

// In your gatsby-config.js
module.exports = {
  plugins: [
    {
      resolve: `gatsby-plugin-gdpr-cookies`,
      options: {
        googleAnalytics: {
          trackingId: 'YOUR_GOOGLE_ANALYTICS_TRACKING_ID',
          // Setting this parameter is optional
          anonymize: true
        },
        facebookPixel: {
          pixelId: 'YOUR_FACEBOOK_PIXEL_ID'
        },
        // Defines the environments where the tracking should be available  - default is ["production"]
        environments: ['production', 'development']
      },
    },
  ],
}

第二部分是显示 cookie 同意横幅或模式,以便用户可以做出选择。

为此,您可以使用 react-cookie-consent npm 模块。可以获取npm包here .

要使其与 gatsby-plugin-gdpr-cookies 配合使用,您需要设置 cookieName="gatsby-gdpr-google-analytics" 属性。

然后,将 CookieConsent 组件放入 layout.js 文件中,以便在用户首先访问的任何页面上激活它。

<CookieConsent
          location="bottom"
          buttonText="Accept"
          declineButtonText="Decline"
          cookieName="gatsby-gdpr-google-analytics">
This site uses cookies ...
</CookieConsent>

该组件需要许多 Prop ,因此您可以调整行为和外观。

如果您希望同时设置 Google Analytics 和 Facebook Pixel Cookie,可以使用接受/拒绝 Cookie 的回调,您可以在其中添加自定义代码来设置这两个 Cookie。

如果你有兴趣,我写了一篇更长的 how-to describing the steps .

关于javascript - 如何使用 gatsby-plugin-gdpr-cookies 设置 Gatsby Cookie 同意横幅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59860068/

相关文章:

security - 哪些 cookie 属性唯一标识 cookie?

ruby-on-rails - 带有子域登录管理的 Rails 4 Multi-Tenancy

javascript - 为什么 d3js scaleTime 直方图中有最后一个无用的 bin?

css - 使用 Tailwind CSS react 过渡组

angularjs - 监听 cookie 是否已更改

javascript - 样式化组件 : Global Colors Style Sheet

javascript - ReactJS - React.Children.forEach - 我可以获得子组件名称吗?

javascript - 轮播(纯 CSS 和 npms)在 ReactJS 中显示不佳

javascript - 计算文本区域中文本的大小

javascript - 如何正确使用 setInterval 和 clearInterval 在两个不同的函数之间切换?