How to read CPC, CPM, CTR and ROAS when your ads are not bringing in sales
What CPC, CPM, CTR, conversion rate and ROAS mean and how to calculate them, how to work out break-even ROAS from your margin, and the order of checks when ads get clicks but no sales.

Table of Contents
If your ads get plenty of clicks but sales stay flat, trace the numbers from impression to transaction. CPM and CPC show the price you pay, CTR shows whether the message draws interest, the conversion rate shows whether the page works, and ROAS shows whether the money comes back. The stage where the numbers drop is where the problem lies.
Before checking anything, make sure conversion tracking works. A sale that goes unrecorded looks exactly like an ad that failed, and you could end up fixing a part that is not broken. The steps for setting up tracking are in our guide to preparing before you run ads.
Ad metrics and their formulas
| Metric | What it means | Formula |
|---|---|---|
| CPC | Cost per click | Cost ÷ clicks |
| CPM | Cost per 1,000 impressions | Cost ÷ impressions × 1,000 |
| CTR | Percentage of impressions that get a click | Clicks ÷ impressions |
| Conversion rate | Percentage of clicks that end in a conversion | Conversions ÷ clicks |
| Cost per conversion | Cost of one conversion | Cost ÷ conversions |
| ROAS | Sales value per IDR 1 of ad spend | Conversion value ÷ cost |
Keep in mind that ad reports are not real time. Google Ads updates clicks, impressions and cost every hour, while some conversion data arrives later. Do not judge a campaign on same-day data.
PPC describes how you are billed
PPC, or pay per click, means the advertiser pays when the ad is clicked. The term describes a cost model and says nothing about how well the ad performs.
The assumption that every online ad is billed only per click is wrong. On Meta, the billing event determines what you pay for, and most optimization goals only allow billing per impression. An ad nobody clicks can still use up your budget. Check this setting in your ad set.
CPC: what one click costs
CPC = Total cost ÷ Total clicks
Hypothetical example:
IDR 1,000,000 ÷ 2,000 clicks = IDR 500 per clickGoogle Ads distinguishes two figures. Max CPC is the limit you set, while actual CPC is the amount you are charged, and it is often lower. You pay only what is needed to clear the Ad Rank threshold and beat the advertiser directly below you. The exception is bid adjustments or automated bidding strategies, which can push the cost above the max CPC you set.
A rising CPC is often blamed on a falling Quality Score, although the link is not direct. Google calls Quality Score a diagnostic tool on a scale of 1 to 10 and not an input to the auction. Its three components (expected CTR, ad relevance and landing page experience) are still useful for finding the weak part.
Do not judge CPC on its own. A rising CPC can still be acceptable if ROAS holds. What needs action is a CPC that rises while ROAS falls.
CPM: what a thousand impressions cost
CPM = (Total cost ÷ Total impressions) × 1,000
Hypothetical example:
(IDR 2,000,000 ÷ 400,000) × 1,000 = IDR 5,000In Google Ads, CPM is a way of bidding on the Display Network, and its viewable CPM version charges only for ad impressions that can be seen. On Meta, CPM is a reporting metric: the average cost per 1,000 impressions.
CPM is useful for tracking what it costs to reach people. A low CPM does not by itself mean the campaign is working, because cheap impressions that bring no clicks or sales still make no money.
CTR: how often the ad is clicked
CTR = Clicks ÷ Impressions × 100
Hypothetical example:
750 ÷ 50,000 × 100 = 1.5 percentNo single CTR figure is good for every ad. Google writes that a good CTR depends on what you are advertising and the network where it runs. Compare your CTR with that of your own earlier ads.
On Meta, make sure you are looking at the right column. CTR (all) also counts clicks to the profile and reactions to the post. CTR (link click-through rate) counts only clicks on the link. In the example above, if clicks of all types add up to 1,900, CTR (all) shows 3.8 percent while link CTR stays at 1.5 percent. For ads that lead to a website, use link CTR.
Conversion rate: the number that connects clicks and sales
This metric is often overlooked, yet it speaks most directly to the problem of many clicks and no sales.
Conversion rate = Conversions ÷ Clicks × 100
Cost per conversion = Total cost ÷ Conversions
Hypothetical example, continuing the CPC example:
20 ÷ 2,000 × 100 = 1 percent
IDR 1,000,000 ÷ 20 = IDR 50,000 per conversionThese formulas follow the Google Ads definition. Standard Google Ads reports count conversions by the time of the click, not the time of the purchase, so the figure for a given day can still grow.
ROAS: sales value per IDR 1 of ad spend
ROAS = Conversion value ÷ Ad cost
Hypothetical example:
IDR 40,000,000 ÷ IDR 10,000,000 = 4.0 (or 400 percent)A ROAS of 4.0 means every IDR 1 spent on ads brings in IDR 4 of sales value. Google Ads expresses target ROAS as a percentage, so the same figure shows as 400 percent.
ROAS counts revenue, not profit. The cost of goods has not been subtracted. So work out your break-even ROAS from your margin: 1 divided by your gross margin.

In the example above, a business with a 25 percent gross margin makes IDR 10,000,000 in gross profit from IDR 40,000,000 in sales. The IDR 10,000,000 ad spend takes all of it. At a ROAS of 4.0, which looks good, the business only breaks even, before operating costs. A 20 percent margin needs a ROAS of 5.0, a 40 percent margin needs 2.5, and a 50 percent margin needs 2.0.
To see profit or loss, use Google's version of the ROI formula: revenue minus total cost, divided by total cost, where cost includes both the cost of goods and the ads.
Attribution changes the ROAS figure
ROAS depends on the rule that gives an ad credit for a sale. Google Ads uses a data-driven model by default and offers last click as an alternative. Google Ads also reports only conversions that follow interactions with its own ads, while Meta uses its own attribution settings.
As a result, two platforms can both claim the same sale. Add up the conversions from every platform, then compare the total with the sales in your financial records. The gap shows how far the platform reports can be trusted.
Metric patterns and their likely causes
One metric is rarely enough to explain a problem. The four patterns below give you a place to start checking. They are hypotheses to test in your own account, because the same pattern can have different causes.
| Pattern | Likely cause | What to check |
|---|---|---|
| Low CPM, low CTR | Impressions are cheap, but the ad does not draw interest | Ad creative and targeting |
| High CTR, high CPC | The message draws interest, but auction competition is stiff | Keywords and ad relevance |
| High CTR, low ROAS | Clicks come in, but people do not buy | Page, price, stock, tracking |
| High ROAS, low volume | Efficient, but reach is limited | Audience, new creative, other channels |
The order of checks when clicks are high but sales stay flat
Start with what is cheapest to check. None of the five checks below needs extra ad budget.

- Test the tracking. Make one purchase or submit one form, then confirm it is recorded as a conversion.
- Compare the reports with your sales records. A large gap means the problem is in the measurement.
- Check the quality of the clicks. In Google Ads, read the search terms that triggered your ads. On Meta, use link CTR.
- Calculate the conversion rate. If the clicks are relevant but the conversion rate is low, check the landing page on a phone with our guide to diagnosing a slow website on mobile.
- Check the offer. Price, stock, shipping costs and an ad message that does not match the page can all stop a buyer.
A/B testing: comparing two versions with data
A/B testing compares two versions of an ad or a page over the same period. Part of the audience sees version A and the rest sees version B, then the results are measured. Here are two hypothetical examples.
| What is tested | Version A | Version B | Measure |
|---|---|---|---|
| Ad headline | 30 percent off today | Free shipping and a 7-day warranty | Cost per conversion |
| Form | 6 fields | 3 fields | Number and quality of leads |
The most important rule is to test one variable at a time. If the headline and the image change together, you will not know which one moved the result.
The second rule is to allow enough time. Meta recommends at least 7 days, and another of its pages mentions 2 weeks to 30 days for the most reliable results. Google recommends running Shopping and Performance Max experiments for four to six weeks, and allowing 7 to 14 days for custom experiments to stabilize.
Check the confidence threshold in use as well. Meta declares a winner at 65 percent confidence and treats a result above 75 percent as very clear. Google Ads uses a default of 80 percent that you can change. The figures differ because each platform calculates them in its own way. On a small budget, tests often end without a clear winner. If that happens, run the test for longer or test a bigger difference.
If your measurement and campaigns need rebuilding from scratch, we do that as part of our digital marketing service.
Author
Dzaki Fauzaan










