Attribution

Post-purchase survey attribution: what clicks miss

Post-purchase survey attribution asks buyers how they found you. Learn how to write the question, handle bias and combine the answers with click data.

·Updated ·9 min read·By the ROASaurus team

Key takeaways
  • A post-purchase survey asks buyers how they heard about you, so it can credit channels that leave no click, such as podcasts, creators and word of mouth.
  • Ask one neutral, closed question right after the order, with answer options that do not overlap and an "Other" option at the end.
  • Survey answers are self-reported and not every buyer answers, so read them next to click data, not instead of it.
  • Blend the two per order, so every order still counts once and the channel totals add up to your real sales.
  • In the ROASaurus Total Impact model, the survey answer gets 50% of an order when there are also clicks, and the clicks share the other 50%.

Post-purchase survey attribution means asking buyers "How did you hear about us?" right after they order, and using their answers to credit your marketing channels. It finds what click tracking cannot see: a podcast mention, a creator video, a recommendation from a friend, or an ad someone saw but did not click.

This guide explains why surveys find these channels, how to write the question and the answer options, which biases to expect, and how to combine survey answers with click data. It ends with how the Total Impact model in ROASaurus uses the survey, with a worked example.

Why do surveys catch what clicks miss?

Click-based attribution needs a trace in the browser: a click id such as fbclid or ttclid, or UTM parameters on the landing page URL. When a buyer arrives without that trace, the order looks like direct traffic, even when your marketing caused it.

Several common paths to a purchase leave no trace:

  • Podcasts and radio. A listener hears the brand name and types it into a search engine days later.
  • Creators and influencers. A video without a tracked link, or with a link the viewer did not use, sends people to search instead.
  • Word of mouth. A friend mentions the shop over dinner. There is no URL at all.
  • Dark social. Links shared in messaging apps and email often arrive without referrer data or UTM parameters, so analytics tools count them as direct visits. Marketers call this traffic dark social.
  • Ads that were seen, not clicked. Meta attributes purchases to an ad when they happen within a set number of days after someone viewed or clicked it. Your own click data only sees the clicks.
What click tracking sees
  • Ad clicks with a click id
  • Visits with UTM parameters
  • Email clicks with tracked links
  • The exact campaign and ad
What a survey can add
  • Podcast and radio mentions
  • Creator videos without a tracked link
  • Recommendations from friends
  • Ads people saw but did not click
Clicks and survey answers measure different things. Together they cover more of the paths that lead to an order.

A survey does not replace click data. Clicks are exact about which campaign and ad a visitor came from. Survey answers are vague about campaigns, but they include channels that clicks never show. Each one fills a gap in the other. For how click models split credit, see attribution models for ecommerce.

How to write the question

The standard wording is "How did you hear about us?". It is short, neutral and easy to answer on a phone. Avoid wording that suggests an answer, such as "Which of our ads did you see?". Some brands ask "Where did you first hear about us?" to focus on discovery. That works too, as long as you keep the same wording over time, so answers from different months stay comparable.

Ask on the order confirmation page, right after the purchase. The buyer has just finished checkout and the memory is fresh. A question sent days later by email depends on a memory that has faded, and on the buyer opening the email.

Choosing the answer options

Use a closed list of options rather than a free-text field. Free text is hard to count, because buyers write the same channel in many ways. The format also changes the answers themselves: in a Pew Research Center poll after the 2008 US presidential election about the issue that mattered most to voters, 58% chose the economy when it was on a list, but only 35% named it in an open question. Pick one format and keep it.

  • One option per channel you spend money or time on.
  • No overlap. "Social media" next to "Instagram" splits the same answer over two options.
  • The words buyers use. "Facebook or Instagram" is clearer to a buyer than "Meta".
  • "Other" at the end, so nobody has to pick a wrong answer.
  • A short list that fits on a phone screen without scrolling.
Answer optionChannelNote
Facebook or InstagramMetaOne option for both apps: both are Meta, and buyers may not remember which app it was.
TikTokTikTok
Google searchGoogleCan include people who heard about you elsewhere and then searched for your name.
YouTubeYouTube
A friend or familyWord of mouthHas no click equivalent at all.
Email or SMSEmailMostly people who already know you.
Podcast or radioPodcast
OtherNoneKeep it last.
This is the list the ROASaurus survey uses on Shopify. Each answer stands for one channel.

Response rates and bias: what to keep in mind

Survey answers are useful, but they are not a measurement of every order. Keep these points in mind when you read them.

Not every buyer answers

The question is optional. Only buyers who see the confirmation page and choose to answer are counted. Response rates differ by store, device and design, so measure your own: divide the number of answers by the number of orders in the same period. If many orders have no answer, the answers describe the buyers who replied, not all buyers.

Memory favors the most recent touch

Buyers answer from memory. They may remember the most recent or the most visible touch better than the first one. Someone who heard a podcast, saw three Instagram ads and then searched for your name could honestly give any of the three answers.

The order of the options

In surveys that people fill in themselves, options near the top of a list tend to be chosen more often. Pew Research Center calls this a primacy effect, and it rotates or randomizes the order of the options to reduce it. If your survey tool can randomize, use it and keep "Other" at the end. If the order is fixed, compare answer shares over time rather than reading one week as exact.

Small numbers

Ten answers are not a trend. Wait until each option has enough answers before you move budget. A change from 4 to 6 answers is noise. A change from 400 to 600 answers is a signal.

How to combine survey answers with click data

There are three common ways to use survey answers next to clicks.

  1. Read them side by side. Compare the share of answers per channel with the share of orders each channel gets from clicks. A channel with many answers but few clicks, such as a podcast, gets too little credit in click models.
  2. Check platform claims. If an ad platform reports far more purchases than the share of buyers who name it, find out why before you raise the budget.
  3. Blend them per order. Give each order a share for the channel the buyer named and a share for the clicks you recorded.

Blending per order keeps each order at exactly one unit of credit. The total stays equal to your real order count, which makes channels comparable. That is the problem behind the gap between Ads Manager and Shopify sales: every platform claims the same order for itself.

How ROASaurus uses the survey in Total Impact

Total Impact is one of the twelve attribution models in ROASaurus, next to last click, first click, linear, data-driven and other models. For each order it reads the ad clicks recorded for that visitor inside your lookback window (1 to 90 days, 7 by default, or unlimited) and the survey answer for the order. Then it splits the order like this:

SituationSurvey answer getsClicks get
The answer names a channel and there are clicks50%50%, split evenly over the clicks
The answer names a channel and there are no clicks100%Nothing
No answer, or the answer is OtherNothing100%, split evenly over the clicks
No answer and no clicksNothingNothing. The order counts as direct (unattributed).
The survey answer and the clicks always add up to 100% of the order.

The survey share goes to the channel the buyer named, in a row called "(survey)", because the answer names a channel but not a campaign. The click shares go to the campaigns the clicks came from.

A worked example

Here are four orders from one week, with a 7-day lookback window:

OrderClicks in the windowSurvey answerCredit in Total Impact
A, $120Meta, then GooglePodcast or radioPodcast $60, Meta $30, Google $30
B, $80NoneA friend or familyWord of mouth $80
C, $100TikTokOtherTikTok $100
D, $90MetaFacebook or InstagramMeta $90: $45 as "(survey)", $45 on the campaign
Each order still adds up to 100% of its value, so the total stays $390.
Revenue per channel in the example week
Last clickTotal Impact
Meta
$90
$120
Google
$120
$30
TikTok
$100
$100
Podcast
$0
$60
Word of mouth
$0
$80
Unattributed
$80
$0
Last click gives Google all of order A and leaves order B unattributed. Total Impact moves $60 to the podcast and $80 to word of mouth.

Under last click, Google gets all $120 of order A, because the buyer searched just before buying. The survey shows that a podcast started it. Total Impact does not ignore the search: it keeps $30 on Google and $30 on Meta. Order C keeps its click credit, because "Other" names no channel. The total is $390 in both models, so no order is counted twice.

Which answers count

ROASaurus maps each answer to a channel by its words. "Facebook or Instagram" becomes Meta, "Google search" becomes Google, "Podcast or radio" becomes podcast, "A friend or family" becomes referral (word of mouth) and "Email or SMS" becomes email. Answers sent through the API that name Snapchat, Pinterest, Reddit, Bing or Microsoft are mapped as well. "Other", and answers that name no known channel, are not used: those orders are credited by their clicks alone. More in how attribution works.

How to set up the survey

Order placedThe buyer reaches the Thank you page
Question answeredHow did you hear about us?
Answer mappedPodcast or radio becomes the podcast channel
Order creditedBlended with the clicks in Total Impact
The survey answer joins the order by its order id, then shares the credit with the clicks from the lookback window.

On Shopify

ROASaurus has a survey block for the Shopify Thank you page. App blocks for that page are added in Shopify's checkout and accounts editor (Settings › Checkout, then Edit, then the Thank you page). According to Shopify, apps for the Thank you page work on the Basic plan and higher. The block asks "How did you hear about us?" with the eight options in the table above, and sends the answer with the order id to ROASaurus through a Shopify app proxy, which Shopify signs. The question and the options are fixed, which keeps the answers comparable from month to month. If you already use another survey app, you can send its answers to the surveys API described below instead.

In the attribution report, choose the model Total Impact (survey + clicks). The other models ignore the survey. Setup for the rest of the tracking is in the Shopify integration.

On other webshops

If your webshop collects the answer itself, send it to the surveys API. Create an API key under Settings › Orders API and post one request per answer:

Send a survey answer from your own backend
POST /api/v1/surveys
X-Roasaurus-Key: <store key>
Authorization: Bearer <API key>
Content-Type: application/json

{
  "order_id": "10482",
  "question": "How did you hear about us?",
  "answer": "Podcast or radio"
}

Use the same order id that the order has in ROASaurus. Instead of the order id, you can pass the visitor id from the _tl cookie as visitor_id. Free-text answers are mapped by the same keyword rules as the Shopify options. See other webshops for the rest of the setup.

Sources

  1. Shopify Help Center: Customizing your checkout and customer accounts with apps
  2. Meta Business Help Center: About actions attributed to your ad
  3. Pew Research Center: Writing Survey Questions

In ROASaurus

Keep reading

AttributionEcommerce attribution models: last click, linear and moreAttribution models for ecommerce compared: last click, first click, linear, data-driven and survey-based, worked through on one customer journey.AttributionFacebook Ads vs Shopify sales: why Ads Manager shows moreFacebook Ads vs Shopify sales: why Ads Manager reports more purchases than your store, how to reconcile the two step by step, and which number to trust.AttributionUTM parameters for Facebook and TikTok ads: a naming systemUTM parameters for Facebook ads and TikTok ads: the dynamic values each platform fills in, a naming system to copy and the mistakes that break tracking.
FAQ

Questions, answered

What is post-purchase survey attribution?

It is the practice of asking buyers how they heard about you right after they order, and using the answers to credit marketing channels. It adds channels that click tracking cannot see, such as podcasts and word of mouth.

Where should I ask how a customer heard about us?

On the order confirmation page, right after checkout. The memory is fresh and the buyer has a moment to answer one question.

Can a post-purchase survey replace click tracking?

No. Survey answers are self-reported, not every buyer answers, and they rarely name a campaign or an ad. Use them next to click data, not instead of it.

How does Total Impact split credit between the survey and clicks?

When an order has both a survey answer and clicks, the answer gets 50% and the clicks share the other 50% evenly. With only an answer, the answer gets 100%. With only clicks, the clicks share the order evenly.

What happens when a buyer answers Other?

In ROASaurus, Other and answers that name no known channel are not used. The order is credited by its clicks, or shown as unattributed when there are none.

Every sale, traced to the ad that earned it

Server-side tracking, profit and lifetime value in one app. 14-day free trial, no credit card.

Start your free trial →