Strategy
Why Meta Optimizes for Link Clicks Instead of Buyers (and How to Fix It)
If your sales happen on Amazon, Meta never sees them and optimises for cheap clickers. Why that happens and how sending real purchases back changes delivery.
By PixlBridge TeamUpdated 7 min read
Coming soon. Where this guide describes PixlBridge's Amazon tracking, it isn't open to customers yet; the rest works today.
Ask a brand that sells on Amazon how their Meta ads perform and you will usually hear about cost per click, click-through rate and "traffic". Ask how many of those clicks bought something and the answer is a shrug, or a spreadsheet that tries to line up Amazon's daily sales against Meta's daily spend. This is not a reporting problem. It is an optimisation problem: Meta's delivery system can only get better at finding people who do the thing you measure, and if the thing you measure is a click, that is what you will get more of.
How Meta's delivery system decides who sees your ad
Every time an ad could be shown, Meta runs an auction. Your bid is not just the money you are willing to pay; it is combined with the estimated action rate, Meta's prediction that this particular person will take the action your campaign is optimised for, and with an ad quality estimate. The optimisation event you choose at the ad set level therefore determines what the prediction model is trained on.
If the ad set is optimised for link clicks or landing page views, the model learns which people click. If it is optimised for Purchase, it learns which people buy, but only if it receives Purchase events it can connect back to the people who saw the ads. No events, no learning. Meta's documentation is explicit that ad sets need a steady flow of optimisation events (Meta cites roughly 50 per ad set per week to leave the learning phase) to stabilise delivery.
The Amazon gap
On your own website you would install the Meta Pixel and the Conversions API, fire a Purchase on the thank-you page, and the loop would close itself. On Amazon you cannot install anything. The shopper leaves Meta, lands on a page Amazon controls, buys, and as far as Meta is concerned the story ended at the click.
So brands do the only thing available: they run Traffic campaigns or Sales campaigns that effectively optimise for landing page views. It works in the sense that clicks arrive cheaply. It fails in the sense that the people who click cheapest are, very often, not the people who buy. Over weeks the model drifts towards audiences that are happy to tap and unhappy to pay: bargain hunters, accidental taps in the in-app browser, people in segments with high engagement and low purchase intent.
You can see the symptom in your own account: CPC goes down, CTR goes up, and Amazon sales stay flat or fall. The campaign is "performing" against the goal you gave it.
Why Amazon Attribution alone does not fix it
Amazon Attribution tells you which tagged clicks converted, typically within a day or two, per Amazon. That is valuable for reporting. But the data sits in Amazon's console; Meta never sees it, so delivery does not change. Attribution answers "what happened", not "who should see the next impression".
The fix: send real purchases back to Meta
The missing piece is a server that receives the purchase from Amazon (via Attribution reports) or from Shopify (via webhooks), works out which ad click it belongs to, and posts a Purchase event to your Meta dataset through the Conversions API with match keys that let Meta connect it to a person. Once those events flow, you can switch the ad set's optimisation goal to Purchase and let the model train on buyers.
Concretely, for Amazon this needs three things that a normal setup lacks:
- Capture the click before it reaches Amazon. A tracked redirect records the
fbclid, sets a first-party_fbp, and notes the IP and user agent, then forwards to the tagged Amazon URL. These become the event's match keys later. - Match reported orders to clicks. When Amazon Attribution reports orders for a tag, tie them to the link (and therefore the ad) that carried that tag.
- Send deduplicated events. One Amazon order becomes one Purchase with a deterministic event id, built so that a corrected report doesn't count the same order twice.
This is what PixlBridge will do for Amazon (coming soon) and, with richer match keys from the order itself, what it does for Shopify today. The setup guide walks through the configuration.
Restructuring campaigns around the new signal
1. Pick the Sales objective and the Purchase event
Create a new campaign with the Sales objective, conversion location Website, and select your dataset with Purchase as the conversion event. The destination URL is the tracked link. Meta will accept off-site conversions as long as the events arrive with action_source: website and reasonable match keys.
2. Expect a slower, better start
Purchases are rarer than clicks, and Amazon reports them with a delay, so the ad set will spend longer in the learning phase than a traffic campaign would. Resist the urge to edit it daily; every significant edit restarts learning. Consolidating ad sets so that each one can plausibly reach the weekly event threshold helps more than clever targeting.
3. Keep an intermediate event as a fallback
If purchase volume is too low for the learning phase, optimising for a more frequent event that is still correlated with buying, such as AddToCart from Amazon Attribution, is a reasonable stepping stone. Move to Purchase as volume grows.
4. Judge creatives on purchases, not clicks
With one tracked link per ad, you can see attributed Amazon sales and blended ROAS per creative (in Amazon Attribution, and in PixlBridge once Amazon is available). The creative with the best CTR is frequently not the one with the best ROAS. Reallocate budget on the latter.
5. Watch Event Match Quality
Off-site purchases are matched on click id, browser id, IP and user agent rather than email or phone, so their Event Match Quality will be lower than a checkout purchase from your own store. That is expected. The EMQ guide explains what is realistic and why capturing fbclid at the first hop is the lever that matters most.
6. Give the reporting delay room
Amazon reports purchases typically within a day or two, per Amazon, so Meta's in-platform results for a Purchase-optimised campaign will look weak for the first few days of any period and firm up later. Judge a week only after the following week has passed, and compare against the attributed number per creative (in PixlBridge, once Amazon is available). Setting a daily budget you can hold steady for two to three weeks is more useful than reacting to the first day's numbers.
What changes when the loop is closed (illustrative)
Numbers here are illustrative to show the direction of the effect, not measured results. A brand running Traffic campaigns to Amazon might see CPCs around a dollar with a purchase rate of one percent, so a hundred dollars of cost per attributed order. After switching to Purchase optimisation on the same creatives, CPC often rises because the model is no longer chasing the cheapest clicks, while the purchase rate rises faster. The metric that matters, cost per attributed Amazon order, falls. Meanwhile the Brand Referral Bonus credits the same tagged sales. Your account will differ; what does not differ is that a model trained on the right event is the prerequisite for any of it.
Summary
Meta optimises for link clicks when link clicks are all you give it. For brands selling on Amazon, the purchase has been invisible by default, so campaigns have been trained on the wrong behaviour for years. Capturing the click, matching the Amazon order, and sending a deduplicated Purchase through the Conversions API turns the delivery system loose on buyers instead. PixlBridge does this for Shopify stores today, with Amazon coming soon; see the pricing page for the free trial.