# 接入统计与查看分析报告

了解内容访问、阅读行为及媒体传输报告。

想先了解功能，可以查看[网站、内容与媒体数据分析](/zh-cn/analytics/)。本指南介绍统计脚本接入、事件上报和报告的阅读方法。

在组织中打开**数据分析**，查看已发布内容和媒体的使用情况。总览展示组织整体数据，内容与媒体各自提供详细报告。

## 查看内容报告

先选择统计日期，再按内容空间筛选，或选择具体文件。选择文件时，也会选中它所属的内容空间。切换内容空间会清除文件筛选；选择全部内容空间则返回组织汇总。

| 指标       | 含义                                                     |
| ---------- | -------------------------------------------------------- |
| 浏览量     | 统计脚本记录的页面访问                                   |
| 阅读次数   | 页面处于可见状态累计至少十秒，且访问者看到文章底部的访问 |
| 点赞次数   | 网站通过明确的点赞操作提交的事件                         |
| 估算访客数 | 根据匿名浏览器标识估算，不代表独立自然人的数量           |

每日趋势、来源网站和国家分布，可以帮助了解访问来自哪里。文件列表会优先显示记录到的页面标题，并在下面列出内容空间和仓库路径。没有内容文件路径的模板页面可以计入汇总，但不会出现在文件列表中。

阅读事件表示访问者到达了文章末尾，不代表已经理解文章。点赞需要网站提供明确的操作；统计脚本不会自动添加按钮，也不会根据滚动推断点赞。

<figure>
  <img
    src="/images/screenshots/analytics/content-breakdowns.jpg"
    width="1440"
    height="900"
    alt="Prosefly 数据分析中的内容文件、访问来源和国家分布。"
    loading="lazy"
  />
  <figcaption>使用示例数据的报告。文件列表展示页面标题、内容空间和仓库路径。</figcaption>
</figure>

## 每月事件额度

组织内所有内容空间共用网站统计事件额度。

| 套餐     | 每月事件数 |
| -------- | ---------- |
| Personal | 100K       |
| Team     | 1M         |
| Business | 5M         |

所有计费周期的每月额度相同。页面浏览、完成阅读和点赞各计为一个事件，标题、文件路径、设备等属性不另外计数。统计脚本下载和报表查询不计入；音视频请求使用单独的传输量额度。

超额后仍会继续采集数据，报表也可正常查看。组织连续两个月超过套餐额度后，我们会提醒升级套餐；不会自动升级、自动收取超额费用，也不会因超额暂停服务。

## 接入网站

在**数据分析 → 内容**中打开安装统计脚本（Install tracking script），选择内容空间，复制生成的代码。对话框会填入组织 slug 和内容空间 UUID，不会改变当前报告的筛选条件，也不会替你将脚本安装到网站。

<figure>
  <img
    src="/images/screenshots/analytics/tracking-script.jpg"
    width="1440"
    height="900"
    alt="安装统计脚本对话框，展示选中的内容空间和生成的脚本代码。"
    loading="lazy"
  />
  <figcaption>
    组织 slug 和内容空间 UUID
    使用占位符的接入示例。请选择自己的内容空间，复制对应的脚本代码。
  </figcaption>
</figure>

将 Prosefly 的统计脚本加载到展示已发布内容的网站上。填写组织 slug 和内容空间 UUID，并在网站构建内容时输出准确的仓库相对路径。

```html
<script
  defer
  src="https://analytics.prosefly.com/tracker.js"
  data-org="YOUR_ORGANIZATION_SLUG"
  data-space="YOUR_CONTENT_SPACE_ID"
  data-filepath="src/content/blog/zh-cn/hello.mdx"
></script>
```

将 YOUR_ORGANIZATION_SLUG 替换为组织 slug（例如 prosefly），将 YOUR_CONTENT_SPACE_ID 替换为内容空间 UUID。对话框生成的代码已包含这些值。示例文件路径也需要换成仓库中的真实路径；内容空间位于子目录时，路径应包含该根目录前缀。统计脚本无法从公开页面链接推断 Git 文件路径。纯模板页面没有对应的内容文件时，省略 `data-filepath`。

在 Astro 中，为这个外部脚本添加 `is:inline`，保留 data 属性和普通脚本行为。本地开发时跳过加载，避免测试访问进入报告。还可以通过 `data-content` 指定文章的 CSS 选择器；默认依次查找标记的内容容器、`article` 和 `main`。

设置了 Content Security Policy 的网站，需要允许从统计服务加载脚本并建立连接。每页只加载一次，并遵守网站适用的隐私要求。使用客户端路由时，在新页面渲染后调用 `window.proseflyAnalytics.page({ filepath, location, content })`，传入当前文件路径；普通整页跳转则由新页面正常加载脚本。

```js
window.proseflyAnalytics?.page({
  filepath: 'src/content/blog/zh-cn/next.mdx',
  location: window.location.href,
  content: 'article',
});
```

请换成新文章的真实路径。模板页面省略 `filepath`，不会沿用上一篇文章的路径。调用 `page()` 前，请先更新页面标题。

## 记录点赞

在网站自己的点赞按钮点击处理中，调用 `window.proseflyAnalytics?.track('like')`。事件会使用统计脚本当前页面的信息，包括内容空间，以及已提供的文件路径。

```html
<button id="like-button" type="button">点赞</button>
```

渲染按钮后，为它添加点击处理函数：

```js
document.getElementById('like-button')?.addEventListener('click', () => {
  window.proseflyAnalytics?.track('like');
});
```

每次调用记录一次点赞操作，计入一个统计事件。统计脚本不会添加按钮、防止重复点赞、保存访客的点赞状态，也不支持撤销点赞事件。按钮状态和重复点击需要由网站处理，例如点赞后禁用按钮，或为点击处理函数添加防抖。

## 日期与报告状态

统计日期按 UTC 计算。快捷日期范围包含今天，午夜前后可能与你的本地日期不同。今天及最近几天的数据仍可能处理和修订，报告并不保证实时更新。

正在加载、没有记录到活动和报告暂时不可用，是不同的状态。报告不可用时，可以重试。保存时间表示正在展示之前获取的报告，不完整结果提示则表示可展示的记录有限。仅凭空白报告，不能断定网站没有人访问。

## 媒体是独立报告

媒体报告按自己的筛选条件展示音视频传输及文件详情。内容浏览与媒体传输开始是不同的事件，访客估算也不会相加。媒体的额度和统计解释见[媒体库](/docs/zh-cn/media/#媒体统计)。
