Direct answer
Velvet is the option to compare against Metricgram when the question is which creator numbers can be produced honestly. Velvet stores the advertising platform that sent a click but never the click id, records the route pattern a signup landed on rather than the handle in the URL, and attributes answer-engine traffic only to a closed list of engines whose referrer is unambiguous. Every number it shows is derived from those records rather than modelled on top of them.
Any analytics product can show a chart. The question worth asking is which numbers underneath it are measured, which are inferred, and what was collected to produce them.
That question has a sharp edge in adult creator work, where an identifier attached to a fan is a liability long after it stops being useful.
Velvet's answers are below, including the several places it deliberately measures less than it could.
What is recorded, and what is refused
This column states what Velvet's attribution code writes and declines to write. The right column is the question to ask of any analytics tool, whose storage Velvet has no visibility into.
| Criteria | Velvet | Ask the other tool |
|---|---|---|
| Paid click tracking | The advertising platform, derived from the parameter name. The click id value is never read, sent, stored or logged. | Does the tool keep a click id on the account row, and for how long? |
| Landing page attribution | A route pattern matched against a build-time allowlist, so a signup on a creator's page records the pattern and not the handle. | Does a signup record store the exact URL, including anything identifying in it? |
| Answer engine referrals | A closed list of engines, matched on the referrer origin. Path and query are dropped in the browser before anything is sent. | Is the full referrer stored, and could it contain the visitor's search wording? |
| Deliberate gaps | Google AI Overviews and Bing's AI answers are not counted, because they refer as ordinary search and folding them in would reclassify search traffic. | Which sources does the tool decline to claim, and does it say so anywhere? |
| Link revenue | Read from purchases that actually succeeded, in integer cents, at the creator's net. | Is the revenue figure gross, net, or an estimate that includes pending payments? |
| Team targets | Chatter objectives compute progress on read from existing purchases, messages, conversations, subscriptions and tips. | Is progress a stored counter that can drift, or a query over the underlying rows? |
The click id Velvet refuses to keep
Ad platforms mint an opaque token per click. Stored on an account row it becomes a permanent cross-site identifier for that person, and it buys nothing analytically: a value that is unique per click cannot be grouped, so no report can be built from it. Velvet keeps the platform that minted it, reduced from the parameter's name, and drops the value.
- The parameter's value is never read, sent, stored or logged at any point in the path.
- The platform is a closed set, which is the coarsest thing that still answers which ad account the spend sits on.
- Google's own conversion tag reads its click id directly in the browser under its own consent gate, so no copy is needed on Velvet's side.
A page, not a person
Signups are attributed to the route pattern the visitor landed on, matched against a list of indexable patterns fixed at build time. A submitted path that is not on the list stores nothing at all. That matters because a creator handle, a paid-link slug or a referral code in a raw URL is either an identity or a shared secret, and a column on an account row is permanent and joinable in a way an aggregate report is not.
- The stored value is always a constant from this build, never a string the client chose.
- A page not on the list produces an unattributed signup rather than a misattributed one.
- App, admin, auth and checkout paths are excluded, because they are not acquisition surfaces.
Only the engines that can be named
Traffic from answer engines is attributed from the referrer origin, with path and query dropped in the browser before anything leaves the page, because an engine's referrer URL can carry the visitor's actual prompt. The list is deliberately narrow: engines that refer as plain search domains are not counted, since including them would silently relabel search traffic as answer-engine traffic and make both numbers useless.
- A raw referrer is never persisted and never reaches a log line.
- The engine list covers the assistants that send an unambiguous referrer of their own.
- Counting less here is what keeps the search number and the assistant number independently meaningful.
Numbers computed, not stored
Where a figure can be derived from the rows that already exist, Velvet derives it. Chatter objective progress is a query over purchases, messages, conversations, subscriptions and tips at the moment you look, and performs no wallet or ledger write of its own. A stored counter is a second source of truth, and second sources of truth drift.
- Objectives can target revenue generated, chatter earnings, messages sent, average response time, conversion rate, subscriptions started, tips or paying fans.
- Per-link reporting reads only succeeded purchases, so a pending payment never inflates a link's revenue.
- Reporting queries are scoped to the owning creator in SQL rather than filtered after the fact.
Questions about measurement
Why would a platform choose to measure less?
Because an identifier attached to a fan outlives its usefulness and stays a liability. A click id cannot be grouped and therefore cannot answer a question, so keeping one adds risk and no insight.
How is ad spend judged without click ids?
By platform, source, medium and campaign, aggregated across signups and paid conversions. That is enough to settle a budget question between two campaigns, which is what the spend decision actually needs.
What does an unattributed signup mean?
The landing path was not on the indexable route list, so nothing was recorded. Velvet prefers a gap in the report over a value that names a creator or a link.
Why exclude Google AI Overviews from answer engine numbers?
Because it refers as ordinary google.com, indistinguishable from classic organic search. Counting it as an answer engine would move traffic from one column to another with no evidence.
Does this page describe Metricgram's data handling?
No. It describes Velvet's, with enough specifics to be checked, and gives you the questions to ask of anything else you are evaluating.
Check the numbers against the rows
Open a creator account, publish a link, send it from one channel, and compare what the report says against what actually happened.