If you’ve set up a campaign in CPV One and paused at the cost model dropdown: CPC, CPM, CPV, or CPA, you’re not alone. The CPC vs CPM choice in particular trips up a lot of people: it’s easy to pick CPC and move on without thinking about it. But if your traffic source is billing you per thousand impressions, that choice will make your cost data wrong.
This article explains the CPC vs CPM difference in practical terms, how each model affects what you see in your reports, and exactly how to set up each correctly in CPV One so your ROI figures reflect reality.
What is CPC?
CPC stands for Cost Per Click. You pay every time someone clicks your ad. The traffic source bills you per individual click, and the cost is fixed or variable per click, depending on the bidding system.
| Formula CPC = Total Ad Spend ÷ Number of Clicks Example: You spend $50 and get 500 clicks → CPC = $0.10 |
Traffic sources that often bill on CPC: Google Search Ads, Microsoft Ads, and most native ad platforms (Taboola, MGID, Outbrain) primarily use CPC, as do many push networks. For a full breakdown of which traffic sources work well for affiliate campaigns, this guide covers the main options.
With CPC, you only pay when someone interacts. That makes it easier to link spend to clicks and ultimately to conversions. The risk is that clicks don’t always mean intent; a high CTR with low CR can burn budget fast.
What is CPM?
CPM stands for Cost Per Mille. “Mille” is Latin for “thousand.” You pay for every 1,000 times your ad is shown, regardless of whether anyone clicks it.
| Formula CPM = (Total Ad Spend ÷ Total Impressions) × 1,000 Example: You spend $20 and get 10,000 impressions → CPM = $2.00 |
Traffic sources that often bill on CPM: display ad networks, programmatic DSPs, Meta Ads (which typically optimises on impressions depending on campaign objective and setup), and some pop/push networks.
CPM is predictable, you know the cost per 1,000 eyes on your ad. But the eCPM (Effective Cost Per Mille) is what tells you whether those impressions are generating any return. Without tracking, CPM spend is a black box.
CPC vs CPM at a glance
| CPC | CPM | |
| What you pay for | Each click on your ad | Every 1,000 impressions (ad views) |
| Billing unit | Per click | Per 1,000 impressions |
| Cost control | Spend scales with clicks received | Spend scales with impressions delivered |
| Best for | Performance campaigns, direct response | Awareness, broad reach, retargeting |
| Risk | Clicks without conversions | Impressions without clicks |
| Common sources | Google Search, native (Taboola, MGID), push | Display, DSPs, Meta (CPM mode), pop |
When does each model make sense?
Use CPC when:
- You need conversion data tied to spend. CPC maps spend directly to visits, which maps to conversions. It’s cleaner to optimize.
- Your offer requires targeted intent. Search or in-content native ads reach people already looking for something specific.
- You’re running performance campaigns. Affiliate offers, lead generation, direct sales, and CPC are the standard billing models here. See how direct link and landing page campaigns work in CPV Lab.
Use CPM when:
- You’re building brand awareness. Getting your ad in front of many people matters more than individual clicks.
- You’re retargeting. Showing your ad repeatedly to a warm audience often works better on CPM.
- Your traffic source only offers CPM billing. Some DSPs and display networks don’t offer CPC. You have to work with CPM and optimize CTR.
How to track CPC campaigns in CPV One
When you create a campaign in CPV One, the cost model you select tells the tracker how to calculate spend when your traffic source doesn’t send real cost data. Getting this right is the foundation of accurate ROI reporting.
Step 1: Set the cost model and cost field
In the Campaign Setup page, under Macros & Tokens, find the cost model dropdown. Select CPC.
What you enter in the Cost field depends on whether your traffic source sends real cost data:
- If your source sends cost via a Cost Token or API sync: leave the Cost field at 0. The token or API value takes priority and will be used in your reports. Entering a bid on top of it would cause double-counting.
- If your source does not send any cost data: enter your estimated bid as a fallback. CPV One will use it to calculate spend, EPC, and ROI until real data is available.
| Example: if you’re bidding $0.08 on a push network that doesn’t pass cost tokens, enter 0.08. If your network passes actual cost per click through a Cost Token, enter 0 here, the token value overrides it. |
Steps 2–4 below cover the three ways to get real cost data into CPV One.
Step 2: Use a Cost Token for exact per-click costs
Many traffic sources pass the actual CPC for each click in the click URL as a parameter. You can capture this in CPV One as a Cost Token.
On the Campaign Setup page, in the Macros & Tokens section, look for the Cost Token field. Add the parameter name your traffic source uses to pass the click cost, every network has its own token name for this, so check the traffic source tokens documentation to find the correct one for your network.
When a Cost Token is set, CPV One reads the actual CPC from each incoming click and uses that in your reports instead of the estimated bid. This is the most accurate method for CPC campaigns on networks that support it.
Step 3: Use API integration for automatic cost sync
For Google Ads, Meta/Facebook Ads, TikTok Ads, and Microsoft Ads, CPV One can sync actual spend directly from your ad account via API integration.
When you use API sync, set the Cost field to 0 in Campaign Setup. The API will supply real cost data, and the 0 tells CPV One not to apply any estimated bid on top. This gives you accurate spend, P/L, and ROI figures that match what you see in the traffic source dashboard.
Step 4: Upload exact costs via CSV (for sources without API or tokens)
Some networks don’t offer a cost token or API. For those, you can periodically download your spend report from the traffic source and upload it into CPV One.
Go to Stats → Update Exact CPC. Select the campaign, choose the date range, upload the CSV file, and select the matching report template. CPV One will update the CPC values per target or ad, and recalculate your historical stats.
You can also enter the total campaign cost directly on this page if you just want to correct the overall spend figure without a per-target breakdown.
Key metrics to watch in CPC campaigns
| Metric | What it tells you |
| CPC | What you actually paid per click; compare against your bid to see if costs are in line |
| CTR | Click-through rate on the ad: low CTR with CPC means weak creative or bad targeting |
| CR (Conversion Rate) | % of clicks that converted; the main optimization lever on CPC campaigns |
| EPC | Earnings per click: if EPC > CPC, the campaign is profitable |
| P/L | Total profit/loss: the bottom line metric, calculated from revenue minus cost |
How to track CPM campaigns in CPV One
CPM campaigns need more careful cost setup because of a practical gap: your traffic source counts and bills ad impressions (how many times the ad was displayed), but unless impression data is explicitly passed in or synced, CPV One may not receive the same impression count the traffic source used for billing.
This means cost accuracy for CPM campaigns depends on how you bring that spend data in, estimated bids alone will often produce figures that don’t match your actual spend.
Step 1: Set the cost model to CPM
In Campaign Setup → Macros & Tokens, select CPM as the cost model. If your traffic source sends actual spend via API sync, set the Cost field to 0. If there is no API or token available, enter your CPM bid as an estimate (e.g., 2.00 for a $2 CPM), but treat it as a fallback only, since it may not match your actual billed impressions.
| Important: an estimated CPM bid will often not match your actual billed spend, because the traffic source bills based on ad impressions it delivered, data that may differ from what CPV One sees. API sync or manual cost correction is the most reliable way to keep CPM spend accurate. |
Step 2: Correct the cost with API sync or manual upload
If your CPM traffic source has an API integration with CPV One (Meta, Google Display, TikTok), set the Cost field to 0 and let the API sync handle cost data. This is the most accurate path for CPM campaigns.
For networks without API support, go to Stats → Update Exact CPC, enter the total campaign cost, and click update. CPV One will recalculate your spend figures. Do this step regularly, daily or after each significant spend, to keep reports accurate.
Key metrics to watch in CPM campaigns
| Metric | What it tells you |
| eCPM (effective) | Revenue per 1,000 views (LP visits); use this to compare placements and see which ones earn |
| CTR | % of ad impressions that resulted in a click; critical for CPM since you pay per impression regardless. If your CTR is very low, your creative may need work even before considering the conversion rate. |
| CR | % of clicks that converted; CPM campaigns can have cheap clicks but poor intent |
| Cost per conversion | Total spend ÷ conversions; the real measure of CPM efficiency, not impressions |
| P/L | Only meaningful if cost data is accurate; prioritize API sync or manual updates |
CPC vs CPM in CPV One: the practical difference
The model you pick changes what CPV One does when it calculates your stats. Here’s the core difference:
| CPC | CPM | |
| Cost trigger | Each visitor/click | Every 1,000 impressions (approximated via LP views) |
| Best cost source | Cost Token (exact per click) or API sync | API sync or manual total cost upload |
| Estimated bid accuracy | Good, most CPC bids are fairly fixed | Lower, impression count differs from LP view count |
| Primary metric to optimize | EPC vs CPC (profit per click) | eCPM + CTR (revenue per 1,000 views + click rate) |
| ROI accuracy without API/tokens | Reasonable with estimated bid | Often understated, manual cost correction needed |
Common mistakes to avoid
Using the wrong cost model
If your traffic source bills CPM but you’ve set CPC in CPV One, every cost figure in your reports will be calculated incorrectly. Check your traffic source’s billing model before setting up the campaign, not after.
Leaving the estimated bid too high or too low
The estimated bid is a fallback for when no real cost data is coming in. If it’s set too high, your reports show inflated spend and your campaigns look unprofitable when they aren’t. Too low, and you’re optimizing against numbers that don’t reflect what you’re actually spending.
Not correcting CPM costs regularly
For CPM campaigns without API sync, the cost figures in CPV One drift from reality over time. Make it a habit to update actual spend at least every few days via Stats → Update Exact CPC. Without this, your P/L column is unreliable. If you want to see how cost accuracy affects real campaign decisions, this split testing case study walks through the exact process.
Comparing CPC and CPM campaigns directly without normalizing
If you have one CPC campaign and one CPM campaign running side by side, don’t compare them on raw cost. CPC campaigns show cost per visitor; CPM campaigns show estimated cost per visitor (which may be off). eCPM and cost-per-conversion are the metrics that make fair comparisons possible.
FAQ
What cost model should I use if my traffic source offers both CPC and CPM bidding?
Pick whichever billing mode you’re actually using for that campaign. If you’re running the campaign in CPC mode, select CPC in CPV One. If you switch to CPM bidding mid-campaign, create a new campaign with the CPM model, mixing models in a single campaign makes cost data unreliable.
Can I change the cost model after a campaign is already running?
You can edit the cost model on an existing campaign. Keep in mind that changing the model mid-run can introduce inconsistencies between data recorded under the old model and data recorded under the new one. For clean, comparable data across the full campaign lifecycle, creating a new campaign is generally the safer option.
What if my traffic source sends the cost token but the values look wrong?
Some networks encrypt or format their cost tokens in non-standard ways. Taboola, for example, requires a specific import process to capture real-time CPC values. Check the traffic source tokens documentation for your specific network and verify the token format is correct in your campaign setup.
Is CPM ever a better choice than CPC for affiliate campaigns?
Rarely for a direct response, but it does happen. Some pop traffic networks only offer CPM billing. Some retargeting setups on Meta work well on CPM bidding. In those cases, the answer isn’t to avoid CPM, it’s to track it carefully and measure cost-per-conversion rather than optimizing impressions.
Does CPV One have a dedicated CPM metric in reports?
CPV One reports eCPM, the effective cost per mille, which is a performance metric, not the same as your traffic source’s billing CPM. eCPM is calculated from your actual revenue and views (Revenue ÷ Views × 1,000), and shows what you’re earning per thousand views. Your billing CPM comes from what the traffic source charges. Both matter, but they measure different things.
| Track CPC and CPM campaigns accurately in one place CPV One supports all major cost models with real-time stats, API cost sync, and granular reporting by source, placement, and creative. Try CPV One free for 14 days → |

