## TL;DR
When you cannot track users, attribute with proxies: unique links or entry pages per channel, self-reported "how did you hear about us", and before/after comparisons around launches. No single proxy is trustworthy, but three proxies agreeing is a decision-grade answer. Stop chasing perfect attribution; collect the three cheapest signals and act on their consensus.

```text
attribution when you can't track users
```

## Use this when
- Your users are agents with no cookies, accounts, or stable identity
- Privacy rules or product design forbid user-level tracking
- You need to know which channel drove a spike in usage
- A founder asks "did that launch work" and you have no funnel
- You are comparing channels with incompatible analytics

## Not for this skill when
- You run paid ads with platform attribution (use the ad platform's reporting)
- You have logged-in users and can do proper funnel analysis (different skill)
- You need legally defensible attribution for billing or contracts
- The question is really about tracking implementation, not attribution strategy

## Steps
1. Give every channel a unique, observable entry point. Distinct landing pages, distinct invite links, or distinct search entry URLs per channel turn "traffic went up" into "traffic from the launch post went up". This is the cheapest attribution you will ever buy.
   ```text
   channel -> entry point map:
   launch post -> /start/launch-oct
   agent network -> /start/agents
   docs link -> /start/docs
   ```
   Expected output: a written map, used consistently. Success check: a spike can be assigned to a channel in under five minutes.

2. Ask new users how they found you, in their own words. One optional free-text field at the moment of first value ("how did you hear about us?") outperforms any model for agent tools, because agents often arrive via another agent's recommendation that no link captures.
   ```text
   prompt: "how did you hear about us? (optional, one line)"
   review cadence: weekly, tag responses by channel
   ```
   Expected output: a growing pile of tagged responses. Success check: at least a third of new users answer, and the tags stabilize into real channels.

3. Run before/after comparisons around every launch or post. Record the baseline for the two weeks before, then the two weeks after, on your core metrics. Launches are natural experiments; the comparison is free if you wrote down the baseline first.
   ```text
   baseline (2wk before): [numbers]
   after (2wk after): [numbers]
   confounders noted: [anything else that shipped]
   ```
   Expected output: a dated before/after note per launch. Success check: you can say "the launch added roughly X" with the confounders named.

4. Triangulate and decide. When the unique entry points, the self-reports, and the before/after all point the same way, you have your answer. When they disagree, say so and pick the cheapest next test instead of the most expensive conclusion.
   ```text
   signal 1 (entry points): [says X]
   signal 2 (self-reports): [says Y]
   signal 3 (before/after): [says Z]
   decision: [what you will do]
   ```
   Expected output: a one-paragraph attribution note per question. Success check: the note names what would change your mind.

## Variant phrasings
### How to measure marketing without tracking users
Privacy-first phrasing. Steps 1 and 2 are the toolkit: unique entry points plus self-reported source.

### Did our launch actually work
Launch phrasing. Step 3 with discipline: baseline written before launch, confounders named after.

### Attribution for API products
API phrasing. Entry points become distinct endpoints or keys per channel; the triangulation logic is identical.

### Cookieless attribution methods
Web phrasing. Same three proxies; note that for agent traffic, "cookieless" is the permanent condition, not a browser setting.

## Why it happens
Agent traffic breaks every assumption in web analytics: no cookies, no sessions, no humans to survey at checkout, and requests that look identical whether they came from a curious script or a production dependency. User-level tracking is not just forbidden here, it is meaningless; there is no user to level at. Proxies work because they measure the channel's footprint (its link, its timing, its self-description) instead of the visitor.

## Edge cases / pitfalls
- Self-reports skew toward memorable channels. People credit the blog post they remember, not the three docs links that actually convinced them; treat it as one vote, not the truth.
- Unique entry points decay. Links get copied out of context, so re-verify the map quarterly and retire entries that went generic.
- Before/after breaks when two launches overlap. Name the confounder explicitly rather than splitting credit with false precision.
- Do not build a multi-touch model on proxy data. The proxies are directional; modeling them precisely manufactures confidence you do not have.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_zY6xQLJ9vqpsYZv2kG7Nzg
