How to Test a CPA Offer Without Burning the Budget: Caps, zone_id and the 48-Hour Rule
table of content

How to Test a CPA Offer Without Burning the Budget: Caps, zone_id and the 48-Hour Rule

A CPA offer test is a capped, time-boxed run of paid traffic that answers one question: does this offer convert on this source, GEO and format at a price you can scale? On popunder, push and in-app traffic, a test you can trust runs 36 to 48 hours, stays under a daily impression or click cap you set before launch, and passes zone_id so you can cut the placements that eat the budget. A six-hour test with no conversions mostly measures postback delay and the time zone you launched in.

Many buyers write a new offer off on day one: a small test budget, zero conversions by the evening, on to the next offer. Sometimes that's right, but often the first conversion just hadn't arrived yet. CIPIAI sits on the network side of that test, between the advertiser's postback and your tracker, and the protocol below is the one our traffic optimizer uses with webmasters on their first runs.

How long should you test a CPA offer?

Run a first test for 36 to 48 hours of traffic before you judge the offer, and don't pause or restart it in between. Networks that publish guidance all ask for at least a day, some for more:

‍

Network Minimum test window (source)
Kadam At least a day on pop; a couple of hours gives misleading data (2025)
RichAds A day or two after traffic starts, before optimizing popunder (2026)
PropellerAds Three to five days before judging a CPA Goal campaign (2026)

‍

CIPIAI data (January–September 2026): of the webmaster–offer pairs that converted at all, 44% got their first conversion on the second calendar day of traffic or later, and 28% on the third day or later. Of the pairs that got nothing on day one but kept running, 39% converted later. A test cut at the end of day one would have written off almost half of the webmaster–offer pairs that went on to convert.

‍

‍

Conversion delay is why the window matters. On offers with a longer funnel, such as antivirus with a purchase step or paid trials, PropellerAds notes that the first conversion can land three to four days after the click. Short automated rules break for the same reason: HilltopAds (2026) warns that a one- or two-day rule window cuts high-converting campaigns when deposits come in on day two or three.

Two more things stretch a first test's window. If you launch late in the evening of the target GEO, your "first day" is mostly night traffic. And if your tracker gets conversions from the network with a delay, check the postback with a test conversion before launch rather than after a day of silence.

Decide on day two, not day one. Day one tells you whether traffic flows and the postback fires.

How much traffic to buy on a first CPA test

Set a daily cap before launch, sized to the format, and keep the test inside it. A cap is the cheapest protection you have against two failures: spending the whole budget on irrelevant traffic in the first hours, and running out of money before you have enough data to decide.

Our optimizer uses the starting values below on first runs; the right cap for a specific offer depends on its payout, the conversion event and how much volume your network has on the GEO.

‍

Format Daily cap per campaign Daily cap per GEO What you're buying
Popunder, social, in-app Up to 20,000–25,000 impressions 2,000–5,000 impressions Impressions
Push, banner, native Up to 3,000–4,000 clicks Split by GEO volume Clicks

Source: CIPIAI traffic optimization team, October 2026. Starting values, not guarantees; your manager can suggest caps for a specific offer.

‍

‍

If you buy on CPM, CPC, SmartCPA or CPA Goal, translate the cap into a budget: the daily budget should match the most impressions or clicks you want to pay for, not the most you could spend. Then check the money side against the payout. Kadam suggests a test budget of the payout multiplied by three to five, times the number of creatives you test. On low-payout popunder offers, RichAds pauses a publisher or site once it has spent twice the payout without a conversion.

Check how much traffic your network has on the GEO before you set the number. A cap of 5,000 impressions means nothing on a GEO that sells 800 a day, and it burns through in an hour on one that sells millions.

Should you test a multi-GEO offer on broad targeting?

Not on a first test: broad targeting lets one or two large GEOs eat the whole daily cap before smaller ones get enough traffic to judge. The fix is to split: put the largest GEOs into separate campaigns, give them lower daily caps, and run smaller GEOs together. Adsterra (2026) recommends a separate campaign for each GEO, and a PropellerAds case study (2024) goes further: one GEO and one OS per campaign keeps optimization readable.

On a test, flip the usual logic: the more traffic a GEO has, the lower its daily cap on a test. A large GEO can deliver your entire test in the first hour of the day, all of it at one time of day.

Spread delivery across the day where your network supports it. ExoClick has a "Distribute throughout the day" setting, and Adsterra's API (2025) documents hourly budget and impression limits plus an even-distribution switch. One catch on ExoClick: even distribution uses the full 24 hours and ignores your ad schedule, so pick one or the other.

‍

Two more GEO settings decide whether the test is fair:

  • Language. If the offer's landing page is in English only and doesn't switch with the browser language, test first in countries where English is a main or widely spoken language.
  • Time zone. Schedule and read results in the GEO's local time, especially on a short run.

‍

Before launch, ask for the advertiser's top GEOs and your network manager's view on past results for similar GEO and vertical pairs. Both cost nothing.

What frequency capping should you use on a CPA test?

Use 1 impression per user per 24 hours on a first test. A higher frequency spends the budget on the same users, and on a test you want as many different users as the cap allows. ExoClick calls 1/24 the best practice when testing new sources, and PropellerAds (2026) uses it as the default testing setup on pop.

Defaults differ by network, so check yours before launch:

‍

Network Frequency setting (source)
ExoClick 1/24 recommended for testing new sources (docs)
PropellerAds 1/24 default for pop tests (2026)
TrafficStars 3/24 by default (FAQ, 2023)
RichAds 1 to 3 views a day on popunder (2026)

Raise frequency only on a campaign that already converts steadily, or on a zone or targeting slice you want more volume from. Our optimizer's ceiling for scaling is 3/24: no more than three impressions per user per day. Past that, you mostly pay to show the same ad to people who have already said no.

How to optimize a CPA campaign after the first conversions

Start optimizing once conversions come in, and work in an order that cuts waste first and adds volume second.

‍

1. Targeting slices. Look at GEO, device, OS and version, browser and version, carrier and language. A slice that took a real share of spend over the test and brought no conversions comes off; a slice with good conversion counts and CR gets more volume. Judge on conversions and CR together.

2. Time of day. Turn off hours that consistently lose money (see the dayparting table below).

3. Zones. Pause zones that spent about twice the payout with no conversions. In the PropellerAds case study the first zone cut came after three to four days on exactly that rule.

4. Bids on winners. Some networks let you set a local bid for one parameter, which buyers call microbidding; Adsterra, for example, documents custom bids per placement in its API (2025). Use it to buy more from the zones that convert best.

5. Frequency. Move from 1/24 toward 3/24 on proven campaigns or zones.

6. Creatives. Test new creatives once the bundle works, before the ad burns out. This matters most on push and banners, but popunder needs it too.

‍

One exception on creatives: if the offer card lists an advertiser prelander, send traffic to it as issued rather than adding your own in front. Each extra redirect can lose clicks.

What is zone_id, and why pass it to the network?

zone_id is the identifier of the zone, site or publisher placement your ad was shown on, passed from the traffic source into the offer link as a macro. With it, every conversion in your stats is tied to the placement that produced it, so you can blacklist the losers and raise bids on the winners. Without it, your only lever is the whole campaign.

Setting it up takes a minute: add the source's zone macro to your flow link as zone_id. Our BeMob postback guide shows the exact format, zone_id={zoneid}; the macro name depends on the network. Don't know the macro for your source? Send the network name to your manager to check the macro.

Passing zone_id to the CPA network also matters when an advertiser questions traffic quality: with zone data, you and your manager can see which placements the complaint concerns and cut them.

Some networks cut zones for you. Adsterra's CPA Goal (2026) unlinks placements by eCPA or conversion count and lets you export them as a blacklist, and PropellerAds' CPA Goal (2026) freezes non-converting segments. Adsterra recommends keeping its default 9-day protection period; if you write your own rule, never use a one-day window, or it will cut zones whose conversions arrive the next morning.

Dayparting: when CPA offers convert by vertical

Turn on dayparting after the first test, once you have a few days of hourly data, not before. These are the patterns our optimizer sees by vertical:

‍

Vertical When it converts
Mobile VPN, cleaners, adblockers Steady through the day; activity and conversion chance drop at night
Desktop utilities, antivirus, adblockers Peaks in the first half of the day and in the evening
Dating, games Strongest in the second half of the day, including at night

Source: CIPIAI traffic optimization team, October 2026. Read the hours in the GEO's local time.

‍

The antivirus pattern matches what we see on push: someone tapping a notification at 11 p.m. rarely installs antivirus, as covered in our utilities CPA guide.

Which site categories fit which offers?

If your network supports site or zone category targeting, start with these categories for tech verticals:

‍

Vertical Site and zone categories to start with
VPN Streaming
Adblockers, cleaners, utilities, antivirus News, streaming, games
E-commerce Games, social, news
mVAS Games, music, streaming
Dating Streaming

‍

We leave out categories where inventory often carries pirated content: that traffic doesn't pass quality checks on our side or with advertisers.

Source: CIPIAI traffic optimization team, October 2026.

For more on which verticals work on which formats, see our popunder ads guide.

CPA offer test checklist

1. Ask your network what limits, pacing, bidding and blacklist tools it has, and tell your CPA network manager.

2. Set daily caps by format, lower for bigger GEOs; translate them into a budget if you buy on CPM, CPC or CPA Goal.

3. Split large GEOs into their own campaigns; match the landing language to the GEO.

4. Frequency 1/24.

5. Add zone_id to the flow link and run one test conversion through the postback.

6. Run 36 to 48 hours without pausing.

7. Cut dead targeting slices and losing hours, then zones at about 2× payout with no conversions.

8. Raise bids and frequency only on what converts.

FAQ: Testing CPA Offers

How long should I run a test on a new CPA offer?‍

Run it for 36 to 48 hours of traffic before deciding, without pausing in between. A test shorter than a day mostly measures postback delay; Kadam says a pop test should run for at least a day, RichAds waits a day or two before optimizing, and long-funnel offers such as antivirus with a purchase can take three to four days to show the first conversion.

‍

How many impressions should I buy on a first popunder test?

Our optimizer starts popunder, social and in-app tests at up to 20,000–25,000 impressions a day per campaign and 2,000–5,000 per GEO. Push, banner and native tests start at up to 3,000–4,000 clicks a day. Adjust to the payout and to how much volume your network has on the GEO.

‍

What frequency capping is best for testing?

Use 1 impression per user per 24 hours. ExoClick recommends 1/24 for testing new sources and PropellerAds uses it as the default pop test setup; raise it toward 3/24 only on campaigns that already convert.

‍

When should I blacklist a zone?

Pause a zone once it has spent about twice the offer's payout without a conversion. RichAds uses that threshold for low-payout popunder offers, and the PropellerAds case study applied it three to four days into the test.

‍

Why doesn't my CPA offer convert on the first day?

‍Usually because the first conversion hasn't arrived yet: on CIPIAI, 44% of webmaster–offer pairs that converted got their first conversion on day two or later (January–September 2026). Conversions lag the click, launch time in the GEO's time zone shifts your first day into night traffic, and some funnels convert days later; check that the postback fires, then give the test until day two.

‍

What is zone_id in affiliate marketing?

zone_id is the ID of the placement where your ad ran, passed from the traffic source into the offer link as a macro. It ties each conversion to a zone so you can blacklist losing placements and bid up winners.

Run your next test on CIPIAI

A test you can trust needs a cap set before launch, 36 to 48 hours of traffic and zone_id in the link. Pick one offer, one format and two or three GEOs, and set the cap and zone_id before you spend a dollar.

Running pop, push or in-app traffic on VPN, utilities, antivirus or app offers? Ask your CIPIAI manager for starting caps and top GEOs on a specific offer. Payouts run NET30 with autopayments, threshold from $50 via payment providers and from $500 for wire transfer. Register as a webmaster →

This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.