Your Google Ads bidding optimises for whatever you marked primary. Check what that is.
Almost every Google Ads account I open has the same problem somewhere in Goals, and nobody looks there because nothing is visibly broken. Campaigns spend, conversions come in, ROAS looks fine. The bidding is just learning from the wrong numbers.
It comes down to one setting per conversion action: primary or secondary.
What primary actually means.
A primary action counts in the Conversions column, as long as its goal is one your campaigns bid on (more on that below). A secondary action only shows up in All conversions. That sounds like a reporting detail, but it is not, because Smart Bidding (Maximise conversions, Maximise conversion value, target CPA, target ROAS) optimises for the Conversions column and nothing else. Whatever you mark primary is what you are telling Google to buy more of.
Secondary actions are still useful. You can see them, segment by them and use them in reports. The algorithm just ignores them when it decides what a click is worth. The one exception is a custom goal: it can bundle secondary actions, and a campaign bidding on that goal will use them.
Three things I find in the primary column.
1. An add-to-cart or begin-checkout action. Usually added during setup "so we can see it", then left on primary. Carts are cheap and plentiful, so the bidding happily finds people who add things to carts and never pay. If the action has a value, it also inflates your conversion value and your reported ROAS.
2. The same purchase twice. A Google Ads tag purchase and a GA4-imported purchase, both primary. Every sale now counts double, the reported ROAS is twice what the bank account says, and target ROAS campaigns underbid or overbid depending on how you set the target.
3. A soft action with no value next to purchases that have one. Newsletter signups, contact forms, PDF downloads. On a value-based strategy they add conversions without value and muddy the signal. On a count-based strategy they are worth the same as a sale.
How to check it in five minutes.
Go to Goals, then Conversions, then Summary. For every action, look at the Optimisation column: it says Primary or Secondary. Then ask one question per primary action: if Google found me ten more of these tomorrow, would I be happy to pay for them? If the answer is no, it should not be primary.
Then check the goals themselves. An action can be primary and still be excluded from bidding if its goal is not included in the account-default goals or the campaign's own goal settings. Campaigns set to campaign-specific goals ignore the account defaults entirely, so check those one by one. This is the place where old setups hide: a campaign from two years ago still bidding on a goal nobody remembers.
Finally, compare purchases in Google Ads to your shop backend for the same week. Use the "Conversions (by conv. time)" column for this: the normal Conversions column reports on the click date, so it will never line up with the orders a shop recorded that week. If Google Ads says roughly twice what the shop says, you have the double-purchase problem. If it says far more than orders and the extra comes from a non-purchase action, you have the cart problem.
What to change, and what happens next.
For an ecommerce account the default I use is simple: one purchase action primary, with a value, from one source. Everything else secondary. Lead generation works the same way with the qualified lead or the closed deal as the single primary action, ideally fed back through offline conversion imports.
Expect the numbers to drop the day you change it. Conversions fall, reported ROAS falls, and someone will ask what broke. Nothing broke; the old number was inflated and this is the real one. Smart Bidding goes through a short learning period and then starts optimising for sales instead of carts. Change it in a quiet week, write down the date, and compare against the shop's revenue rather than against last month's Google Ads report.
If you want a second opinion on your own account, this is one of the first things I check in an audit, and it is part of what the coaching covers.