Netlify 分析介绍

Avatar of Leslie Cohn-Wein and Sarah Drasner
Leslie Cohn-Wein 和 Sarah Drasner

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

您花了一些时间开发一个副项目。您认为它很酷!您决定将其发布到世界各地。然后……它运行良好。或者它运行不佳。等等,是这样吗?您忘记添加分析——当时您并没有想到。现在您很好奇有多少人访问过该网站,但是……您不确定。Netlify 分析闪亮登场。

有很多次我

  • 忘记添加分析
  • 不想增加额外的页面权重,或者
  • 我担心隐私问题

我上个月发布了一个 CSS 网格生成器,并且忘记添加分析。发布很成功,但现在对我来说有点像黑盒子,不知道那里发生了什么,或者将来是否需要调整发布。但是,现在我可以启用 Netlify 分析 并查看过去的信息,而不会丢失任何信息。太棒了

Netlify 分析没有很多花哨的功能——它并非旨在取代超级全面的营销工具。但是,如果您想在不添加大量脚本的情况下获取有关您网站的一些数据,它可以成为一个方便的工具。

它真正令人称道的一点是 **准确性**。由于数据来自服务器,因此您可以清楚地了解服务器实际提供的服务,而不是依赖第三方,而第三方由于诸如广告拦截器等因素可能导致报告不一致(例如,据估计 15% 的用户 使用 Ghostery 等工具),缓存和其他因素。

分析仪表盘

每个网站的仪表盘显示了一些“一目了然”的信息

chart showing some of at a glance information

然后,您可以按特定日期深入了解更详细的信息

chart showing by date

有一些来自主要来源和主要页面的信息

chart showing top sources

有一个“找不到的主要资源”区域,显示您的访问者尝试从您的网站检索但失败的任何页面、图像或任何内容。当我在我的网站上启用它时,我能够修复一个我早已忘记的损坏资源。

能够检查我的一些开发项目的运行情况将会很棒。但我也很高兴能够从我的工作中去除额外的实现步骤。需要注意的注意事项是,您的网站需要由 Netlify 托管才能使用分析工具,并且它是付费功能。您启用的任何网站都将在“带宽使用情况”图表中显示长达 90 天(3 个计费周期),如果足够旧,则在所有其他图表中显示长达 30 天,但是从您启用分析到计算和填充仪表盘之间可能需要长达 2 天的时间。

幕后

分析仪表盘本身使用 React 和 Highcharts 构建。Highcharts 是一个 JavaScript 图表库,其中包括响应式选项和 辅助功能模块。所有组件都从我们内部的分析 API 获取数据。

在开发开始之前,我们进行了一项内部数据可视化库比较调查,以便为我们的需求选择最佳库。我们选择 Highcharts 而不是其他流行的选项,例如 d3.js,主要是因为这意味着 Netlify 的任何具有 JavaScript 经验的工程师都可以加入并做出贡献,无论他们是否具备深入的 SVG 和 D3 相关知识。

虽然图表本身呈现为 SVG 元素,但 Highcharts 允许您 使用 HTML 渲染图表中的任何文本,从而简化和加快我们的开发时间,并允许我们使用 CSS 进行高级样式设置。 Highcharts 文档 也是一流的,并通过其声明式 API 提供大量自定义选项。

我们使用了 Highcharts 的 React 包装器 来为每种类型的图表创建可重用的 React 组件。“主要来源”、“主要页面”和“找不到的主要资源”卡片使用不同的组件显示 <table>,使用作为 props 传递的数据。

在构建这些图表的 UI 方面,我们遇到的一个更棘手的挑战是在面积图的 X 轴上以不会显得过于拥挤的方式显示日期。

Highcharts 提供了一个选项,可以使用 JavaScript 回调函数 自定义轴标签的格式,因此我们利用它来将每个隔一个日期显示为标签。在此基础上,我们编写了一个算法来捕获显示的每个月的第一个日期,并将月份名称添加到标签的标记中,使 UI 更简洁易懂。

其他分析替代方案,以及代码片段

如果您仍然希望运行第三方脚本和其他类型的分析,Netlify 具有全局添加到 <head><body> 标签的功能。这很有用,因为根据您网站的设置方式,将第三方脚本添加到每个页面可能会有点麻烦。此外,有时您希望允许不访问存储库的人员更改这些脚本。转到仪表盘中的特定站点,然后单击 设置构建和部署后处理

在那里您将找到代码片段注入

单击“添加代码片段”,您将可以选择是否要将第三方代码片段添加到 <body><head> 标签中,并且您将有机会以 HTML 格式发布您的代码。例如,如果您需要添加 Google Analytics,您需要将其包装在类似这样的脚本标签中

<script async src="https://#/gtag/js?id=UA-68528-29"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-XXXXX-XX');
</script>

您还可以为其命名,以便您可以跟踪它。如果您以后需要添加更多内容,这将很有帮助。

就是这样!

您可以使用内置的新 Netlify 分析产品或更强大的工具开始运行。