如何使用 Nodejs 建立 Web 和 API 产品分析
本指南将指导您如何建立跨平台分析来跟踪 API 和 Web 应用上的客户行为。通过跟踪 API 和 Web 应用上的客户行为,您可以充分了解客户旅程和指标,例如首次 Hello World 时间和价值实现时间。更多信息请参阅我们的博客文章,跟踪开发人员从注册到第一个 API 调用的过程》
然而,光收集数据是不够的。毕竟,如果不采取行动,数据就没有多大用处。这就是为什么我们将向您介绍如何使用这些数据通过以下方式向客户发送电子邮件通过电子邮件使用这些数据向客户发送电子邮件。根据客户的使用情况和行为。
专业提示:用户已注册但从未集成或激活?向他们发送有关如何集成 API 的有用资源。
在同伴中文章,我们写了关于如何在 Moesif 仪表板中配置行为电子邮件的文章。在本文中,我们将介绍基于 Node.js 的 API 的整个设置过程。
先决条件
本操作指南需要 Moesif帳戶和Node.js。
项目设置
首先,我们需要使用 NPM 创建一个新的 Node.js 项目:
$ mkdir moesif-email
$ cd moesif-email
$ npm init -y && npm i express moesif-nodejs
如果一切顺利,输出应该包含以下几行:
- express@4.17.1
- moesif-nodejs@3.0.0
我们将在 Node.js 和 Express 的基础上构建我们的 API 和注册网站。Moesif SDK for Express 将把 API 监控数据发送到 Moesif 服务。
使用 Moesif 浏览器 SDK 创建网站
首先,我们需要创建一个网站。我们将使用 Moesif 浏览器 SDK 发送具有特定用户 ID 的客户端事件。这将在 Moesif 服务上创建带有元数据的新用户,稍后,我们将允许将该用户链接到我们将从网站发送的 API 请求。moesif-email/index.html 的代码如下所示:
<script src="//unpkg.com/moesif-browser-js@^1/moesif.min.js"></script>
<h1>Demo API</h1>
<button id="start">Send client event</button>
<button id="api">Send API request</button>
<pre id="target"></pre>
<script type="text/javascript">
moesif.init({ applicationId: "<YOUR_MOESIF_APP_ID>" });
const userId = "demo-user-123";
moesif.identifyUser(userId, {
email: "<YOUR_EMAIL>",
firstName: "Jane",
lastName: "Doe",
});
document.getElementById("start").addEventListener("click", () => {
moesif.track("clicked_start");
document.getElementById("target").innerHTML = "clicked_start";
});
document.getElementById("api").addEventListener("click", async () => {
const response = await fetch("/api", {
headers: { Authorization: userId },
});
const json = await response.json();
document.getElementById("target").innerHTML = JSON.stringify(json, null, 2);
});
</script>
我们包含了 Moesif 浏览器 SDK,创建了两个按钮并将它们与两个操作关联起来,发送一个客户端事件和一个 API 请求。SDK 配置了 userId,因此 Moesif 知道是谁发送了客户端事件。不要忘记将其替换<YOUR_MOESIF_APP_ID>
为您的实际 Moesif 应用程序 ID 和<YOUR_EMAIL>
您自己的电子邮件。
客户端操作使用浏览器 SDK 来告知 Moesif 网站上发生的事情。在本例中,就是单击按钮。这与我们的 API 无关,但以后可能会很有趣。例如,当用户通过网站注册,但随后没有发送任何请求时。
API 请求将使用 Authorization 标头告知 API 用户 ID。这样,Moesif 稍后可以将客户端事件与 API 请求关联起来。
使用 Moesif Express SDK 创建 API
下一步是 API 服务器。我们将使用Express 框架
moesif-email/index.js 的代码应包含以下内容:
const fs = require("fs");
const express = require("express");
const moesif = require("moesif-nodejs");
const website = fs.readFileSync(__dirname + "/index.html");
const app = express();
app.use(
moesif({
applicationId: "<YOUR_MOESIF_APP_ID>",
logBody: true,
identifyUser: ({ headers }) => headers.authorization,
})
);
app.get("/", (request, response) => response.end(website));
app.get("/api", (request, response) =>
response.end(JSON.stringify({ timestamp: Date.now() }))
);
app.listen(8888, () => console.log(`Running at http://localhost:8888`));
首先,我们加载 index.html,然后创建一个 Express 应用并将其配置为使用 Moesif Express SDK 作为中间件。您需要将其替换YOUR_MOESIF_APP_ID
为您的实际 Moesif 应用 ID。
测试 API
为了测试 Express API,我们必须使用以下命令启动服务器:
$ node .
这应该输出以下行:
Running at http://localhost:8888
如果一切顺利,我们可以http://localhost:8888
通过浏览器导航到我们的网站并点击按钮。一个将发送客户端事件,另一个将发送 API 请求。
图 1:实时事件日志
如果您现在导航到 Moesif 仪表板(来自此处YOUR_MOESIF_APP_ID
),然后单击顶部的“事件”选项卡,您应该会看到四个不同的事件,如上图 1 所示。
用户操作事件是客户端事件。GET /api 事件是我们发送给 API 的请求。它们都带有用户名和公司注释。另外两个事件与加载网站和网站图标的浏览器请求有关。之所以包含它们,是因为我们像 API 一样使用相同的 Express 服务器来提供网站,但由于请求缺少授权标头,因此我们无法获得用户或公司注释。
图 2:用户摘要
如果您点击该用户,您会看到他们的“用户摘要”,其中包括该用户的电子邮件地址,如图 2 所示。
设置行为电子邮件
现在我们创建了 API 并知道它可以收集数据,我们可以设置行为电子邮件
创建群组
发送电子邮件的第一步是创建一个群组,即符合特定条件的一组用户。这些条件可以包括地理位置等人口统计信息,也可以包括已执行的事件。
为此,我们需要转到用户查找。要转到该页面,请点击顶部导航栏中的“用户”链接,然后点击第一个导航栏下方第二个导航栏中的“用户查找”链接。
图 3:用户查找
您现在看到的视图应该像图 3 中的屏幕截图那样。
我在屏幕截图中已经为我们的群组添加了一些标准。该群组中的用户应该有电子邮件,并且在过去 7 天内没有 API 调用。您可以复制该设置,点击“创建群组”,并将其命名为“无 API 调用的用户”。
创建电子邮件模板
通过群组定义,我们告诉 Moesif 用户需要满足什么标准才能获得电子邮件,或者用户必须做什么或不能做什么才能属于某个群组。
如果您导航到“警报和治理”然后到“行为电子邮件”,您可以配置您的 SMTP 服务器并创建用于通知您的用户的电子邮件模板。
图 4:电子邮件模板创建
图 4 显示了电子邮件模板创建的屏幕截图。在“发送至”下,您可以选择您的群组。如果您选中“重复工作流程”,Moesif 将不仅发送一次电子邮件,还会在特定时间间隔内检查用户是否仍然满足条件并应收到新电子邮件。
概括
使用 Moesif 只需几行代码即可向基于 Express 的 Node.js API 和网站添加端到端分析。
Moesif 浏览器和 Node.js SDK 可让您跟踪从初始注册到最后一次 API 调用的所有内容。这样您就可以将用户来自的渠道与 API 的实际使用情况联系起来,以便以后可以分析整个用户旅程。
利用行为电子邮件,您可以使用这些信息自动通知用户任何与 API 使用相关的信息。使用 Moesif 发送有用的电子邮件。