# Content Analytics



The Vault's second live connection, and the other **writer**. Once a week
Surface renders your traffic and conversion numbers as a Markdown document and
commits it to the Vault, so an agent drafting on Monday can read what actually
happened last week without a single API call.

## What It Writes, and Where [#what-it-writes-and-where]

|               |                                                                                                                |
| ------------- | -------------------------------------------------------------------------------------------------------------- |
| **Runs**      | Weekly, Sunday 07:15 UTC                                                                                       |
| **Writes to** | `Content Analytics/<YYYY-MM-DD>.md`, dated by the week it covers                                               |
| **Live when** | The [Surface Tag](https://www.withsurface.com/docs/platform/traffic/surface-tag) is installed. The panel reads "tag not installed" until it is |

The document is **model-free**. It is rendered from the same query the Content
Analytics screen runs, so the numbers in the Vault and the numbers on screen
are the same numbers, and nothing paraphrased them on the way.

## What the Report Contains [#what-the-report-contains]

Three tables. The first is the week's totals against the week before, and the
Change column carries both the absolute move and the percentage:

```md title="Content Analytics/2026-09-06.md (values illustrative)"
| Metric | Current week | Previous week | Change |
| --- | ---: | ---: | ---: |
| Pageviews | 12,480 | 10,905 | +1,575 (+14%) |
| Unique visitors | 8,112 | 7,340 | +772 (+11%) |
| Form starts | 316 | 284 | +32 (+11%) |
| Form completions | 141 | 149 | -8 (-5%) |
| Meeting bookings | 38 | 31 | +7 (+23%) |
```

The second is the same numbers &#x2A;*per
[tracked content pattern](https://www.withsurface.com/docs/platform/traffic/analytics)**, plus each pattern's
category and strategy cluster, so you can see which pages moved rather than
only that the total did.

The third is **AI traffic sources**: how many pageviews came from each answer
engine, and what share of the week that was.

A metric with nothing to report is written as a dash rather than a zero, so an
empty cell in a real report means "no data", not "none".

## Self-archiving [#self-archiving]

Reports land flat in `Content Analytics/` until there are ten of them. From
then on, each new one is written to `Content Analytics/<YYYY>/<MM>/` and the
flat ones are moved into the same layout. Nothing is deleted; the folder just
stops being a wall of files.

## When It Skips a Week [#when-it-skips-a-week]

The job writes nothing, rather than writing an empty report, in three cases:

* The environment has **no Vault**.
* **No tracked content patterns** remain, so there is nothing to report per
  pattern.
* **Content Ops access has expired** for the environment.

A missing week is one of those three, not a failure to look at.

## Reading It from an Agent [#reading-it-from-an-agent]

The document is Markdown in the Vault like any other, so:

```
browse_vault  { "pathPrefix": "Content Analytics/" }
read_vault_documents { "documents": [{ "path": "Content Analytics/2026-09-06.md" }] }
```

That is the cheap way to give a drafting agent last week's numbers. The
[analytics MCP tools](https://www.withsurface.com/docs/mcp-server/tools#analytics) are the live alternative
when you need something the weekly report does not carry.

[Traffic Intelligence →](https://www.withsurface.com/docs/platform/traffic/analytics) ·
[Competitor Monitoring](https://www.withsurface.com/docs/platform/vault/connections/competitor-monitoring)
