Attributing signups to an X launch

The launch does two million impressions and your dashboard shows 340 clicks. Both numbers are correct, and a team that reports only the second one is about to cancel the channel that is working.

Launch virality · 9 min read

Why the click number is small

Leaving the app is expensive on X. The reader is mid-scroll, the tab switch costs them their place, and the platform has spent years making that trade worse on purpose. So the interested viewer does something else: they read the post, register the name, and look you up on Thursday from a laptop.

By the time they arrive you are direct traffic or a branded search, with nothing connecting the session back to a post they saw on a phone three days earlier. The launch caused the signup and left no fingerprint on it.

This is the entire measurement problem in one paragraph, and every technique below exists to work around it. None of them solve it. The realistic goal is three numbers of decreasing precision and increasing size, reported together, rather than one number that is wrong.

What to measure depends on the launch

Before any of the machinery below, decide what this particular launch is for. Teams skip this and default to signups because signups are the number the dashboard shows, which produces the common outcome of a funding announcement being judged a failure for not driving trials it was never going to drive.

Six kinds of launch, six different answers.

LaunchThe number that mattersSafe to ignore
Funding roundInbound applications, recruiter interest, and the step in branded searchSignups. Almost nobody buys software because the vendor raised.
Self-serve productTrials above the trailing baseline, then activation rate on those trialsImpressions, once you have confirmed the reach happened
Enterprise productQualified conversations from named target accounts, and unprompted recognition on discovery callsAnything closing this quarter. The cycle is longer than the report. Why.
Developer toolInstalls, and the first issue or pull request from somebody outside the companyFollower count
Category or thesisWhether other people start using your term without being asked toSame-day reach, which tells you nothing about adoption of a word
Coming out of stealthFollowers gained on the founder account, and the new branded-search floorRevenue. There is no funnel yet. The launch from zero.

The column on the right is the useful one, because it is the permission to stop reporting a number that was never the point. A launch measured on everything is measured on nothing, and the fastest way to lose a working channel is to judge it against a metric it was not built to move.

The baseline, before anything else

You cannot attribute a launch you did not measure before. This gets skipped constantly and it is the difference between a report that means something and a report that is a screenshot.

For at least two weeks ahead of the drop, record the daily numbers you intend to claim credit for afterwards.

Two weeks is the minimum because a single week hides your weekday and weekend shape. If you have a month, use a month. The comparison you want on the other side is launch-week against a trailing average, and that comparison only exists if somebody wrote the numbers down first.

Three layers, in order of size

LayerWhat it catchesConfidence
Tracked clicksPeople who clicked a creator's link and converted in that sessionHigh. Smallest number by a distance.
Correlated liftSignups, direct traffic and branded search above the pre-launch baselineMedium. Real, and it is correlation.
Self-reportedEveryone who saw a post, did not click, and turned up laterDirectional. The only instrument that reaches this group at all.

Report all three, labelled, with the confidence stated. A single blended number invites a finance team to test it, and it will not survive the test, which costs you the channel and your credibility in the same meeting.

The layer people underuse is the middle one. If signups ran at 40 a day for a fortnight and then did 310, 180 and 120 across launch week before settling at 65, the honest reading is that the launch produced roughly 400 signups above baseline and moved the floor from 40 to 65. That second half is the part worth more than the spike.

The UTM scheme for creator campaigns

One link per creator. This is the whole trick and it is the thing most campaigns get wrong, because somebody sets utm_source=twitter for everyone and destroys the only distinction that matters.

ParameterValue
utm_sourceThe creator's handle, lowercase, no @
utm_mediumcreator for paid placements, organic for your own accounts
utm_campaignThe launch name, identical across every link
utm_contentThe asset, where a creator posts more than once: thread, video, quote

Four practical notes that save a campaign.

  1. Lowercase everything. Analytics tools treat Creator and creator as separate sources, and you will find out on the day you build the report.
  2. Send the exact link, built by you. A creator asked to add tracking themselves will get it wrong, and by then the post has 400,000 impressions and cannot be edited.
  3. Point it at a real page, not a redirect chain. Extra hops lose parameters and add latency on mobile, and a slow page after a click is the most expensive place to lose someone.
  4. Persist the parameters into your signup event. A UTM that dies at the landing page tells you about traffic. One that survives to the account record tells you about customers, and that is the difference between an interesting chart and a defensible number.

Also worth deciding in advance: whether the creator link goes to your homepage or to a page built for the launch. A dedicated page converts better and gives you a clean denominator, and it costs you the SEO value that would otherwise accumulate on the page you actually want to rank.

The one question that catches the rest

Put "How did you hear about us?" in your signup flow as a free-text field, optional, with no dropdown.

A dropdown constrains people to the options you thought of, which is exactly the group you already measure.

Free text is where you find out that eleven people write a creator's name unprompted, that four of them say a friend sent them the post, and that two mention a newsletter you have never heard of. That is the dark-social layer becoming visible for the cost of one form field.

One free-text field
It is the cheapest instrument in marketing and the only one that reaches the buyer who saw the post, did not click, and searched your name on Thursday. Optional, so it costs no conversion. Free text, so it can tell you something you did not already believe.

Read the responses as text rather than parsing them into a pie chart. The value is in the wording, because the sentence a customer uses to describe how they found you is usually also the sentence that describes what they think you are.

An example of why it is worth running. Two weeks after Codos launched the first virtual Chief AI Officer from a founder account of about 1,800 followers, the founder's account of it was many VCs and many, many customers. We are overwhelmed.

That is a result, and it is also the gap the question fills: an inbox that full says the launch worked and says nothing about which channel did the work. Ask on the day and the ranked list exists. The case study has the detail.

How long to keep counting

Impressions peak inside 48 hours. Nothing else does, and reporting at 48 hours is the reason launches get judged as spikes.

Read at four points: 48 hours, 7 days, 30 days and 90 days. The interesting movement is almost entirely in the last two.

What an honest attribution slide looks like

Four lines, and a refusal.

Direct: 340 tracked clicks, 61 signups, high confidence. Lift: roughly 400 signups above a 40-a-day baseline across launch week, medium confidence.

Self-reported: 88 people named a creator or a post, directional. Persistent: baseline moved from 40 to 65 a day and held for six weeks, plus 4,200 followers on the founder account.

The refusal is a single blended ROI figure. Anyone who gives you one has picked a method that flatters the channel they are selling, and the number will not survive contact with a CFO who asks how it was built.

Reporting three numbers with their confidence stated survives that meeting. It also has the side effect of making you the person in the room whose numbers get believed.

If an agency reports impressions and stops there, ask for the distribution and the downstream. What a report should contain covers the full list, and the diligence questions cover asking for it before you sign rather than after.

Questions we get asked

Why do our tracked links show so few clicks after a launch?

Because leaving the app is expensive on X and most people do not do it. A viewer who is interested reads the post, remembers the name, and searches for you later that week from a different device. Tracked-link clicks are the smallest and cleanest of the three numbers, and a team that treats them as the whole result will conclude a working launch failed.

What UTM structure should we use for a creator campaign?

One link per creator, with the creator's handle in utm_source, creator in utm_medium and the launch name in utm_campaign. Setting utm_source to x or twitter for everybody is the most common mistake, because it collapses the only distinction worth having. Keep every value lowercase, since analytics tools treat differing cases as different sources.

How long should we keep measuring after launch day?

Read at 48 hours, 7 days, 30 days and 90 days. Impressions peak inside 48 hours and mislead you if that is where you stop. Branded search, direct traffic and inbound tend to settle at a level above the old baseline rather than returning to it, and that persistent step is usually the most valuable thing a launch produces.

Want the numbers before you commit?

We will show you the reach math and tell you exactly which parts of it we can attribute and which we cannot.