Plenty of Clicks, Almost No Sales

The campaign is running at $300 a day. CTR is a healthy 2.4%. The landing page is getting traffic, the creative is pulling engagement. But purchases are trickling in at a rate that makes the ROAS math look like a mistake.

Everything gets checked: targeting, creative, load speed, copy. Nothing obvious. The usual suspects get blamed - iOS privacy changes, an unusual auction period, a competitor surge. The account gets restructured. A new audience gets tested. Another creative gets launched.

The campaign objective still says “Traffic.”

Meta ran that campaign exactly as instructed. It went into the auction and found people with a history of clicking on links - not people with a history of buying things. People who click. That population is real, abundant, and cheap. The auction for “link-clickers” is less competitive than the auction for “buyers,” which is why the CPCs looked great in the dashboard. Cheap clicks, minimal revenue. The campaign did its job perfectly. The job was wrong.

What Meta’s Algorithm Is Actually Doing

Meta’s delivery system is a prediction engine. When you launch a campaign, you are not just selecting a category - you are telling the algorithm which behavioral signal to optimize toward. It then calibrates bids and delivery across billions of impression decisions to find people who are statistically likely to take that specific action.

Traffic objective: finds people who click links. Engagement objective: finds people who like, comment, and share. Conversions with a Purchase event: finds people who have demonstrated purchase behavior.

These are not the same population with different labels. They are genuinely different people with different behavioral profiles. The “link clicker” archetype is well-documented in advertising data - someone who engages with ads habitually but rarely converts. They inflate your click metrics, run up your spend, and never appear in your Shopify orders.

This is why changing targeting or creative on a Traffic campaign rarely fixes conversion performance. You are not targeting the wrong people inside a conversion-oriented system. You are running an entirely different system, one that is optimized for an outcome you do not actually want.

The Objective Hierarchy - And Where Revenue Lives

Meta organizes campaign objectives into three tiers. Understanding what each tier is actually buying in the auction is the foundation of everything else in account structure.

Awareness
Reach & Brand Awareness
Optimizes for impressions and recall. No purchase signal. Used for top-of-funnel reach where you are not expecting immediate action.
Consideration
Traffic, Engagement, Video Views, Leads
Each optimizes for its stated mid-funnel action. Traffic gets clicks. Leads gets form fills. Video Views gets watches. None are purchases.
Conversion
Conversions & Catalog Sales
Optimizes for downstream commercial actions - purchases, add to cart, signups. This is where direct-response and ecommerce campaigns belong.

The dividing line is not just what the campaign does - it is what it tells Meta to bid for. A Conversions campaign bids for purchase-intent behavior. A Traffic campaign bids for something much cheaper and much less useful if you sell products.

Most founders running ecommerce or direct response should be in the Conversion column. If you are selling something and your campaign objective is Traffic, you have a fundamental mismatch between what you want and what you are instructing Meta to find.

Three Specific Ways Founders Get This Wrong

Running Traffic instead of Conversions

The most common form. Traffic campaigns get used because they are intuitive - “I want people to visit my site” - without recognizing that Meta interprets “visit my site” as a fundamentally different optimization target than “buy from my site.”

The one legitimate exception: if your pixel lacks sufficient purchase event volume, you do not have enough signal for a Conversions campaign to train effectively. The threshold is roughly 50 conversion events per ad set per week - the same threshold that governs the learning phase. In that case, Traffic with Landing Page View (not just Link Clicks - always select Landing Page View when it is available) can bridge the gap while you build volume. This is a temporary measure, not a strategy. The goal is to graduate to Conversions.

Optimizing for the wrong conversion event

You can run a Conversions campaign and still mis-specify the signal. If you optimize for Add to Cart instead of Purchase because it generates more weekly volume, you are training Meta to find people who add items to carts - a different behavioral profile than someone who completes a purchase. Add to Cart optimized campaigns consistently produce lower purchase rates than Purchase-optimized campaigns, because the algorithm is targeting people who browse with intent rather than people who buy.

The correct approach: optimize for the furthest-downstream event that still generates roughly 50 weekly conversions per ad set. Work up the funnel only if you genuinely lack volume. Purchase › Initiate Checkout › Add to Cart › View Content. Do not treat Add to Cart as a permanent optimization strategy because the reported CPAs look more favorable - lower CPA there reflects a lower bar, not better performance.

Overcounting with 7-day view attribution

Meta’s default attribution window is 7-day click and 1-day view. The 1-day view component credits Meta for conversions where someone saw an ad without clicking, then converted within 24 hours. For accounts running high impression volume against warm audiences, this inflates reported conversions significantly and pollutes the optimization signal.

For most direct-response accounts, 7-day click only is the cleaner setting. It reduces reported conversions in the dashboard - which looks bad - but improves the quality of the behavioral signal you are training the algorithm on. It also makes cross-channel comparison possible. If you are trying to reconcile Meta performance with other platforms, view-through attribution creates a double-counting problem that makes attribution across channels mathematically incoherent.

How the Math Inverts on “Cheap” Clicks

Traffic campaigns reliably produce lower CPCs than Conversions campaigns. The gap is real and it creates a misleading efficiency narrative - the account looks like it is performing well because cost-per-click is low.

The cost per click is not the cost that matters. The cost per purchase is.

Campaign Type
CPC
Purchase CVR
Traffic (link clickers)
$0.60
0.4%
Conversions (buyers)
$2.00
2.5%
Cost per purchase
$150
$80

The “expensive” campaign produces customers at nearly half the cost. The math inverts because the populations are different. You are paying less per person on Traffic campaigns because those people are less likely to buy anything.

This interaction also runs into bid strategy. Your Meta bid strategy sits on top of the optimization signal that your campaign objective creates. Lowest Cost on a Conversions campaign is bidding into a fundamentally different auction than Lowest Cost on a Traffic campaign. The objective choice is the foundation everything else builds on - and a wrong foundation means the bid strategy, audience, and creative are all working in service of the wrong goal.

Auditing Your Campaigns Right Now

Open Ads Manager. For each active campaign, run through this list.

Audit checklist
  • Click into Campaign settings and note the objective. Any Traffic or Engagement campaign that is supposed to be driving purchases is a problem.
  • For Conversions campaigns, click into each Ad Set and check the optimization event under “Optimization and Delivery.” If you are seeing Add to Cart or View Content when you have purchase volume, move it down the funnel.
  • Check the attribution window in the same Ad Set settings panel. If it includes 1-day view and you are running broad prospecting to large audiences, that view-through component is inflating your reported numbers.
  • Cross-reference reported conversions in Ads Manager against actual orders in your store for the same period. A large gap suggests view-through overcounting or pixel misfiring.
  • Check whether any Campaign is set to “Advantage Campaign Budget” (CBO) while the underlying Ad Sets have conflicting objectives - this is less common but worth confirming the structure is coherent.

Before rebuilding anything around Conversions campaigns, confirm your pixel event signal is solid. A Conversions campaign trained on a broken or low-quality pixel is optimizing toward noise. Check your Meta pixel event match quality first - Event Match Quality below 7 or misfiring events will undermine the objective fix before it starts.

When Traffic and Engagement Campaigns Are Legitimate

A blanket rule against non-conversion objectives misses real use cases. The question is not whether to use them - it is whether you have a defensible reason for each one.

Traffic with Landing Page View is appropriate for content amplification - pushing people to a blog post, a resource, or a tool where the goal is consumption rather than immediate purchase. It is also the correct temporary proxy when building pixel purchase event volume on a new product or account. Use it intentionally, not by default.

Engagement campaigns serve a real purpose for social proof seeding. An ad with zero likes and comments reads as unvetted to cold audiences. If a creative has strong conversion potential but no social signals yet, a brief Engagement campaign can prime the post before switching the objective. Cold audiences respond to social proof as a trust proxy - the same creative with 3,000 comments performs differently than the same creative with none. This is a short-term technique, not a core strategy.

Video Views campaigns make sense for content designed to warm an audience before a retargeting play. Someone who watched 75% of a two-minute brand video is a qualitatively different prospect than someone who has never encountered the brand. Building that warm segment via Video Views and then hitting it with a Conversions campaign is a legitimate retargeting funnel input - as long as the Video Views campaign is explicitly serving that purpose, not masquerading as a conversion driver.

Every campaign should have an explicit, defensible reason for its objective. “I wasn’t sure what to pick” and “the default was Traffic” are not reasons.

Making the Switch Without Losing Ground

Do not change the objective on a live campaign. Changing the objective on a running campaign disrupts its delivery history and effectively resets the learning phase - you lose the optimization data the campaign has accumulated. The correct approach is a clean migration:

  1. Duplicate the campaign. Keep the original running while you configure the duplicate.
  2. Change the objective on the duplicate to Conversions. Set the correct optimization event - Purchase if you have the event volume; the next-deepest event if you do not.
  3. Set a conservative starting budget. Let the Conversions campaign enter and exit the learning phase before scaling. It needs to generate those 50 weekly optimization events to stabilize delivery. Scaling too fast before learning exits will extend the unstable period and inflate costs.
  4. Run both campaigns in parallel for one to two weeks. Compare cost per purchase, not cost per click.
  5. Pause the original once the Conversions campaign shows stable delivery. Do not delete it - pause it and note the date, in case you need to reference the historical data.

One note if you are running Advantage+ Shopping campaigns alongside manual campaigns: ASC always uses a Conversions objective by default. It is one of the structural choices Meta handles automatically in that format. The objective mismatch problem tends to concentrate in manual campaigns where founders made the selection themselves - often during initial account setup, when the implications were not yet clear.

Fix the objective, fix the signal, and the rest of your account structure actually has a chance to work. The targeting decisions and the creative testing only matter if the algorithm is being trained toward the right outcome in the first place. Everything upstream of the campaign objective is irrelevant if the objective is wrong.


Frequently Asked Questions

What happens if I run a Traffic campaign instead of a Conversions campaign on Meta?
Meta’s algorithm optimizes toward whatever signal you specify. A Traffic campaign finds people with a history of clicking links - not people with a history of buying things. These are genuinely different behavioral profiles. You will likely see decent CTR and low CPCs, but poor conversion rates and high cost per purchase, because Meta is delivering your ads to link-clickers rather than buyers. For any campaign where the goal is purchases, leads, or other downstream conversions, the Conversions objective is almost always the right choice.
How do I choose the right campaign objective on Meta?
Match the objective to the action you actually want people to take. If you want purchases, use Conversions with a Purchase optimization event. If you want leads via a form, use Lead Generation. The only time Traffic makes sense for an ecommerce or direct-response brand is when your pixel lacks sufficient purchase event volume to support a Conversions campaign - in that case, Traffic with Landing Page View is a temporary proxy while you build pixel signal. Check that your pixel event match quality is solid before expecting a Conversions campaign to train correctly.
Should I optimize for Add to Cart or Purchase on Meta?
Optimize for the furthest-downstream event that still generates roughly 50 conversion events per ad set per week. If you can hit 50+ weekly purchases per ad set, optimize for Purchase. If not, work up the funnel: Initiate Checkout, then Add to Cart, then View Content. Do not use Add to Cart as a permanent strategy just because it produces cheaper reported CPAs - the lower cost reflects a lower-intent action. The algorithm will find people who browse and add items but not complete purchases, which costs you more in the long run.
Can I change my Meta campaign objective without starting a new campaign?
You cannot change the objective on a live campaign without disrupting its learning and delivery history - so the right approach is to duplicate the campaign, change the objective on the duplicate, and run both in parallel. Let the new Conversions campaign run for one to two weeks. Once it exits the learning phase and shows stable delivery, pause the original. This preserves the delivery history from the original while the new campaign establishes its own optimization baseline.
Why is my Meta Conversions campaign spending slowly compared to a Traffic campaign?
Conversions campaigns bid for a rarer behavioral signal than Traffic campaigns - purchase-intent behavior is less common than link-clicking, so the auction is more competitive and delivery can be slower, especially early in the learning phase. This is expected. The campaign needs roughly 50 weekly optimization events per ad set to exit learning and stabilize. If it is spending too slowly, check that your budget is proportionate to your cost per conversion, that your pixel is firing correctly on the optimization event, and that your audience size gives Meta enough inventory to find buyers efficiently.

Running campaigns that look healthy but don’t convert?

We audit Meta accounts, fix the structural issues, and build the campaigns that actually drive revenue.

Talk to Noble Growth →