What actually decides who push ads reach once the dropdowns are set
Last updated: 8 September 2026
On this page
Push ads targeting looks like a short list of dropdowns: country, device, OS, browser. Underneath that list sits a second, invisible layer built from carrier data, connection type and individual publisher source IDs, and campaigns set identically on the visible filters routinely deliver to different audiences because the invisible layer was never touched by either buyer. Most of the real difference between a winning and a losing campaign sits in that lower, less visible layer rather than in the dropdowns everyone checks first, and few buyers ever look past the first screen to find it.
The visible filters everyone sets the same way on push ads
Country, device type, operating system and browser cover the targeting panel most buyers interact with, and because every competing campaign sets these identically, they differentiate almost nothing between two buyers chasing the same audience. Two accounts targeting the United States, mobile, Android, Chrome will overlap on nearly the entire reachable pool before either applies a single additional filter.
That overlap is precisely why source-level control exists as a separate, deeper layer: it is the only place two otherwise identical campaigns can actually diverge in who they reach and at what price.
A related and often overlooked visible filter is language, distinct from country targeting on several panels. A campaign running in Canada without a language split reaches both English and French-speaking subscribers with the same creative, and the French-speaking segment typically underperforms noticeably on an English-only creative, a gap that a country-only filter has no way to surface.
The same blind spot shows up inside single-language countries too, wherever a meaningful immigrant or expatriate population browses in a second language. A campaign targeting Germany purely by country and device still reaches a share of Turkish and Arabic-speaking users whose engagement pattern on a German-only creative differs enough to be worth its own segment on any list large enough to support the split.
Source ID bidding and what it changes for push ads
A source ID identifies the individual publisher site or app feeding traffic into the network, and bidding at that level rather than at the network-wide level lets a buyer pay more for sources that convert and cut spend on ones that do not, instead of accepting one blended price across every publisher in the pool.
Why blended bidding hides bad sources
A network-wide bid averages performance across dozens or hundreds of publishers, so a handful of strong sources can mask a majority of weak ones inside a report that still looks acceptable overall. Breaking the same spend down by source ID typically reveals that ten to twenty percent of sources produce most of the conversions, with the remainder delivering volume at a loss that the blended average was quietly absorbing.
The source-level bidding documentation on push ads pages explains the mechanics of setting per-source bids on panels that support it, which is worth reading before assuming every network exposes this control the same way, since several do not expose it at all.
Manually adjusting bids across dozens of sources by hand is tedious enough that many buyers simply skip it, which is exactly why the ones who do it consistently see a measurable edge over accounts running the same targeting on autopilot. A weekly ten-minute pass through the source report, cutting the bottom decile and nudging up the top one, tends to compound into a noticeably better blended CPA within a month or two.
A handful of panels now offer semi-automated source bidding that adjusts within a buyer-set range based on recent conversion data, which narrows but does not eliminate the gap with fully manual management. Buyers relying on this automation still benefit from a periodic manual check, since the automated range itself needs occasional widening or narrowing as a campaign's true performance ceiling becomes clearer over time.
Carrier and connection filters that change push ads delivery
Excluding proxy and VPN connections removes a slice of non-human or geographically misrepresented traffic before a buyer pays for it, a filter that exists on some panels and not others, and its absence is one reason two networks quoting the same CPM for the same country can deliver noticeably different quality.
| Filter | What it removes | Typical impact on CPM | Available on all panels |
|---|---|---|---|
| Proxy/VPN exclusion | Masked or misrepresented location traffic | Raises effective CPM 5-15% | No |
| Carrier-level targeting | Non-mobile-network connections | Raises CPM slightly | On some panels |
| Connection type (WiFi/cellular) | Wrong network context for the offer | Neutral to small increase | Widely available |
| IPv6 exclusion | A slice of bot and scraper traffic | Small CPM increase | On select panels |
None of these filters are free; each one narrows the reachable pool and can raise the effective price per impression, so applying all of them by default without checking delivered volume afterward risks starving a campaign of traffic entirely. The filter compatibility notes for push notification ads list which of these apply per platform, saving a buyer from assuming a filter exists simply because a similar one does on a different format.
A carrier-level filter also interacts oddly with roaming traffic, since a subscriber travelling abroad can briefly register on a foreign carrier network while their device and app data still identify home-country demographics, occasionally producing a small but persistent mismatch between declared and delivered GEO that no single filter fully resolves on its own. Buyers running campaigns during peak travel seasons sometimes see a small unexplained bump in this kind of mismatch, worth checking before assuming a targeting leak elsewhere in the account.
Testing whether a push ads targeting layer is actually working
The only reliable way to confirm a filter is doing anything is a controlled split: identical creative and budget, one segment with the filter applied and one without, run concurrently rather than sequentially, since sequential tests get confounded by normal day-to-day fluctuation in available inventory.
A split test structure that isolates one variable
Running filtered and unfiltered segments back to back rather than side by side is the most common mistake in this kind of test, because inventory quality shifts hour to hour, and a filter that looked effective in a morning-versus-afternoon comparison may simply be reflecting the time of day rather than the filter itself.
A useful discipline is changing exactly one filter per test cycle and running it for a minimum of three full days before drawing any conclusion, since a single strong or weak day can otherwise get misread as a lasting effect from a filter that had nothing to do with it.
Statistical noise matters more on smaller daily budgets, where a segment pulling only a few hundred impressions a day can swing wildly between two otherwise identical days purely by chance. Waiting for each segment to accumulate at least a thousand impressions before comparing conversion rates avoids reading meaning into what is often nothing more than a small-sample fluctuation.
Building a push ads targeting stack that holds up over time
Targeting decays the same way subscriber lists do: a carrier filter that excluded the right non-human traffic in January may be excluding legitimate users by June if network infrastructure on that carrier changes, which means a targeting stack needs the same periodic check as a source list rather than a one-time setup.
A recheck schedule for targeting layers
| Layer | Recheck interval | What to check |
|---|---|---|
| Source ID bids | Weekly | Conversion rate per source, adjust bids |
| Carrier/connection filters | Monthly | Confirm filter still improves quality, not just narrows volume |
| OS/browser mix | Quarterly | Match against current device share for the GEO |
Reference material on push-ads.io lays out which targeting layers are available per panel and which require a support ticket to enable, which shortens the setup considerably compared with discovering each limitation through a rejected campaign.
Getting the visible filters right is table stakes; the source-level layer underneath is where campaigns actually separate from each other, and the buyers who revisit that layer on a fixed schedule rather than only when performance drops are consistently the ones who catch drift before it costs a full month of wasted spend.
None of this needs to be complicated to be effective. A simple spreadsheet tracking source ID, current bid and trailing seven-day conversion rate, updated once a week, covers most of what a dedicated optimisation team would automate at a larger scale, and it scales down comfortably to accounts running only a handful of active sources at a time.