A read-only Google Analytics 4 connection is all linear TV and radio attribution needs. No pixel, no tag, no code on your site.
Most media directors already hold the two data sets needed to measure linear media: a Google Analytics 4 property that records every visit to the site, and airing logs that record every spot. Attribution joins the two. This guide explains how that works from a read-only GA4 connection, what we look at in your property before measuring anything, which KPIs come out, how far back it reaches, and when BigQuery is worth adding. If you are comparing providers, see how to evaluate a TV attribution vendor.
What a read-only GA4 connection is
You add one email address to your GA4 property with the Viewer role, the same read-only access you would give an analyst or an agency partner. That is the whole setup on your side.
Viewer access lets us read reports and pull data through the Google Analytics API, minute by minute and by any dimension the property records. It cannot change settings, edit events, or touch your website, and you can remove it at any time from the property's access management.
Just as important, Viewer access lets us look inside the GA4 interface itself. That is where most problems with a property are found, and finding them before measurement starts is a large part of why the first report holds up.
What we check in your property first
GA4 properties get messy over time, and the mess goes straight into any attribution built on top of them. Before a single airing is measured we go through:
- Tagging. Duplicate tags that double-count sessions, and missing or broken conversion events, purchase events most of all.
- Marketing channels. How much traffic lands in "unassigned" or unknown channels, and what the overall mix looks like. A property dominated by direct, organic search and paid search is good news: that is navigational traffic, the kind TV and radio create. Heavy display, social, affiliate or referral traffic is excluded from the analysis.
- Hostnames. Properties often collect several websites. Only the site the ad sends people to belongs in the measurement.
- Countries and data sources. Traffic from outside the campaign's markets, and app or cross-domain streams that behave differently from the website.
The channels we keep are direct, organic search and paid search, plus cross-network and Performance Max when they behave like paid search. Everything else is set aside before the baseline is built, so a social campaign or an affiliate push on the same day is not credited to a spot.
How airing logs are matched to GA4 sessions
Attribution for linear media is a time-and-place problem. Every spot has an airtime and a market; every GA4 session has a timestamp and a location. The method:
- Normalize the airing logs (postlogs) into one table: station, market, date, time, length, creative, cost.
- Pull minute-level traffic from GA4 for the markets each spot aired in, filtered to the channels above.
- Build a baseline for every minute from your own history: the same minute, same hour, same day of week, over months, accounting for spots that aired before.
- Measure the lift: the response after the airing minus what the baseline expected. The window closes when traffic returns to normal, and spots that air close together share credit.
- Measure local spots against local traffic only, so a busy evening in one market is never credited to an airing in another.
Why we measure the whole site, not a landing page
Vanity URLs, dedicated landing pages, offer codes, "how did you hear about us" questions, custom 800 numbers and QR codes all try to measure TV by asking the viewer to do something extra. Most viewers don't. They type the brand into Google and click the first result. Anyone who has been asked "where did you hear about us?" and answered "Google" knows how this goes.
Measuring only a landing page therefore undercounts linear media, often badly. We measure response across the whole domain and every landing page, and filter by channel instead. Keep your vanity URLs if you have them; they are a useful cross-check, not the measurement.
Which KPIs come out
Any event GA4 records can be a KPI. In practice most advertisers pick two or three:
- New users or sessions, for top-of-funnel response
- One lower-funnel action: add to cart, view item, form submit, registration or purchase
Every airing gets incremental counts for each KPI, plus cost per new user, cost per lead or cost per purchase. From there the report rolls up by station, program, daypart, day of week, creative and market. Call data from your call-tracking provider can be added as its own KPI, measured the same way.
Geography: states in GA4, markets with BigQuery
GA4 reports location down to the US state. The older Universal Analytics had metro areas, which is what TV buyers call DMAs, and that level is gone from GA4's interface.
It still exists in the raw data. When a client links GA4 to BigQuery and grants read access, DMA comes back, and local spots can be measured against their own metro's traffic: roughly 250 US markets, at the minute level, by channel, across hundreds or thousands of airings. It is a big-data job, and it is one of the things clients are most surprised we can do.
BigQuery: when the purchase comes later
Some purchases do not happen in the ten minutes after a spot. A car, a course, a financed anything: people visit, leave, talk it over, come back on the weekend. A standard response window catches the visit and misses the sale.
With BigQuery access the two can be tied together. The first visit after an airing is the new-user session; the user's later events, days or weeks on, are cohorted back to it. A purchase three weeks later is credited to the airing that brought the first visit. It is a much cleaner attribution for high-consideration products than hoping to catch a purchase in the minutes after the spot.
Two honest caveats. None of this is exact; every attribution method is an estimate, and this one too. And cohort results mature: a week measured as soon as its postlogs arrive gives users only a few days to come back, so the same week re-run two months later will show more. We say which version you are looking at.
How far back it reaches
Because GA4 was already collecting, attribution can run on past campaigns, not just future ones. Most properties have at least three months of granular data; some have a year or two.
The further back you go, the more asterisks. GA4 retention settings purge or thin older data, some dimensions such as channel or region disappear from older periods, many accounts only moved to GA4 in 2023, and websites, funnels and tracking change in ways nobody remembers. Historical analysis is useful and we do it, with those limits stated plainly.
Why this works for linear TV and radio and not on-demand
The method needs an airing time and a place. Broadcast, cable, satellite, local and national radio, satellite radio, live reads and live streaming TV all have one. Podcasts and on-demand streaming do not: every listener hears the ad at a different moment, so there is no minute to measure against.
Same-day onboarding
Add the Viewer, send the postlogs, and the account is set up the same day; the first report follows the next business day. We run up to a month of your airings before you pay anything, and plans start at $399 a month, month-to-month. If granting access raises questions, we are happy to sign an NDA first. Book a demo to see it on your own data.
Keep reading
- What Is TV Attribution for Linear Advertising?
- TV Campaign Measurement & Attribution
- TV Attribution for Call Center Analysis
- Postlog Analysis: Turning Station Logs Into TV Attribution
- Radio Attribution: How to Measure Radio Advertising
See it on your own data. Plans start from $399/mo, month-to-month, with flat pricing by media-spend tier. Book a demo to walk through a report.