> For the complete documentation index, see [llms.txt](https://docs.zigpoll.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zigpoll.com/guides/how-to-measure-marketing-attribution.md).

# How to Measure Marketing Attribution

Your ad platforms grade their own homework. Meta claims a sale, Google claims the same sale, GA4 files a third of your revenue under "direct," and none of them can see the podcast ad, the group chat, or the friend who recommended you at dinner.

Zero-party attribution — just asking the customer — is the only method that can see those channels. It won't replace your pixel data, and it shouldn't. It's the second opinion that tells you when the pixel data is lying to you.

{% hint style="info" %}
This guide is the strategy. For the mechanical setup, see [Attribution Surveys](/tutorials/attribution-surveys.md).
{% endhint %}

***

## Ask two questions, not one

Nearly everyone asks "How did you hear about us?" and stops. That question captures **discovery** — the top of the funnel. It does not capture what actually closed the sale, and those are frequently different channels.

Someone discovers you on TikTok, forgets about you for three weeks, then buys after seeing a retargeting ad. Ask only about discovery and you'll credit TikTok while quietly defunding the retargeting that converted them. Ask only about conversion and you'll do the reverse.

Ask both:

### Slide 1 — Discovery

Add a **Single Choice** slide: **"How did you first hear about us?"**

List your real channels, and include the ones your pixels can't see:

* Instagram / TikTok / Facebook
* Google search
* YouTube
* A podcast
* An influencer or creator
* A friend or family member
* A blog, article, or review site
* Saw it in a store
* I don't remember

Enable a dynamic **"Other"** option. The write-ins here are the whole point — they are where you discover the channel you didn't know you had.

{% hint style="warning" %}
Include **"I don't remember."** If you don't, people who genuinely don't remember will pick a plausible-sounding channel instead, and that guess becomes noise indistinguishable from data. A visible "don't remember" rate is far more useful than a fake certainty rate.
{% endhint %}

### Slide 2 — Conversion

Add a **Single Choice** or **Long Answer** slide: **"What finally convinced you to buy today?"**

This is the question almost nobody asks, and the answers routinely name things that appear in no analytics tool anywhere: a review they read, a specific product photo, a discount email, a friend's endorsement.

### Slide 3 — The specific source

Use [Slide Logic](/slides/slide-logic.md) to branch on Slide 1. When someone picks a broad channel, ask which one:

* **Podcast** → "Which podcast?" — a **Short Answer** slide, or an **Autocomplete** slide if you sponsor enough shows that a dropdown would be unwieldy.
* **Influencer or creator** → "Who?" — again, **Autocomplete** is ideal here, since it lets respondents type-ahead against a long roster.
* **Friend or family** → this is your word-of-mouth rate. Track it as a metric in its own right; it's the closest thing to a leading indicator of organic growth you have.

"Podcast" as a line item is not actionable. "*The Daily* drove 40 orders at a $92 AOV" is a renewal decision.

***

## Where to run it

* **Post-purchase — the default.** Highest response rates, and every answer attaches to a real order with a real value. Use an [Order Paid Survey](/tutorials/order-paid-survey.md) or the post-purchase page. If you're already running a post-purchase survey, [layer this onto it](/tutorials/layered-post-purchase-surveys.md) rather than launching a second one.
* **Post-purchase email** — Slightly lower response rate, but reaches customers after the transaction adrenaline fades. See [Email Zigpoll Surveys](/email-zigpoll-surveys.md).
* **First landing page** — Casts a wider net across all traffic, not just buyers. Useful for understanding *awareness*, but be careful: these are not customers, and their channel mix is not your revenue's channel mix.

{% hint style="info" %}
Response rate is everything here. A 15% response rate means 85% of your orders are unattributed, and the 15% who answered may not resemble the 85% who didn't. Keep the survey to one or two questions, and consider a [Promo Code slide](/tutorials/adding-discount-codes-to-your-survey.md) to lift completion.
{% endhint %}

***

## Reading the results

### Compare against what the platforms claim

Put your survey mix and your platform-reported mix side by side. The gaps are the finding:

| Pattern                                        | What it usually means                                                                                                                             |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Survey % far exceeds platform-attributed %** | An under-credited channel. Common for podcasts, influencers, YouTube, and anything driving view-through or offline discovery. Likely underfunded. |
| **Platform-attributed % far exceeds survey %** | An over-credited channel. Often retargeting or branded search taking credit for demand another channel created.                                   |
| **Large "friend or family" share**             | Word of mouth is doing real work. It's also the channel most brands never measure and never invest in.                                            |
| **Large "I don't remember"**                   | Normal, especially for long consideration cycles. Watch the trend, not the level.                                                                 |

The classic result: GA4 says 35% "direct," while your survey shows those same customers heard about you on a podcast. Direct traffic is not a channel. It's a bucket of attribution failures.

### Weight by revenue, not by count

A channel that drives 30% of your orders at half your average order value is not your best channel. Zigpoll correlates order values with responses automatically, so for each channel you can see **average order value**, not just volume.

Ask Z-GPT Chat in the **Insights** tab to break the channel mix down by order value, or export from **Reports** and pivot it. Ranking channels by *revenue* rather than *order count* reorders the list more often than not.

### Read the write-ins

Z-GPT Insights clusters open-ended responses into themes automatically once you have volume. The "Other" write-ins are where a channel you never considered shows up as 4% of revenue.

***

## Push it into the rest of your stack

An attribution answer is most valuable when it lives where the rest of your data lives. Use [Slide Logic](/slides/slide-logic.md) actions to send it out:

* **Shopify** — Write the channel onto the order with **Add Order Metafield**, or onto the customer with **Add Customer Tag**. The channel then appears alongside the order in Shopify, where your merchandising and finance teams already work.
* [**Google Analytics**](/integrations/google-analytics.md) — Survey submissions fire as events, so responses land in GA next to the sessions they belong to.
* [**Google Sheets**](/tutorials/sync-survey-responses-to-google-sheets.md) — For charting the channel mix month over month.
* [**Klaviyo**](/integrations/klaviyo.md) — Segment your flows by discovery channel. Someone who found you through a friend is a different email prospect than someone who clicked a retargeting ad.

***

## The honest limits

Self-reported attribution has real weaknesses, and you should know them before you move budget on it:

* **Recall is imperfect.** People misremember, and they over-credit the last thing they saw.
* **Respondents aren't a random sample.** The people who answer surveys differ from the people who don't.
* **It measures perception, not incrementality.** Someone who says "Google search" may have searched your brand name — which means some *other* channel created that demand and search merely harvested it.

So use it for what it's uniquely good at: **finding channels your pixels are blind to, and catching platforms that are over-claiming.** When the survey and the pixel disagree loudly, that's a flag to investigate — ideally with a geo holdout or a spend-pause test, which is the only thing that measures true incrementality.

Survey attribution tells you *where to look*. It doesn't tell you what to cut.

***

## Related

{% content-ref url="/pages/VPrdaap3vre6ReWUX9da" %}
[Attribution Surveys](/tutorials/attribution-surveys.md)
{% endcontent-ref %}

{% content-ref url="/pages/7ah7NOivpQ5byvqk41c2" %}
[How to Build Your Ideal Customer Profile](/guides/how-to-build-your-ideal-customer-profile.md)
{% endcontent-ref %}

{% content-ref url="/pages/uZzmwXRquTBAxLPBAgeA" %}
[How to Test Your Messaging and Positioning](/guides/how-to-test-your-messaging-and-positioning.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.zigpoll.com/guides/how-to-measure-marketing-attribution.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
