Every connected TV advertising attribution guide ranking on page one assumes you have a data clean room, a device graph vendor, and a media budget with six figures behind it. Read past the first three paragraphs of most of them and the advice stops applying to a store spending a few thousand dollars a month testing whether Roku or Hulu is worth a real budget line.
That gap is not a reason to skip CTV measurement. It is a reason to use a smaller, cruder, more honest version of it instead of pretending the enterprise toolkit scales down.
- GA4 has no native connected TV channel, so untagged CTV traffic lands in Direct or Unassigned by default, not a channel you can report on.
- Deterministic, click-based attribution barely exists for CTV at any budget below enterprise scale, which makes incrementality testing the more honest measurement to run first.
- A dedicated landing page, a CTV-only promo code, and a short on/off holdout cost nothing beyond setup time and answer the only question that actually matters: did sales move when the ads ran.
Why the standard CTV attribution advice does not fit a DTC budget
Search "connected TV attribution" and the results cluster around device graphs linking household devices, cross-channel identity resolution, and closed-loop measurement tied to a retailer's own transaction data, the kind of setup PayPal Ads built for its curated CTV placements or that national brands license from a dedicated measurement vendor.
None of that is wrong. It is also not available to a brand running its first $2,000 Roku campaign through a self-serve dashboard. The real question for that brand is simpler and gets skipped entirely in guides written for the enterprise case: what can you actually measure with a landing page, a promo code, and a spreadsheet, and what do you have to accept you cannot.
What GA4 actually does with CTV traffic, by default
Google documents exactly how GA4's default channel group sorts a session: by matching the session's source, medium, and ad network parameters against a fixed set of rules for channels like Paid Search, Organic Social, and Email. There is no Connected TV or Streaming entry on that list.
A CTV ad has no clickable link for a viewer to tap, so there is no UTM parameter traveling with them when they later open a browser and visit your site. That session gets filed as Direct, if the source and medium match exactly, or Unassigned if they do not match any rule at all. Either way, the visit exists in GA4 with no indication it had anything to do with the ad that prompted it.
That is not a bug to fix with a plugin. It is the expected behavior of a tool built around clickable, URL-based campaigns, applied to a channel that is neither.
The three things you can actually measure
A dedicated landing page or vanity URL per placement
Build one landing page, or at minimum one UTM-tagged URL, specific to the CTV creative and network running it: yoursite.com/roku or yoursite.com?utm_source=roku&utm_medium=ctv&utm_campaign=q4-launch. Anyone who types that URL or scans a QR code shown on screen carries a traceable source into GA4 instead of landing as Direct. This will never capture everyone who saw the ad and later searched your brand name organically instead, but it gives you a floor number that is unambiguously tied to the campaign.
A CTV-only promo code
A promo code shown only in the CTV creative and nowhere else gives you a second, independent read that does not depend on anyone typing a URL correctly. Redemptions are a clean count with no channel-grouping ambiguity, and comparing redemption volume against the landing-page visit count from the method above tells you roughly how much of the response is getting lost to people who searched or typed the domain from memory instead of following the link.
A short on/off spend holdout, read against blended revenue
This is the method that does the real work, and it is the same one described in our breakdown of incrementality testing for ecommerce: turn the CTV campaign fully off for two to four weeks after a comparable period with it on, and compare total blended store revenue across both windows, not platform-reported conversions. CTV has no native lift-test product at small-budget self-serve tiers the way Meta's Conversion Lift does at higher spend, so a manual on/off read against the store's own revenue is the realistic substitute. A null result does not mean CTV failed; it means the current budget or creative is not moving revenue enough to detect, which is itself useful information before spending more.
What the self-serve platforms actually offer
Roku Ads Manager is the most commonly cited accessible entry point into CTV for a small budget, letting an advertiser set objectives, upload creative, and launch without an agency or a minimum media commitment negotiated in advance. Roku's own materials do not publish a fixed spend floor, but independent pricing trackers have reported self-serve campaigns starting around $500 in total spend, a figure worth treating as illustrative rather than guaranteed, since platform minimums and CPMs shift.
What none of the self-serve dashboards give you, regardless of budget tier, is a view-through or cross-device identity graph connecting a specific household's TV exposure to a specific later purchase the way enterprise clean-room deals do. Anything their dashboard reports as an "attributed conversion" at this tier is almost always a probabilistic estimate, not the deterministic match the word implies. Treat the platform's own conversion number as a directional signal, not the number you report to a founder as incremental revenue.
A new industry framework is starting to standardize the numbers
IAB Europe's Connected TV Measurement Framework, published October 2026, organizes CTV reporting into three tiers: foundational delivery metrics like impressions and invalid-traffic filtration, exposure metrics like view-through rate and viewability, and performance metrics like conversions, ROAS, and incrementality. The framework explicitly treats those tiers as dependent on each other, meaning a platform's conversion number is only as trustworthy as its impression and viewability counting underneath it.
A small ecommerce advertiser does not implement this framework directly. It matters anyway, because as self-serve platforms align their own dashboards to shared definitions, the conversion and ROAS figures a brand sees inside Roku, Hulu, or a similar self-serve tool should become more comparable across platforms, and harder for any single vendor's dashboard to inflate on its own terms the way retail media ROAS already does without a shared standard behind it.
The decision, not the dashboard
Before adding connected TV advertising attribution to a measurement stack, answer three questions in order:
- Can you already reconcile GA4, Meta, and Google Ads revenue within a small, explainable margin for the same week? If not, fix that first. A new unreliable channel does not help a reporting setup that already cannot agree with itself.
- Can you sustain a stable daily CTV spend for two to four consecutive weeks without a major promotion overlapping the window? If the budget or calendar cannot support a clean holdout, any attribution number you see is unfalsifiable: you will have no way to know if it reflects the ad or the rest of the business.
- Are you prepared to treat the result as directional, not precise? CTV at this budget tier will never produce a number as clean as a last-click search conversion. The honest output is "sales moved" or "sales did not move," not an exact ROAS a founder can defend in a board deck.
If all three answers are yes, the dedicated landing page, the CTV-only promo code, and the on/off holdout above are enough to start. If any answer is no, that gap, not the CTV platform choice, is the thing worth fixing first. A paid media audit is the fastest way to find out whether your existing channels are reconciled enough to add a new one honestly, and for brands ready to manage CTV alongside the rest of the paid stack, ongoing ads management keeps the holdout discipline running past the first test instead of letting it quietly lapse after one campaign.
Connected TV will keep getting easier to buy. The measurement underneath it is still catching up, and at a DTC budget, the honest version of that measurement is a landing page, a promo code, and a holdout test read against real revenue, not a dashboard number borrowed from a tier of spend you are not at yet.

