Using Adwave Using Adwave

June 27, 2026

Adwave Targeting Deep Dive: Finding Your Perfect Audience, Zip by Zip

Most advertising platforms bury you in targeting options and call it power. Adwave takes the opposite view: the targeting decision that actually determines whether your TV campaign works is geographic (which households can realistically become your customers), and everything downstream of that decision should be automatic.

This deep dive covers how to make that one decision well: defining your trade area from evidence instead of instinct, choosing between local and national scope, understanding what Adwave handles for you and why, and using the dashboard's geographic data to sharpen the targeting quarter after quarter. If you want the industry-wide view of how CTV targeting works under the hood, our CTV targeting options guide covers the field; this article is the practical Adwave workflow.

Geography first, everything else second

For a local business, "who is my audience?" is mostly answered by a map. The household that can buy from you lives within driving distance of your storefront, your service trucks, or your delivery range. Demographics refine the picture; geography defines it.

That's why Adwave's targeting starts with the question that matters: where do your customers live? Get that boundary right and your impressions land on plausible buyers by default. Get it wrong (too wide, usually) and no amount of clever audience science rescues the budget, because you're paying to reach households that could love your ad and still never become customers.

Step 1: Draw the trade area from evidence

Skip the gut feel; your business already has the data:

Pull customer addresses. A year of invoices, delivery addresses, loyalty signups, or appointment records, reduced to zip codes and counted. Every POS and booking system can export this in minutes.

Find the cliff. Sort the zips by customer count and look for the drop-off. Most local businesses discover that 80-90% of customers come from a surprisingly tight set of zips, with a long irrelevant tail. The tight set is your core targeting; the tail is noise.

Sanity-check against drive time. Customers cross town for a destination restaurant but not for a dry cleaner. If your category's real-world convenience radius is 10 minutes, a zip 25 minutes away doesn't belong in the campaign no matter how nice its demographics look.

New business with no customer file? Start with a deliberately tight radius around your location (the zips within your shortest plausible drive time) and let the dashboard data expand it later. Starting tight and growing beats starting wide and shrinking, because the tight version actually produces readable results; the math behind that is in our frequency and reach guide.

Adwave Targeting Deep Dive - Body1

Step 2: Set the scope dial

Adwave campaigns run local or national, and the right setting follows your fulfillment, not your ambition:

  • Local: you serve a geography (storefronts, service areas, local professional practices). Load your core zips and concentrate there.

  • National: any U.S. household can buy (e-commerce, apps, info products). Open the geography and let demographic breadth carry the reach.

The full decision framework, including the regional and multi-market middle ground, is in our local versus national guide. The single most common setup error we see is aspiration-driven scope: a two-location business targeting a whole state. Match the map to the money, and revisit the setting when the business's footprint genuinely changes.

For businesses whose trade area is tighter than zip codes (a single neighborhood, a walkable district), geofencing approaches on other channels can complement the TV layer; on the TV side, pick the small set of zips that contain the neighborhood and accept the modest spill as cheap adjacent awareness.

Step 3: Let the platform pick the platforms

Here's the Adwave design choice that surprises advertisers coming from other tools: you don't choose networks or apps. Your campaign runs across 100+ premium networks (NBC, Hulu, ESPN, and the rest), and delivery distributes automatically to wherever your targeted households are actually watching.

This is a feature wearing the costume of a limitation. Channel-picking feels like control, but it quietly converts your media plan into guesses about viewing habits ("our customers seem like Hulu people"), and those guesses fragment your budget across inventory silos. The household you want watches differently on Tuesday than Sunday; following the household beats betting on the app. You define who (geography) and the system handles where (whatever screen those households are streaming), including managing per-household frequency so your impressions spread across the audience instead of stacking onto one heavy viewer.

The practical upshot: there is no network strategy to maintain, no inventory to rebalance, and no way to make the classic mistake of buying the channel instead of the customer.

Common setups by business type

Adwave Targeting Setups by Business Type

Business Type Targeting Shape Notes
Restaurant / retail location 8-15 zips around the location Tight core; expand only after frequency is healthy
Home services Full service area zips, weighted to best neighborhoods Match the dispatch map, not the county line
Professional practice (dental, legal, financial) 10-20 minute drive-time zips Patients and clients trade distance for trust slowly
Multi-location operator Per-location zip sets, run as one campaign per market Weight by location capacity and awareness gap
E-commerce / DTC National, or national + heavy-up in proven metros Customer-file density picks the heavy-up markets
SMB SaaS / B2B owner-operator Metros ranked by customer-category density The buyer is a household; the proxy is business density

Read the map the campaign draws

Once live, the dashboard turns your targeting from a plan into a feedback loop. Delivery and completion data arrive by geography, and the patterns are the point (reading the dashboard covers the full tour):

  • Zips that respond: strong completion rates, and (cross-referenced with your own data) rising customers, calls, or branded searches from those areas. These earn more frequency.

  • Zips that absorb without responding: delivery looks normal but nothing downstream moves after a full quarter. Candidates for trimming.

  • The surprise zip: almost every campaign produces one area that over-responds unexpectedly. That's not noise; it's your next expansion hint, and often a finding worth handing to your other marketing too.

Match this against the intake question your staff should already be asking ("how did you hear about us?") and the picture sharpens fast.

Adwave Targeting Deep Dive - Body2

The quarterly trim-and-expand

Targeting isn't a launch decision; it's a habit. Once a quarter, thirty minutes:

  1. Trim the zips that absorbed a full quarter of impressions without any downstream signal. No sentiment; the budget they release funds the next step.

  2. Expand one ring: the adjacent zips nearest your strongest performers, or the surprise zip's neighbors. One ring at a time keeps the read clean.

  3. Re-check frequency. After every boundary change, confirm the budget still sustains 3-6 monthly exposures per household across the new footprint. If it doesn't, the expansion was premature; shrink back rather than dilute.

Two or three cycles of this and the campaign map converges on something no upfront plan could have drawn: the actual shape of your market's attention.

Adwave Targeting Deep Dive - Body3

Common questions answered

How precise is Adwave's geographic targeting?

Campaigns target at the zip-code level, which you can assemble into radii, service areas, neighborhoods-plus-spill, or full metros. For nearly every local business, zip-level granularity matches the real shape of a trade area; the goal is covering the households that can plausibly buy from you, and zips do that with very little waste.

Why can't I pick which networks my ad runs on?

Because the household matters and the app doesn't. Your targeted households spread their viewing across dozens of networks and change habits week to week; locking your budget to hand-picked channels just narrows your reach into a guess. Adwave follows your audience across all 100+ networks automatically and manages per-household frequency, which delivers the people you chose wherever they happen to be watching.

Can I target by age, income, or interests on Adwave?

Geography is the primary lever, and for local businesses it's the one that drives results, since trade-area households are your buyers almost by definition. The sharpest demographic tool you have is zip selection itself: neighborhoods carry strong, knowable household profiles, and choosing zips by your customer file's actual density beats abstract demographic checkboxes for local campaigns.

How many zip codes should my campaign target?

As many as your budget can cover at 3-6 exposures per household per month, and no more. For a typical local budget that's often 8-20 zips. Divide your monthly impressions (budget ÷ CPM × 1,000) by the households in your candidate zips; if the result is under 3, cut zips until it isn't. Concentrated-and-remembered beats broad-and-invisible every time.

How do I know if my targeting is working?

Watch three layers: completion rates by geography in the dashboard (is the creative landing?), branded search and direct traffic from your targeted areas (is recognition building?), and your own intake data by zip (are customers arriving from where you're advertising?). When all three agree on which zips respond, trim and expand accordingly each quarter.

Draw the map, then let it learn

Bottom line: great TV targeting for a local business is one honest decision (which households can actually buy from you) followed by a quarterly habit of letting the data redraw the edges. Adwave handles the networks, the distribution, and the frequency; you bring the customer file and the discipline.

The whole setup takes minutes. See how Adwave works: generate your ad, load your zips, and start drawing the map your market will fill in.