Traffic arbitrage is buying ads in one place and selling the result of those ads — registrations, leads, deposits — to an advertiser through an affiliate program. English-speaking affiliates usually just call it media buying on CPA offers, or affiliate media buying. The media buyer earns the difference between what they spent on traffic and what they were paid for confirmed actions.
The definition is simple. The hard part is twofold: you spend the ad money today but get paid only after approval and the hold, and between the ad click and the payout there are five or six points where attribution can get lost. This article covers both: how the model works, and how to calculate whether it’s actually making money.
Traffic Arbitrage in Plain Terms
Take one day of one campaign. A media buyer runs Facebook ads for a nutra offer where the affiliate network pays $32 per confirmed lead.
- Ad spend: $2,400, for 6,000 clicks.
- Those clicks produced 150 leads.
- The advertiser’s call center confirmed 60% of them — 90 approved leads.
- Payout: 90 × $32 = $2,880.
- Accounts, proxies and the tracker cost another $120.
Bottom line: $2,880 − $2,400 − $120 = $360 profit, a 14.3% ROI. That’s arbitrage: buying attention for less than the advertiser will pay for it.
Note that “arbitrage” here isn’t the financial term. In trading, arbitrage means a near risk-free price difference. In traffic, the risk is entirely yours: spend is charged immediately, and the 150 leads turn into 90 paid ones only several days later. Had the approval rate come in at 50%, the same campaign would have lost $120. More on that in the section on calculating profit.
Who’s Involved
| Participant | What they do | What they get |
|---|---|---|
| Advertiser | Owns the product: a casino, store, service or app | Customers it pays for only once the action happens |
| Affiliate network (CPA network) | Aggregates advertisers’ offers, tracks conversions, pays affiliates | The margin between the advertiser’s rate and the affiliate’s payout |
| Media buyer (affiliate) | Buys traffic, builds creatives and the funnel, optimizes campaigns | Payouts for confirmed actions minus all costs |
| Traffic source | Sells impressions and clicks: Facebook, TikTok, Google, push networks, native networks | Money for the ads, regardless of results |
| Tracker | Receives clicks, routes them, receives postbacks and calculates stats | A subscription fee or the cost of a server |
An advertiser can also work with a media buyer directly, without a network — that’s called working with a direct advertiser. A network, for its part, takes on a big share of the work: it guarantees payouts, gives you one interface and one set of stats, and negotiates terms. Around this chain there’s also a layer of services for the media buyer: ad accounts, proxies, landing page and PWA builders, and spy tools for finding creatives.
How One Click Travels: From Ad to Payout
The sequence below is what happens to every click. When your stats don’t add up, one of these steps is almost always to blame.
- Impression and click. A user clicks the ad. The ad platform appends its own identifier to the link, such as
fbclid, and fills in the macros you set in the URL parameters: campaign, ad set and ad IDs. - Tracker. The click lands in the tracker. The tracker assigns it its own click ID, records the source and parameters, and sends the user on — to a prelander, landing page, PWA or straight to the offer.
- Offer. The offer link carries the click ID in a sub parameter. The affiliate network stores it alongside the user.
- Conversion. The user registers, submits a lead form or makes a deposit.
- Postback. The network sends the tracker a server-to-server request — the postback — with the same click ID, the conversion status and the payout. The tracker finds the original click and knows which campaign, ad set and creative brought in the money.
- Approval and payout. The advertiser approves or rejects the conversion. Once the hold ends, the network pays out.
If the macro didn’t populate at step 1, the sub parameter got lost at step 3, or the postback arrived without a click ID at step 5, the conversion exists but the attribution doesn’t. The full path is covered in the guide to S2S postbacks and the article on click ID, sub ID and fbclid. You can build the ad’s parameters in the URL parameter builder and check the finished link for unresolved macros with the tracking link checker.
Payout Models: CPA, CPL, RevShare and Hybrid
The payout model determines what you get paid for — and when you find out whether you made money.
| Model | What you’re paid for | Upside | Risk |
|---|---|---|---|
| CPA | A fixed amount per target action: a sale, a deposit, a first-time deposit (FTD) | Revenue is clear as soon as the conversion is approved | Action conditions (minimum deposit, baseline) cut out part of your conversions |
| CPL | A fixed amount per lead — a form submission or registration | Fast feedback | Approval rate depends on traffic quality and the call center’s work |
| RevShare | A percentage of the advertiser’s revenue from the referred customer, often for life | Potentially more than CPA on quality traffic | Money comes in over months; the first weeks of a campaign are almost always in the red |
| Hybrid | CPA per action plus a small RevShare | Part of the money up front, part as a tail | Both rates are usually lower than in the pure models |
Three terms you can’t read an offer’s terms without:
- Approval rate — the share of conversions the advertiser confirmed and paid for. In nutra, it’s the share of leads the call center confirmed. In gambling, reg2dep plays a similar role — the share of registrations that go on to deposit.
- Hold — the period during which the network holds accrued earnings before paying out, so the advertiser has time to reject fraud. The length depends on the network and the offer; confirm it before launch.
- Shave — when conversions aren’t counted, or are counted with a downgraded status. The only defense is your own tracker with postbacks: you see your conversions independently of the network’s stats and can reconcile the numbers.
How FTD revenue is actually counted, and why registrations mislead, is covered in the article on FTD tracking in gambling.
Verticals
A vertical is a type of offer. It determines the payout model, the traffic source, and how strictly moderation treats your ads.
- Gambling and betting. Online casinos and sportsbooks. They pay per FTD on CPA, RevShare or hybrid. Advertising is tightly regulated: many countries require a license, and ad platforms allow these ads only with authorization and not in every GEO.
- Nutra. Health and beauty products, usually paid on CPL per confirmed lead. The key metric is approval rate.
- Dating. Registrations and subscriptions on dating services.
- Finance and crypto. Registrations and deposits on exchanges and financial services. Heavily regulated.
- E-commerce and physical goods. Sales of physical products.
- Apps and utilities. Installs and subscriptions: VPNs, antivirus, games.
A word on risk. Ad platform policies and national laws restrict advertising for gambling, financial products and health products. Circumventing moderation violates platform policies and gets accounts banned, and advertising an unlicensed product in a country where it’s prohibited may break local law. Check the terms upfront: it’s part of your risk math, not a formality.
Traffic Sources
| Source | How you pay | What to know |
|---|---|---|
| Facebook and Instagram (Meta) | Mostly per impression (CPM) in an auction | Strong targeting and event optimization, strict moderation, account management is a job of its own |
| TikTok Ads | Per impression, click or optimized event | Different link macros, short creative lifespan |
| Google Ads | Per click (CPC) or per impression | Search intent; gambling and finance require certification |
| Push and in-page push networks | Per click or per impression | Cheap, but lots of low-quality and bot traffic |
| Native networks | Per click | Traffic from content sites; needs a prelander to warm it up |
For your first launches, it makes sense to pick one source and learn it in depth: how the auction works, which events to pass, which macros are available. Bot traffic in cheap sources has a guide of its own — how to detect and filter click fraud.
The Setup: What It Is and What It’s Made Of
In traffic arbitrage you don’t test “an offer” or “Facebook” — you test a setup, which Russian-speaking buyers call a svyazka (often translated as “bundle”). A setup is one specific combination of:
- the offer and its terms;
- GEO;
- traffic source and buying type;
- creative;
- prelander, landing page or PWA;
- targeting and campaign settings.
The same nutra offer turns a profit in one country with one creative, and loses money in the neighboring country with a different creative. That’s why teams track results per setup and make decisions on each one separately. To do that, they pass sub parameters in the link — campaign, ad set and ad IDs — so they can see results all the way down to the creative.
One more element of a setup, typical for gambling and betting, is the PWA: a web app the user installs from the browser instead of an app store. What that funnel looks like from click to FTD is covered in the article on PWA apps in traffic arbitrage.
How to Calculate Profit: ROI, ROAS, EPC and Approval Rate
Let’s go back to the example from the start and calculate it properly.
Approved leads = 150 × 60% = 90
Revenue = 90 × $32 = $2,880
Total costs = $2,400 (spend) + $120 (other) = $2,520
Profit = $2,880 − $2,520 = $360
ROI = $360 / $2,520 × 100 = 14.3%
ROAS = $2,880 / $2,400 = 1.20
EPC = $2,880 / 6,000 clicks = $0.48
ROI shows profit on all the money you put in — it’s the number you decide on scaling with. ROAS shows revenue per dollar of ad spend and ignores every other cost: a ROAS of 1.2 doesn’t mean you’re in profit if your other costs are high. EPC is earnings per click: if EPC is higher than your cost per click, the setup is making money.
Now the key part — sensitivity to approval rate. The same campaign at a 50% approval rate:
Approved leads = 150 × 50% = 75
Revenue = 75 × $32 = $2,400
Profit = $2,400 − $2,520 = −$120
ROI = −4.8%
A 10-percentage-point difference in approval rate turned a profit into a loss. The break-even approval rate here is 52.5%: total costs divided by (leads × payout). If the advertiser’s call center has a worse-than-usual few days, the campaign slips into the red without a single change on your end.
So calculate break-even before launch, not after. You can get all of these numbers — profit, ROI, ROAS, break-even approval rate, payout and max CPC — in a minute with the ROI and ROAS calculator. The formulas, with two campaigns worked through, are in the guide on how to calculate ROAS and ROI on paid traffic.
Tracking: Without It, Arbitrage Is Guesswork
The ad dashboard shows the conversions the pixel saw: registrations, leads, sometimes purchases with a value you passed yourself. It doesn’t know which leads the call center confirmed or which players deposited. Hence the classic situation: the dashboard shows a ROAS of 3, while in actual money the campaign is losing.
A tracker does three jobs:
- Connects clicks to money. Through the click ID and the postback, every paid conversion is tied to a campaign, ad set and creative.
- Shows what to scale. When every setup has its own revenue from approved conversions, decisions are made on money, not on the pixel.
- Gives you independent stats. Reconciling your numbers against the network’s is the only way to spot shave or lost postbacks.
Before launch, check the postback with a test conversion: build the URL in the postback URL builder, fire a test, and make sure the conversion found its click in the tracker. The difference between a pixel, the Conversions API and an S2S postback is covered in Pixel vs CAPI vs S2S postback.
Solo or Team
Most people start solo: one person buys traffic, makes creatives and watches the stats. As the budget grows, the work splits up:
- a media buyer launches and optimizes campaigns;
- a creative designer makes creatives and prelanders;
- an account farmer or account specialist prepares and maintains ad accounts;
- a tech specialist owns the tracker, domains, PWAs and postbacks;
- a team lead and finance allocate budget and work out who earned what.
A team brings a new problem: the tracker shows which click converted, but it doesn’t tell you how much the team earned, which buyer is in profit, or who gets paid how much. That gap is covered in tracker vs CRM for media buying.
Where to Start: A Beginner’s Plan
- Pick one source and one vertical. Don’t try to test everything at once — every source has its own rules, macros and auction.
- Check the restrictions. The ad platform’s policies for your vertical and the laws of your target GEO.
- Sign up with one or two affiliate networks. Ask your affiliate manager about approval rate, hold, baseline and which traffic sources are allowed for the offer.
- Configure the tracker before launch. Pass campaign, ad set and ad IDs into sub parameters, configure the postback and check it with a test conversion.
- Calculate your break-even point. How much you can pay per click, and what approval rate you need to break even.
- Set aside a test budget. Several creatives per setup and enough clicks to see at least a few conversions. One or two conversions aren’t enough to draw conclusions from.
- Make decisions once the data has matured. Wait for approvals and, for RevShare, at least the first few weeks of revenue.
- Scale only what’s profitable on approved data. Not on the ad dashboard, and not on one lucky day.
Which tools you’ll need at each stage is covered in the overview of the media buying tools stack.
Common Beginner Mistakes
- Calculating ROI from the ad dashboard. Pixel conversions are not paid conversions.
- Killing a setup before approvals close. A day after launch the approval rate isn’t known yet, and a profitable setup can look like a loser.
- Forgetting other costs. Accounts, proxies, creatives and the tracker are part of your cost too. Leave them out and ROI looks better than your bank balance.
- Not testing the postback in advance. A conversion without a click ID won’t land in any campaign, and you’ll switch off exactly the setup that was working.
- Looking at averages. One blended ROI across all creatives and GEOs hides losing setups behind winning ones.
- Scaling abruptly. Raising the budget changes the auction and the audience; what worked at $100 a day won’t necessarily work at $1,000.
FAQ
Is traffic arbitrage legal?
On its own, it’s ordinary performance marketing: buying ads and getting paid for results. Legal issues come from the product and the methods: advertising unlicensed gambling in a country where it’s banned, making false claims in nutra, or circumventing ad platform moderation. Check the laws of your target GEO and the platform’s policies. This article is not legal advice.
How much money do you need to start?
There’s no universal figure. The budget depends on the cost per click in your source and the size of the payout: the test should be big enough for a setup to collect at least a few conversions. On top of that come the costs of accounts, the tracker and creatives. Work from the offer’s payout and the click price, not from someone else’s “starting budget.”
How much do media buyers earn?
The range is huge, and many work at a loss in their first months. Income is driven by budget, ROI and how long a setup stays profitable — not by a “secret scheme.” If someone promises you guaranteed income, they’re selling a course, not doing arbitrage.
How is traffic arbitrage different from media buying?
Media buying is buying ads in the broad sense, including for your own product or for an agency client. In the Russian-speaking market, “traffic arbitrage” usually means media buying for affiliate offers with your own money and payment for results — what English-speaking affiliates call affiliate media buying. In practice the terms overlap, and whoever buys the traffic is called a media buyer.
Does a beginner need a tracker?
Yes, if you want to know which creative and ad set is making money. The minimum is passing the click ID to the offer and receiving a postback with the status and payout. Without that, you only see the network’s overall total and can’t switch off losing setups without hitting the profitable ones.