@elgorditosalsero/react-gtm-hook

中文文档
2.7.2发布于 2023/05/03MITTypeScriptESM + CJS零依赖近 30 天下载 13.7万

通过 Hook 轻松管理 Google 标签管理器

中文使用文档
文档目录15 节
  1. 特征
  2. 安装
  3. 如何使用
  4. 注意一点
  5. 基础
  6. 带有自定义的 DataLayer 名称
  7. 带有自定义 DataLayer 名称和初始值
  8. 使用 GTM 自定义环境
  9. 向 GTM 发送数据
  10. API 密码
  11. 输入
  12. 已发送DataTOGTM
  13. 示例
  14. 许可证
  15. 贡献者

矿工想要, 请实现 如果你感兴趣

React Google Tag Manager Hook

反应 Google 标签管理器 Hook

方便使用 Google 标签管理器

有了这个自定义的钩子,您可以轻松地使用0配置的 Google 标签管理器,只需要通过 容器标识来啊!

特征

安装

$ yarn add @elgorditosalsero/react-gtm-hook
# or
$ npm install @elgorditosalsero/react-gtm-hook

如何使用

注意一点

从v2.0起 我利用上下文在全球分享GTM为"虎克"的配置. 如果你正在寻找 1.x医生,检查 这个

基础

import { GTMProvider } from '@elgorditosalsero/react-gtm-hook'

const App = () => {
  const gtmParams = { id: 'GTM-ID' }

  return (
    <GTMProvider state={gtmParams}>
      <p>My awesome app</p>
    </GTMProvider>
  )
}

带有自定义的 DataLayer 名称

import { GTMProvider } from '@elgorditosalsero/react-gtm-hook'

const App = () => {
  const gtmParams = {
    id: 'GTM-ID',
    dataLayerName: 'customDataLayerName'
  }

  return (
    <GTMProvider state={gtmParams}>
      <p>My awesome app</p>
    </GTMProvider>
  )
}

带有自定义 DataLayer 名称和初始值

import { GTMProvider } from '@elgorditosalsero/react-gtm-hook'

const App = () => {
  const gtmParams = {
    id: 'GTM-ID',
    dataLayer: {
      'my-custom-value': 'value',
      'my-awesome-value': 'awesome'
    },
    dataLayerName: 'customDataLayerName'
  }

  return (
    <GTMProvider state={gtmParams}>
      <p>My awesome app</p>
    </GTMProvider>
  )
}

使用 GTM 自定义环境

import { GTMProvider } from '@elgorditosalsero/react-gtm-hook'

const App = () => {
  const gtmParams = {
    id: 'GTM-ID',
    environment: {
      gtm_auth: 'my-auth-token',
      gtm_preview: 'preview-id'
    }
  }

  return (
    <GTMProvider state={gtmParams}>
      <p>My awesome app</p>
    </GTMProvider>
  )
}

寻找 gtm_auth 财务报告和审定财务报表 gtm_preview 您自定义 GTM 环境的值, 请转到 Admin > 您的容器 > 环境 > 您的环境 > 动作 > 在您的 Google 标签管理器控制台中获取片段 。 您可以在片段中找到您需要的值 .

向 GTM 发送数据

import { GTMProvider, useGTMDispatch } from '@elgorditosalsero/react-gtm-hook'

const App = () => {
  const gtmParams = {
    id: 'GTM-ID',
    dataLayerName: 'customDataLayerName'
  }

  return (
    <GTMProvider state={gtmParams}>
      <div>
        <p>My awesome app</p>
        <MyAwesomeComp />
      </div>
    </GTMProvider>
  )
}

const MyAwesomeComp = () => {
  const sendDataToGTM = useGTMDispatch()

  const handleClick = () => sendDataToGTM({ event: 'awesomeButtonClicked', value: 'imAwesome' })

  return (
    <div>
      <p>My Awesome Comp</p>
      <button onClick={handleClick}>My Awesome Button</button>
    </div>
  )
}

API 密码

useGTM 提供干净易用 API 配置 GTM

输入

名称类型需求资讯
编号String对标记管理器的容器ID, 它看起来像: GTM-0T0TTT
数据 LayerObject无自定义数据Layer的值, 如 {'my-init-prop': 'value'}
数据LayerNameString无自定义数据Layer的名称, 如果不通过, 它将是默认 : dataLayer
环境Object无提供 gtm_auth 财务报告和审定财务报表 gtm_preview 使用自定义 GTM 环境的参数
无String无服务器生成了非ce. 见 https://developers.google.com/tag-manager/web/csp 页面存档备份,存于互联网档案馆
插入脚本Boolean无默认( e)true:决定GTM脚本是否被注入,参见#30. 还允许通过在流中转接真实值来延迟注入
自定义域String无默认( e)https://www.googletagmanager.com: 提供自定义域以使用自定义 GTM 域
自定义脚本NameString无默认( e)gtm.js: 提供自定义脚本Name 以使用自定义文件名

已发送DataTOGTM

名称类型需求资讯
数据Object对发送到 GTM 的对象数据, 例如 {event: 'my-awesome-event', 'my-custom-var': 'value'}

示例

你可以看到这个自由的活在奉献上 站点

许可证

react-gtm-hook 根据麻省理工学院的许可

贡献者

All Contributors

感谢这些伟大的人emoji 密钥:

Guido Porcaro
圭多·波尔卡罗

💻 📖
Ben Yap
本亚普

💻 📖 ⚠️
Cristian Livella
克里斯蒂安·利韦拉

💻
Jason Finch
杰森・芬奇

💻
Italo
意大利语Name

💻
Gianluca La Manna
吉安卢卡·拉·曼纳

📖
Kazuki
和树

💻
Stepan Mandryka
斯捷潘·曼德利卡

💻
Simon Smith
西蒙·史密斯

📖
Listiani
利斯蒂亚尼

💻 📖
pkulcsarnr
缓冲器

💻 📖
sin
罪恶

💻

本项目遵循 全部贡献者 规格。 任何捐款都欢迎!

版本与发布记录

@elgorditosalsero/react-gtm-hook 共发布 23 个版本,首次发布于 2020/05/27;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.7.2latest2023/05/033 年前
2.7.12023/04/283 年前
2.6.02022/09/204 年前
2.5.02022/09/014 年前
2.4.02022/03/284 年前
2.3.12022/02/224 年前

关于 @elgorditosalsero/react-gtm-hook 的常见问题

@elgorditosalsero/react-gtm-hook 是什么?

通过 Hook 轻松管理 Google 标签管理器

如何安装 @elgorditosalsero/react-gtm-hook?

在项目目录运行 npm install @elgorditosalsero/react-gtm-hook,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^16.13.1 || ^17.0.0 || 18)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@elgorditosalsero/react-gtm-hook 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@elgorditosalsero/react-gtm-hook 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@elgorditosalsero/react-gtm-hook 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@elgorditosalsero/react-gtm-hook 可以商用吗?

@elgorditosalsero/react-gtm-hook 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@elgorditosalsero/react-gtm-hook 的下载量有多少?

根据 npm 官方下载统计,@elgorditosalsero/react-gtm-hook 在 2026/10/14 – 2026/11/12 这 30 天内被下载 136,874 次,日均约 4,562 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@elgorditosalsero/react-gtm-hook 还在维护吗?

最新版本 2.7.2 发布于 2023/05/03(3 年前);至今共发布 23 个版本,其中过去 12 个月发布了 0 个;首次发布于 2020/05/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。