SEO

How to Set Up Reddit Attribution Before Your First Post

A Reddit thread never reaches your analytics by name, so the proof a budget review needs has to be built before the program starts.

Author:
Leon Claassen
Contributors
Vlad Shvets
Date:
October 15, 2026

Three months after the first Reddit post goes up, somebody in a budget review will ask what it produced for the pipeline. Whether anyone in the room can answer depends almost entirely on what was set up before that post went live.

A click on a link in a thread reaches Google Analytics as reddit.com, under Organic Social, with no trace of the thread. A buyer who reads it and searches your name later arrives as Google. One whose ChatGPT answer leaned on it arrives as ChatGPT. And the views on the slide are visible only to the account that posted.

So the evidence a Reddit program needs at its first review is collected on purpose, by instruments that exist before the first post, or it is not collected at all. Five things get agreed before that post, between whoever does the posting and whoever owns the CRM:

The starting score. Your AI visibility, the Reddit threads the engines already cite in your category, and your branded search and direct traffic, measured before anything is posted.
The question. A free-text “how did you hear about us” at signup, coded down to the community and, where the words allow, the thread.
The register. Every thread you are in, dated, with its citation weight (the share of AI answers that cite it) read every week.
The windows. When each signal is read after a post, fixed before it goes up.
The report. Reach, presence, and pipeline in three columns that are never added together.

Empact Partners runs that setup for B2B software companies, working as a go-to-market consultancy from inside their marketing teams since 2020. Our Reddit marketers put threads in front of buyers as part of Generative Engine Optimization (GEO), the workstream that gets a brand named when buyers and AI engines ask a category question.

Proving what those threads did belongs to RevOps, the workstream that owns the revenue plumbing: the form, the CRM, and the data that says which signups were worth a call.

We can see a thread, and only your form and your CRM can see the buyer it sent. That is why the five are agreed by both sides or not at all.

A Reddit Thread Reaches Your Pipeline by Four Paths, and None of Them Carries Its Name

A buyer who meets your name in a thread reaches your signup form by one of four routes, and every one of them records something other than the thread.

The path What the buyer does What analytics records What still catches it
The click Follows a link in the thread reddit.com, never the thread A tagged link, and the question
The search Searches your name days later Google organic, or Direct Branded search, and the question
The AI answer Asks an engine that read the thread chatgpt.com, Google, or nothing Citation weight, and the question
The conversation Tells a colleague Direct The question, asked again on the first call

The click is the path teams plan around, and it is the narrowest. Google’s own rules for GA4 file a visit from reddit.com under Organic Social. In a browser, Reddit sets no referrer policy on its pages, so the browser falls back to its default and hands your site the domain and never the thread’s address.

A tagged link fixes that wherever a link survives, and on Reddit few do. We post Reddit work without tracked links or redirects as a rule, because any link raises the odds that a comment gets removed, and many communities ban links outright. Most of the work we run carries no link your analytics could trace.

The AI path never touches a link either, and neither do Reddit’s own numbers. Each is recorded somewhere you would not look for Reddit:

ChatGPT. OpenAI says ChatGPT adds utm_source=chatgpt.com to the links it sends, and all 257,665 links ChatGPT cited in the answers our panel collected between 23 September and 8 October carried the tag. A buyer whose answer leaned on your thread arrives credited to ChatGPT, if they click at all.
Google AI Mode. Google counts AI Mode’s clicks inside Search Console’s ordinary web numbers. The separate report for AI features, open to every site since 31 August 2026, shows impressions only, so a buyer sent by an answer that drew on your thread looks like any other Google visitor.
Reddit’s own numbers. Reddit shows a post’s views to the account that made it and to the community’s moderators. Its public API returns no view count, so the number on the slide is one nobody else can check.

The search and conversation paths have been measured from the buyer’s side. In 2023 HockeyStack set more than 8,500 answers to a how-did-you-hear question, from 36 B2B SaaS companies, beside each buyer’s first-touch and last-touch data. Buyers who wrote Reddit, and those who wrote ChatGPT, had almost all been recorded as Direct, Organic, or PPC.

Most readers leave no mark on the thread either. Between April and June 2026, 77.7 million of the 130.3 million people Reddit counted as daily users were logged out, reading without signing in and so unable to vote or comment. The thread’s visible numbers describe the few who took part, and your buyer was probably among the many who did not.

The evidence for a Reddit program is decided in the weeks before its first post, because no tool can recover afterwards what nobody chose to record.

Check Your Score Before the First Post, Because Nothing Afterwards Can Recreate It

Lift is measured from a starting point, so the starting score is the baseline every later number is read against. Part of it can be pulled backwards later, and part cannot, which is the whole reason it gets taken first:

What to capture Where it lives Can it be recovered later?
AI visibility on ten brand-free buyer questions Five runs per question on ChatGPT and Google AI Mode, logged No. Last month’s answers cannot be asked again
The Reddit threads those answers cite, and how often The cited links in the same runs No. The engines have moved on
Branded search impressions and clicks Search Console, with its branded queries filter Yes, from Search Console’s history
Direct sessions to the pages buyers land on GA4, landing pages, filtered to Direct Yes, from GA4’s reports
How signups say they found you The signup question, if it exists Only from the day it was added

The AI half is the same five-run baseline sheet we open every GEO engagement with: ten questions a buyer would type, each asked five times in a fresh session on both engines, every named brand and cited link logged. Take it two to four weeks before the first post, and keep the questions fixed, because a changed question is a new baseline.

Search Console has had a branded queries filter since November 2025, limited to top-level properties with enough search volume, so a young brand may still need a regular expression for its name. Pull eight weeks of weekly branded impressions now. Their highest and lowest week become the range a later lift has to clear.

Leon Claassen
Senior GTM Consultant @ Empact Partners
A baseline taken after the first post is a guess about the past. A Reddit program that skips the weeks of measuring before it posts reaches its first review with no number to beat, and spends that review arguing about where it started.

Citation weight is counted from those cited links. It is the share of answers that cite a page, so a thread cited in 12 of the 100 answers you collected this week carries a weight of 12%. It is a rate across many answers, which is why a screenshot of a single answer tells you almost nothing about a thread.

A sheet by hand gives you a hundred answers a week. Qvery runs thousands of answers a day, in every country you sell in. Qvery is our sister company, so discount the suggestion by that much, and before trusting any number it reports, ask for the raw answers it was counted from.

The same measurement chooses the threads. Since 31 August 2026 our partners’ Reddit programs have started from a short list of threads chosen for the visibility they can move, rather than from a volume target. Our own weekly panel shows which threads the engines cite in the partner’s category and how much weight each carries.

The Signup Question Has to Separate Reddit From the Thread

The buyer is the one witness on all four paths, and on the conversation path the only one. So the signup question matters more in a Reddit program than in almost any other channel. It also has a poor record, and the record is worth reading before the field goes in.

Ruler Analytics checked the question against its own attribution data on more than 350 demo leads, and 72% of its inbound demos gave vague details or none. Dreamdata got 49 useful answers from 100 demo requests and took the field down. Yet Ruler’s field caught a few buyers who had seen posts about it on Reddit and come straight to its site.

Keep the question and fix what makes it fail, which is almost always how it was asked and the fact that nobody coded the answers. Set it up in this order:

1. Free text. Ask “How did you hear about us?” in an open box. A dropdown buries Reddit under “Social media” or “Other.” And in one company’s data, Ruler found that 47% of the leads picking the first option on the list were wrongly attributed.
2. The right form. Make it required on the demo or contact form, where a buyer has already decided to talk. On a self-serve signup, make it the first onboarding question after the account exists, so it never costs a signup.
3. The first call. Ask it again there: the salesperson asks every contact on the opportunity, and logs each answer in the same field. A buying group reaches you by several paths, and the form only hears from whoever filled it.
4. A safe field. Store it where routing cannot lose it: a contact property, copied to the opportunity when the opportunity is created, and never overwritten by a later form. An answer that lives only on the form submission is gone by the time anyone builds the review.
5. Monthly coding. One person codes the answers every month against the register. The raw text stays untouched and the codes sit in their own fields beside it.

The coding is what turns the answers into something a review can use. Three levels, each filled only as far as the buyer’s words allow:

Level What it records An answer that reaches it
1. Channel Reddit, AI assistant, Search, Peer, Event, and the rest of your list “Saw you mentioned on Reddit”
2. Where The community, or the engine “Someone in r/sales recommended you”
3. Which One thread from your register “A thread asking for a CRM for a team of three”

Two rules keep the table honest. A compound answer is coded twice: “ChatGPT sent me to a Reddit thread” is an AI assistant answer and a Reddit answer, and it counts in both. And “Google” is coded as Search and never read as the channel that caused the visit, because for most buyers it was only the last step.

What practitioners on Reddit say about the question

People who run the field make the case against reading its answers literally, describe the cheapest version of it, and show how it dies:

“It is answering a different question. You are asking which channel caused the sale. The form is asking which brand name the person can retrieve four days later, and Google is what almost everyone can retrieve, because it is where the last step happened even when it was not the first one.” u/ksz2018 on r/DigitalMarketing, September 2026
“We do it as an optional open field. Almost everyone fills it out and I haven’t seen a drop in leads.” u/jakeb1302 on r/b2bmarketing, April 2024
“We ultimately removed the question because most responses weren’t telling us things we could act on. If you don’t get actionable data, cut it loose and try something new.” u/DIYAggie on r/SaaS, December 2020

The last of those is the failure the code table exists to prevent. Answers nobody codes stay a column of free text, which never tells anybody what to do.

Leon Claassen
Senior GTM Consultant @ Empact Partners
Most answers will stop at Reddit, and that is fine. The question proves the channel is in your signup mix at all. The credit for a single thread comes from the register and the timing, and the rare answer that names a thread is the one you read out at the review.

Empact Partners builds this half inside the partner’s own CRM, as part of our RevOps workstream: the property, the routing rule that copies it to the opportunity, and the code list matched to the register. The answers belong to the partner, and so does the pipeline they explain.

Every Thread Goes in a Register, and Its Citation Weight Is Read Every Week

The code table’s third level needs something to match against, and the timing read needs dates. Both come from the register, one row per thread you are in, kept from the first post onward:

Thread. The address, the community, the title, and the date it went up.
Question. The buyer search it answers, in the buyer’s own words.
Status. Live, removed, locked, or archived, checked every week.
Stance. Whether it recommends you, a competitor, or nobody.
Google position. Where the thread ranks for its question.
Citation weight. Per engine, per week, from the same buyer questions as the baseline.

How long to keep a row depends on how old a thread is when the engines find it. Across the three categories we measure every week for partners, two in software and one in insurance, 1,023 Reddit threads started appearing in AI answers between 2 September and 15 October 2026. About half of them were over a year old when they did.

Bar chart of how old 1,023 Reddit threads were when they started appearing in AI answers between 2 September and 15 October 2026: 8.9% were under 1 month old, 8.1% were 1 to 3 months, 11.5% were 3 to 6 months, 19.2% were 6 to 12 months, 24.5% were 1 to 2 years and 27.8% were over 2 years.
Each thread’s age on the date of the weekly panel wave that first cited it, across ChatGPT, Google AI Mode and Claude, in two software categories and one insurance category. Threads already cited when collection began are left out, because their first citation predates the panel.

So the register is permanent. A thread posted this quarter can start carrying weight next year, long after a lookback counted from its posting date has closed. Had we credited only threads posted in the previous three months, we would have missed five in every six of the threads that entered the answers.

When a new thread does get cited, it happens fast. Of the threads posted after our weekly measurement began, 88 were cited by mid-October, half of those within 10 days of going up. Most threads entering the answers are old, and the new ones that make it in arrive quickly. Read a new thread’s weight first in its second week.

Each week, read the weight and never a single sighting. On Google AI Mode, where Reddit turns up in enough answers to rank its threads by weight, fewer than half the threads cited for a category one week were cited again the next. The heavy ones were the ones still there.

Bar chart of how often a Reddit thread that Google AI Mode cited for a category one week was cited again the next week, by the thread’s citation-weight rank that week, 23 September to 15 October 2026: threads in the top 10 were cited again 81.5% of the time, ranks 11 to 25 39.2%, ranks 26 to 50 25.1% and ranks 51 and below 23.6%.
1,458 thread-weeks across 14 product lines in three categories, each thread ranked within its product line by the share of that week’s answers citing it. The lowest band is the smallest, at 127 thread-weeks.

A thread that appears once in someone’s screenshot has told you very little. Read weight as a weekly rate across the same questions, and give a thread credit at the review only once its weight has held for several weeks running.

By hand, the weight column is the baseline sheet run again every week: log the cited links, then divide the answers citing each thread by the number of answers you ran. A hundred answers a week will show you the heavy threads and miss most of the tail.

Our weekly panel reads that column across thousands of answers a week, and in a partnership it is the part of the work the partner never has to staff.

Leon Claassen
Senior GTM Consultant @ Empact Partners
Measure every thread’s citation weight from the week it goes up. The question at the review is whether the threads you are in hold weight in the answers your buyers get, and a program planned by weight can name the threads that carried the quarter, where a program planned by post count can only say how many it wrote.

Read the Lift Against Each Thread’s Date, With the Windows Set Before It Posts

With the baseline taken, the answers coded, and the register dated, the timing read becomes a comparison you can defend. Each signal gets a window, agreed before the post, so nobody gets to choose the flattering week afterwards:

Signal Read it Counts when Does not count
Branded impressions (Search Console) Weekly, for three weeks after a post It leaves the baseline’s range A good week inside the range
Direct sessions to landing pages (GA4) In the same window It moves with branded impressions A homepage spike in a launch week
Citation weight (the register) From week two, then weekly It holds for several weeks One appearance in one answer
Coded answers (the CRM) Monthly They name Reddit or an AI assistant A share resting on a handful of answers
Opportunities and closed-won After one full sales cycle Coded contacts reach an opportunity Anything read in week four

Read the lift across the program, never one thread. In most B2B categories one thread reaches too few buyers to push branded search outside a normal week. So the search and direct rows are read across every thread posted that month, and a single thread earns its credit through its own weight and the answers that name it.

Branded search and direct traffic also rise together for reasons unrelated to Reddit, so two lines climbing in one week prove little. Count a lift when it clears the baseline’s range, inside the window, in a month whose coded answers name Reddit or an AI assistant. The answers are the one instrument that does not move with the others.

Two habits make the comparison fair:

A staggered launch. Post for one product line or use case first and hold another back for a month, so the held-back line’s branded and direct numbers are your comparison.
A confounder log. Kept beside the register: every launch, press mention, event, paid burst, and outbound push, with its date, so a lift in the same week as one of them is not credited to Reddit.

And read no share off a small pile of answers. With twenty coded answers in a month, one buyer moves a channel’s share by five points, so a share is read only once one person can no longer swing it.

Views Are Reach, and the Report Never Adds Its Three Columns Together

How the result will be shown is agreed before the first post too, because the layout of a report decides what gets argued about at the review. Three columns, each answering a different question:

Column What goes in it What it answers
Reach Upvotes, comments, and the posting account’s own view counts Did people see it?
Presence Each thread’s Google position, citation weight, and AI visibility against the baseline Is it where buyers and engines look?
Pipeline Coded signups, opportunities, closed-won, and lift inside the windows Did it produce buyers?

The columns are never added together and never converted into each other. A view count multiplied by somebody’s conversion rate is a number nobody measured, and the program that reports it gets judged on it.

Our Reddit reports to partners carry no lead data at all, because leads never reach our side of the work. They land in the partner’s CRM, so the pipeline column is filled from the partner’s own records or it stays empty. A report that fills it with views has quietly changed the question it answers.

Attribution Is Shared Work, and Week One Decides Who Holds Which Half

Each of the five splits along one line: what the team posting can see, and what only the company’s own systems can. Agree the split in week one, in writing:

Part of the work The team posting Your RevOps
The starting score AI visibility, the cited threads, and their weight Branded search and direct traffic exports
The question The code list, matched to the register The field, the CRM property, and the routing rule
The register Every thread, its status, stance, and weekly weight Read access
The coding The register, shared every month The monthly coding pass
The confounder log Posting dates Launches, press, events, paid, and outbound
The report Reach and presence Pipeline

Put the first review in the calendar before the first post: the date, the three columns, and which result means continue, change, or stop. A practitioner on r/DigitalMarketing said the same about a different channel:

“Put in writing that it is a test and not a cut, and agree in advance what you are both going to look at when it finishes.” u/Conscious-Market8982 on r/DigitalMarketing, August 2026

Setting all of this up takes an afternoon: the field, the property, the branded filter, the register’s first rows, and the windows table. Running it for a quarter takes somebody’s time every week, and that is where it breaks.

Somebody has to code the answers every month, read weight across enough answers to trust, keep the confounder log honest, and hold the windows until the review. Those jobs fall to whoever has time left, and most teams stop doing them in month two, which is why so many reviews arrive with screenshots.

Leon Claassen
Senior GTM Consultant @ Empact Partners
Set up the baseline, the question, and the register before the first post, or hold the post until they exist. Without them the first review can only hear the team’s case for the program and never check it, which makes it the first program cut when a budget gets tight.

At Empact Partners a Reddit program starts with the plumbing. Before any thread goes up, a named senior consultant sits with the partner’s CRM owner to add the field, agree the codes, and set the windows, and in those same weeks takes the starting score. Our Reddit marketers then build the register inside the GEO workstream.

Momentum on Reddit shows over quarters rather than weeks, so the first review reads signals and the deals arrive a sales cycle later. That first week is what puts a number in every column of the first review, with closed-won added once the deals arrive.

What to Read First at the First Review

Put two numbers side by side: the share of coded signups naming Reddit or an AI assistant, and the citation weight of the threads in your register. At three months that pair is the honest answer to what Reddit produced, because closed-won is still a sales cycle away.

If the weight held and the share rose, the program is working. If the weight held and the share stayed flat, the threads reach the engines but not your buyers, and the fix is the questions they answer. If the weight fell, the threads lost their place in the answers, and the register says which ones to replace.

If you are about to put budget into Reddit and want the attribution agreed before the first post instead of argued over after it, book a call with me, so we can find out together whether Empact Partners is the right fit for the work.

Ready
To Connect?

Let's Partner