Skip to content

Wasted Ad Spend  ·  Overall signals

How can I evaluate the cost-effectiveness of my social media advertising?

Seven metrics evaluate social-media ad cost-effectiveness: CPM, CPC, CPA, ROAS through a 7-day-click 1-day-view window, frequency under 4 on cold audiences, conversion rate above 2 percent on landing pages, and CAPI deduplication rate over 95 percent. The CAPI rate is the one most founders skip. Without it, the ROAS number is fiction.

Why Meta cost-effectiveness reads differently than Google

Meta Ads Manager shows you a number. Shopify shows you a different number. TikTok Ads Manager shows you a third number that disagrees with both. None of them are lying. Each platform is measuring a different slice of the same purchase, with different windows, different attribution models, and different signal-loss adjustments stitched on after iOS 14.5 and the App Tracking Transparency rollout.

Reading Meta and TikTok cost-effectiveness correctly means looking at seven metrics in a fixed order. Each one answers a separate question. Stacked together, they describe whether the spend is working or burning.

CPM: the price of attention

Cost per thousand impressions is the cleanest signal of audience saturation and creative fatigue. Median Meta CPMs for ecommerce in the home and furniture vertical sit between $18 and $35. Anything above $50 on a cold prospecting audience almost always means the creative is losing the auction to fresher work in the same audience pool.

Diagnostic: pull CPM by ad set over a rolling 14-day window. If CPM rises more than 30 percent without a corresponding lift in ROAS, the audience is fatigued, the creative is fatigued, or the bid strategy is fighting itself. Refresh the creative before raising the budget.

CPC and click-to-conversion ratio

Cost per click tells you whether the hook is doing its job. The click-to-conversion ratio (clicks divided by purchases) tells you whether the landing page is.

A reasonable Meta CPC for a Shopify home brand sits between $0.80 and $2.20. TikTok runs cheaper on impressions but expensive on commercially qualified clicks, often $1.50 to $3.50 against a cold audience. On home and furniture accounts, the social-CPC ranges sit inside a tighter band than the cross-vertical median.

Click-to-conversion ratio should stay below 8 percent on a healthy account. The math: if 100 people click and fewer than 8 purchase, the offer-to-page match is broken, the page is slow, or the audience is being mis-targeted upstream. The platform will keep spending against the wrong signal because it has no way to know.

CPA against contribution margin

Cost per acquisition only matters in relation to contribution margin. A $48 CPA on a product with a $90 contribution margin is healthy. The same CPA on a $35 contribution margin is bleeding.

Build the calculation once and post it where the team can see it. The Wasted Spend Calculator handles the directional math if a clean number is not already documented.

ROAS, and which attribution window to read

This is where most founders trip. Meta defaults to 7-day-click plus 1-day-view (often written 7DC/1DV). That window is the closest thing to a fair read post-iOS 14, but it still gives Meta a generous claim on conversions that any honest model would attribute elsewhere.

The reliable practice:

  1. Read 7DC/1DV in Meta for directional campaign health.
  2. Read 7-day-click only when comparing against Shopify’s source-of-truth dashboard.
  3. Read 1-day-click only when stress-testing whether a campaign holds up under the strictest window.

If ROAS at 7DC/1DV looks strong but 1-day-click ROAS collapses below 1, the campaign is harvesting credit for purchases it did not cause. That gap is the loudest single signal of attribution drift.

Frequency on cold audiences

Frequency is impressions per unique user. On cold prospecting audiences, anything above 4 inside a 7-day window is the threshold where CPM rises, CTR falls, and CPA inflates in step. The audience has been served the same ad too many times.

Warm and retargeting audiences tolerate higher frequency (8 to 12 across 14 days), because the intent is already there and repetition closes the loop. Cold audiences punish it.

Pull the frequency column at the ad-set level weekly. When it crosses 4 on a cold ad set, rotate the creative before the bid logic starts compensating with higher CPMs.

The CAPI deduplication contract

This is the metric most founders never check, and the one that determines whether everything above is signal or noise.

Post-iOS 14.5, the browser pixel loses a meaningful share of conversion events. The Conversions API (CAPI) sends server-side events to fill the gap. The catch: every browser event needs to match a server event by event_id, or Meta double-counts the purchase. The deduplication rate inside Events Manager should sit above 95 percent. Anything below 90 percent and the reported ROAS is mathematically wrong.

The Tracking Stack reference walks through the dedup contract in full, including the event_id handshake, the fbp/fbc cookie passthrough, and the hashed-customer-info match keys that lift Meta’s Event Match Quality score above 7 (the score below which signal loss compounds quickly).

If the dedup rate is unknown, fix that before reading any other metric on this page. The order matters.

Quick-reference benchmark table

MetricMeta benchmark (home/furniture ecom)TikTok benchmarkThreshold for concern
CPM$18 to $35$8 to $22Above $40 sustained
CPC$0.80 to $2.20$1.50 to $3.50Above $3 on cold
Frequency on coldUnder 4 per weekUnder 5 per weekAbove 6
7-day-click ROAS3x to 5x2x to 4xBelow breakeven
CAPI dedup rateAbove 95 percentAbove 90 percentBelow 85 percent, ROAS unreadable

Why Meta-reported ROAS often disagrees with Shopify

A Meta-reported 4.2x ROAS against a Shopify-reported 1.9x ROAS is normal in a poorly tracked account and recoverable in a well-tracked one. Three contributors:

  • View-through credit. Meta claims purchases inside a 1-day-view window. Shopify does not. Strip the view-through column to compare like-for-like.
  • Last-click bias on Shopify side. Shopify’s default report credits the last touch, often an organic or direct session that Meta legitimately introduced. Neither view is fully honest. Both are useful.
  • CAPI dedup failure. If the same purchase fires once through the pixel and once through CAPI without matched event_ids, Meta counts it twice. The gap to Shopify widens. The fix lives in the tracking stack, not in the bid strategy.

The free Setup Audit at /audit is the same checklist I open before every paid engagement on a Meta cost-effectiveness rebuild; founders who want me to run it for them can book a thirty-minute call.

Read the rest of the wasted-ad-spend library for the campaign-side diagnostics. The metrics on this page are useless without the tracking foundation under them.

Want this diagnosed in your account?

Same diagnosis,
run on your account.

Thirty minutes on the phone. I look at your spend, your tracking, and your search-term reports before the call. You walk out with a clear list of what is leaking and what to fix first.

Book a Call