Gatsbyjs + Google Analytics - 跟踪自定义事件?

2024-02-29

是否可以通过 gatsby 和 google Analytics 跟踪自定义事件?


我用过ReactGA https://github.com/react-ga/react-ga与盖茨比合作并取得了巨大的成功。

对于基本的事件跟踪 - 例如记录单击的链接 - 它非常易于使用。您在组件中创建一个日志记录功能来访问ReactGA.event然后在渲染函数中使用调用它onClick.

记录 PDF 下载的示例组件:

import React from 'react'
import Link from 'gatsby-link'
import ReactGA from 'react-ga'

import logo from './logo.png'
import financials from './Annual_Report_Financials_2017_FINAL.pdf'

class LoggingDownload extends React.Component {
  logger() {
    // Detect each click of the financial PDF
    ReactGA.event({
      category: 'Financial Download',
      action: 'User clicked link to view financials'
    })
  }

  render() {
    return (
      <div>
        <nav className="nav-container">
          <Link to="/locations">
            <img className="logo" src={logo} alt="Logo" />
          </Link>
          <ul className="nav-item-container">
            <li className="nav-item">
              <a href="/shortsignup/" target="_blank">Join Us</a>
            </li>
            <li className="nav-item">
              <a href={financials} onClick={this.logger} target="_blank" id="financials-pdf">Financials</a>
            </li>
          </ul>
        </nav>
      </div>
    )
  }
}
export default LoggingDownload

还有更多的用例 - 查看 ReactGA 文档。

另外:不要忘记包括ggatsby-plugin-google-analytics在你的gatsby-config.js文件作为使上述内容正常工作的依赖项:

{
  resolve: `gatsby-plugin-google-analytics`,
  options: {
    trackingId: "UA-#########-##",
    // Puts tracking script in the head instead of the body
    head: false,
    // Setting this parameter is optional
    respectDNT: true,
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gatsbyjs + Google Analytics - 跟踪自定义事件? 的相关文章

  • Crypto-Js 库的 hmac-256 脚本返回函数结构而不是 Google Apps 脚本中的值,在外部工作正常吗?

    我正在设置一个谷歌电子表格项目来连接到我的 CryptoExchange API 但是当涉及到这个简单的 CryptoJs Hmac sha256 脚本时 它不起作用 它返回函数结构而不是值 而在外部它工作正常 看我的jsfiddle ht
  • 为什么隐式符号到字符串转换会导致 JavaScript 中出现类型错误?

    有一个 toString on Symbol在 ES6 中 它返回字符串表示形式Symbol 但想知道为什么 Symbol 不起作用 运行这个表达式会抛出TypeError我没想到 后者只是打电话吗 toString 在一个新的Symbol
  • 如何使用 JavaScript 选择预节点/块中的文本?

    我了解不允许 JS 将任意文本复制到剪贴板背后的安全原因 但是是否有一种方法可以通过单击按钮来选择预节点中的文本 类似于 select 函数在输入中的工作方式 我不是在寻找复制到剪贴板的 jQuery 插件 我只想突出显示预块中的文本 以便
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • 雅虎 OAuth2 隐式授予流程不适用于新的雅虎应用程序

    我有现有的网络应用程序和专用雅虎应用程序 https developer yahoo com apps 在职的 它用OAuth2 隐式授权流程 https developer yahoo com oauth2 guide flows imp
  • 递归修剪对象中所有元素的更好方法?

    如果我有一个像这样的物体 const obj field subfield innerObj a asdasd asdas innerArr s ssad innerArrObj b adsad 我想出了这样的东西 const trimFi
  • React 应用程序中的 addEventListener 不起作用

    一些背景 我正在尝试消费自定义网络组件在 React 应用程序中并尝试监听来自 Web 组件的事件 我相信您不能只在自定义 Web 组件上以通常的反应方式处理事件 i e
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • html canvas动画卡顿

    谁能解释为什么提供的画布动画断断续续 我创建了一个测试存根来演示该问题 我在桌面上的 FF Chrome IE 以及 Android 上的 FF 和 Chrome 中看到了卡顿现象 口吃是由于垃圾收集造成的吗 似乎 raf 在每次调用时都会
  • JavaScript:常量属性

    在javascript中 我可以将对象的属性声明为常量吗 这是一个示例对象 var XU Cc Components classes or function aXU this Cc Components classes var XU new
  • setInterval() 在用户离开选项卡时暂停?

    javascript 中是否有任何方法的行为类似于 setInterval 并且当用户离开选项卡时停止并在用户再次进入选项卡时恢复 您可以使用以下方法创建自己的 API可见性API https developer mozilla org e
  • Firebase 身份验证在 iOS 登录时卡住,没有错误

    我已经使用电子邮件和密码设置了 firebase 身份验证登录的最基本实现 firebase auth signInWithEmailAndPassword email password then gt console log Logged
  • put方法中的Angularjs文件上传不起作用

    我有一个简单的待办事项应用程序 我试图在其中上传照片和单个待办事项 现在我已经创建了这个工厂函数来负责待办事项的创建 todosFactory insertTodo function todo return http post baseUr
  • 尝试使用 Firebug 查找 JavaScript 文件中的函数

    我试图找到这个函数调用 myFooBar 该函数在某些 HTML 中内联引用 但页面加载了大量 JavaScript 并且在每个文件中搜索该函数需要相当多的工作 如何使用 Firebug 找到此函数所在的 JavaScript 文件 打开脚
  • jQuery 悬停时滚动到 div 并返回到第一个元素

    我基本上有一个具有设定尺寸的 div 和overflow hidden 该 div 包含 7 个子 div 但一次只显示一个 我希望当它们各自的链接悬停时能够平滑地垂直滚动 但是 第一部分 div 没有链接 并且是没有悬停链接时的默认部分
  • 根据特定字符获取整个字符串或子字符串

    我有一个包含 MIME 类型的字符串 例如application json 现在我想将其与实际的 HTTP 标头进行比较 在本例中content type 如果标头包含 MIME 类型 那么就很简单 if mimeType contentT
  • Aurelia - 仅 HTML 自定义元素的内联定义

    我的 Aurelia 视图模型中有一个递归对象 如下所示 Class BottomlessPit Name string MorePits BottomlessPit null 因此 我想在 Aurelia 视图中使用递归模板 它只会在一个
  • p5 向量减法“sub”返回错误

    我一直在尝试将 p5 草图上传到 React 构建中 使用react p5 wrapper 我能够成功在屏幕上渲染画布 但是 某些矢量函数会导致错误 var distance this position dist ball position
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • CollisionBitMask 如何工作? Swift/SpriteKit

    据我所知 物理体的默认设置是当它们相互碰撞时会相互弹开 直到您将它们的碰撞位掩码设置为相同的数字 然而 由于我相信碰撞位掩码 我在完成看起来应该非常简单的事情时遇到了一个巨大的问题 let RedBallCategory UInt32 0x
  • 订阅主题的 Angular HTTP 调用关闭主题

    我有两个可以获取给定对象的服务 用于获取完整列表的初始 HTTP 调用 以及用于实时更新新元素的 Websocket 通知 我想将这两个调用连接到同一个可观察对象 以便显示页面不了解后端 有这样的电话 private getInitialD
  • UIWebView:禁用富文本编辑器的复制/剪切选项

    我有一个带有 contentEditable div 的 UIWebView 来实现某种富文本编辑器 一旦用户选择任何文本片段 我需要修剪 UIMenuController 中出现在 Web 视图中的复制和剪切选项 网络上似乎有很多解决方案
  • hive 0.14 更新和删除查询配置错误

    在阿帕奇中hive 0 14我们可以通过支持更新和删除查询ACID配置 hive configuration hive support concurrency true hive enforce bucketing true hive ex
  • 在Qt中获取本地IP地址

    有没有跨平台的方法来获取本地IP地址 即看起来像192 168 1 49 使用Qt的计算机 我想为 Symbian 手机创建一个 FTP 服务器 并且想显示 FTP 客户端应连接的 IP 地址 Use QNetworkInterface a
  • 如何追加多个文本文件并将每个文件名放入 pandas 的新列中?

    我有很多 txt文件夹中的文件 每个文件具有相同的结构 每个文件中的四列相同 但行数不同 1 txt 0 00781238 0 00082577 0 00781238 0 03314453 0 01562476 0 00064219 0 0
  • opencv - 使用特征检测进行对象跟踪

    我想跟踪视频中的一个对象 例如 移动的球 参考opencv教程 Features2D Homography来查找已知对象 我已经能够通过提供参考图像来跟踪静态图像中的对象 我计划使用参考图像从输入视频的第一帧中检测移动物体 对于下一帧 在前
  • SQL 约束检查值是否不存在于另一个表中

    在我的 PostgreSQL 中9 4数据库 我有一个表fields有一个柱子name具有独特的价值观 我正在创建一个新表fields new具有类似的结构 这里不重要 和一个列name以及 我需要一种方法来约束name要插入的值field
  • 如何打开 SwiftUI 应用程序并使用 Siri Intent Extension 中的 NSUseractivity 执行功能?

    我的问题 我的应用程序有自己的使用意图扩展创建的快捷方式操作 他们完美地执行后台操作 对于某些操作 我试图使意图扩展在快捷方式中运行时打开主 容器 应用程序并执行功能 我在使用 NSUserActivity 时遇到了麻烦 我不确定它是一个
  • 用Java编写多线程映射迭代器

    我有一个通用映射迭代器 如下所示 class Mapper
  • 为什么 sys.getrefcount() 返回 2?

    据我了解 sys getrefcount 返回对象的引用数量 在以下情况下 应该 为 1 import sys numpy a numpy array 1 2 3 4 print sys getrefcount a 然而 结果却是2 所以
  • 下载 iOS 时流式传输视频

    我使用的是 iOS 7 我有一个 mp4 视频需要在我的应用程序中下载 该视频很大 约 1 GB 这就是它不包含在应用程序中的原因 我希望用户能够在开始下载后立即开始观看视频 我还希望视频能够缓存在 iOS 设备上 这样用户以后就不需要再次
  • 如何将日志记录添加到带有时间戳的文件到 Raspberry Pi 的 Python TCP 服务器

    我的项目有点陷入困境 我迫切需要帮助 我需要一个简单的 TCP 服务器 python 代码 它具有日志记录和时间戳等功能 我可以将其用于我的 Raspberry Pi 这是我的最后一年项目 我看过一些例子 但由于我在编写自己的脚本 代码方面
  • 如何卸载 awslogs-agent-setup.py?

    仅使用后sudo python awslogs agent setup py region us east 1在我的 Amazon Linux AMI 上 我从 AWS 文档中发现了以下警告 请勿使用 RPM 安装更新 CloudWatch
  • 如何在 Android 8/9 上为 OkHttp 3.12.x 启用 TLSv1.3?

    我在 Android 9 Pixel 2 设备 上使用 OkHttp 3 12 2 并尝试连接到使用 OpenSSL 1 1 1 运行的 nginx 1 14 0 nginx 支持 TLSv1 3 我使用 Ubuntu 18 04 上的 F
  • 为什么C++中没有像Delphi中那样的“初始化”关键字?

    在切换到 C 之前 我们发现initializationDelphi 中的语言元素非常有用 它允许您在每个单元中拥有在程序启动时调用的代码 因此您可以初始化该单元的各个元素 我们认为这确实使事情变得更容易并有助于保持代码整洁 那么为什么没有
  • 如何修复重叠的注释/文本

    我试图阻止注释文本在我的图表中重叠 已接受的答案中建议的方法Matplotlib 重叠注释 https stackoverflow com questions 8850142 matplotlib overlapping annotatio
  • Oracle hibernate序列生成器问题

    我正在使用 oracle 11g Java struts2 和 Hibernate 开发一个应用程序 我有名为 mytemp 的表 其列 mytemp id 的类型为 NUMBER 22 0 在我的 mytemp hbm xml 文件中 I
  • ng-repeat 中的 Angular UI 日期选择器仅适用于第一个块

    当我在 ng repeat 块中使用 Angular ui datepicker 时 datepicker 仅适用于第一个块 对于其余的重复块 虽然显示日历 但无法选择日期 有人可以告诉我如何让它工作吗 我尝试在模型名称后附加 parent
  • Gatsbyjs + Google Analytics - 跟踪自定义事件?

    是否可以通过 gatsby 和 google Analytics 跟踪自定义事件 我用过ReactGA https github com react ga react ga与盖茨比合作并取得了巨大的成功 对于基本的事件跟踪 例如记录单击的链