Analytics

Dub.co

使用 Dub.co 创建品牌短链接、管理 UTM 参数,并追踪营销活动表现。

Dub.co 是 Nebutra 的链接管理和营销分析层。它负责用户到达产品之前发生的一切:品牌短链接、UTM 追踪和点击分析。

Dub.co 提供的功能

  • 品牌短链接links.nebutra.com/welcomelinks.nebutra.com/upgrade-pro
  • UTM 管理 — 每个链接上的来源、媒介、活动、关键词和内容参数
  • 点击分析 — 每个链接的点击量、独立访客、来源、设备和国家
  • 活动分组 — 按活动对链接进行分组以获取汇总报告
  • 二维码 — 为每个短链接自动生成

配置步骤

dub.co 注册并为你的 Nebutra 项目创建一个工作区。

在 Dub.co 工作区设置中,添加你的品牌链接域名(例如 links.nebutra.com)。按照 Dub.co 的 DNS 说明配置 CNAME 记录。

前往工作区设置API 密钥创建 API 密钥。复制该密钥——它以 dub_ 开头。

将密钥添加到服务端环境(切勿在客户端暴露):

DUB_API_KEY=dub_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

在本地脚本或 API Gateway REPL 中运行以下代码片段,确认认证成功:

import { dub } from "@nebutra/analytics";

const workspaces = await dub.workspaces.list();
console.log(workspaces);

如无错误并返回你的工作区,则连接正常。

创建可追踪链接

使用 @nebutra/analytics 中的 dub 客户端以编程方式创建链接:

import { dub } from "@nebutra/analytics";

// 欢迎邮件链接
const welcomeLink = await dub.links.create({
  url: "https://app.nebutra.com/dashboard",
  domain: "links.nebutra.com",
  slug: "welcome",
  utm_source: "email",
  utm_medium: "transactional",
  utm_campaign: "onboarding",
});

// 应用内升级提示横幅链接
const upgradeLink = await dub.links.create({
  url: "https://app.nebutra.com/settings/billing",
  domain: "links.nebutra.com",
  utm_source: "app",
  utm_medium: "banner",
  utm_campaign: "upgrade-pro",
  utm_content: "quota-warning-banner",
});

console.log(welcomeLink.shortLink); // → https://links.nebutra.com/welcome

UTM 参数规范

Nebutra 在所有活动中使用统一的 UTM 分类体系。遵守这些规范,可以确保 PostHog 的流量归因保持准确:

参数取值示例
utm_source流量来源emailapptwitterlinkedingoogle
utm_medium渠道类型transactionalnewslettercpcbannersocial
utm_campaign活动标识(kebab-case)onboardingupgrade-prolaunch-v2
utm_content具体元素(可选)cta-buttonquota-warning-bannerhero-headline
utm_term付费搜索关键词(可选)saas-analytics-tool

所有 UTM 参数值均使用小写 kebab-case。大小写混用会在 PostHog 中产生重复的归因条目。

常见链接模式

事务性邮件

每封事务性邮件的 CTA 都应使用可追踪链接:

import { dub } from "@nebutra/analytics";

async function sendWelcomeEmail(user: User) {
  const ctaLink = await dub.links.create({
    url: `https://app.nebutra.com/onboarding?userId=${user.id}`,
    domain: "links.nebutra.com",
    utm_source: "email",
    utm_medium: "transactional",
    utm_campaign: "onboarding",
    utm_content: "welcome-email-cta",
  });

  await sendEmail({
    to: user.email,
    subject: "欢迎使用 Nebutra",
    cta: { label: "立即开始", href: ctaLink.shortLink },
  });
}

应用内推荐链接

import { dub } from "@nebutra/analytics";

async function generateReferralLink(userId: string, orgSlug: string) {
  return dub.links.create({
    url: `https://nebutra.com/?ref=${orgSlug}`,
    domain: "links.nebutra.com",
    utm_source: "referral",
    utm_medium: "in-app",
    utm_campaign: "user-referral",
    utm_content: userId,
    // 在 Dub.co 仪表盘中用于分组的标签
    tags: ["referral", `user-${userId}`],
  });
}

营销活动

对于付费活动,可通过 Dub.co 仪表盘或 API 批量创建链接并分配活动标签:

const variants = ["headline-a", "headline-b", "headline-c"];

const links = await Promise.all(
  variants.map((variant) =>
    dub.links.create({
      url: "https://nebutra.com/landing/paid",
      domain: "links.nebutra.com",
      utm_source: "google",
      utm_medium: "cpc",
      utm_campaign: "q1-acquisition",
      utm_content: variant,
      tags: ["paid", "q1-acquisition"],
    })
  )
);

查看分析数据

链接分析数据可在 Dub.co 仪表盘 app.dub.co 中查看:

  • 链接分析 — 每个链接的随时间变化的点击量、来源、国家和设备
  • 活动分析 — 按标签/活动汇总的指标
  • 热门链接 — 按点击量排名

Dub.co 链接分析目前可通过 Dub.co 控制台 app.dub.co 查看。内嵌到 /admin/analytics 管理面板的功能已在 Roadmap 中。在此之前,可使用下方的 retrieveLinkStats() 工具函数,以编程方式将数据指标嵌入自定义管理视图。

通过 API 获取链接统计数据

import { dub } from "@nebutra/analytics";

const stats = await dub.analytics.retrieve({
  linkId: welcomeLink.id,
  interval: "30d",
  groupBy: "referrer",
});

// stats.clicks → 总点击量
// stats.groupedData → 按来源的分类数据

How is this guide?

目录