Primary vs secondary conversions: Add to cart or a $0 sale set as Primary in Google Ads

By Updated

Short answer

If Add to cart, Begin checkout, Page view or a purchase with no value is a Primary conversion, Smart Bidding chases those cheap actions instead of sales. Set every step before the sale to Secondary, make sure your purchase action sends the real order value, and reset your targets after.

What this means

Each thing Google Ads counts, like a sale or a cart, is called a conversion action. Google Ads splits these into Primary and Secondary. Primary actions fill the Conversions column and steer bidding when their goal is used for bidding. Secondary actions only appear in All conversions, for you to watch.

This finding covers 2 setups that point bidding at the wrong thing:

  • A step before the sale is Primary. Add to cart, Begin checkout, Page view or View item counts as a conversion. On a store account, a contact form, a sign-up or a phone call set as Primary gets flagged too. Nobody has paid yet.
  • A purchase with no value is Primary. The purchase action records sales but reports $0 for each one, usually because the tag (the tracking code on your checkout page) doesn't pass the order total.

Google's own setup for Shopify stores avoids the first one. When you link Google Ads through the Google & YouTube app, it creates a Purchase action as Primary and every other step as Secondary. The problem tends to appear later, when someone adds a goal or flips a setting.

Why it costs you money

Smart Bidding, Google's automatic bidding that sets each bid for you, gets more of whatever you tell it to count. Carts are cheaper and far more common than orders, so a strategy told to find carts will happily find people who add to cart and leave. Your Conversions column fills up and your cost per conversion looks great, while store sales barely change.

$0 purchases cause a quieter problem. Target ROAS and Maximize conversion value are the bid strategies that aim for the most sales value from your budget. A sale worth $0 teaches them nothing about which clicks bring big orders. Return on ad spend in your reports also comes out too low, so you might cut campaigns that are working. To see how far off the number is, put your real store sales and ad spend into the ROAS calculator and set the result next to what Google Ads shows.

To see how much of your bidding signal is off, look at the last 30 days. Segment (split) the Campaigns table by Conversion action and compare how many Primary conversions came from the purchase action and how many from earlier steps. The share that isn't a purchase is the share of your bidding aimed at the wrong target. Then look at the spend in the campaigns using those goals.

Say the last 30 days show 200 Primary conversions: 40 purchases and 160 add to carts. 160 of 200 is 80%, so 4 in 5 of the signals your bidding learns from are carts. If purchases show 0, the problem is bigger: see conversion tracking stopped.

How to check your account in 2 minutes

  1. Open Goals, then Summary.
  2. Look at each goal listed for bidding. Open any goal that isn't Purchases, such as Add to cart, Begin checkout or Page view.
  3. Check whether its actions say Primary. If they do, and the goal is an account default, every campaign without its own goals uses it.
  4. Open your purchase action and look at the value setting. Use the same value for each conversion with a value of $0 or the default value of 1 means you aren't tracking real order totals.
  5. On Campaigns, add the Conversions and Conv. value columns and segment by Conversion action. Purchases with conversions but no value confirm it.

When it is not a problem

  • The extra steps are Secondary. Tracking carts and checkouts as Secondary is useful. You see the funnel, and bidding ignores it.
  • The goal isn't used for bidding. In the account-default settings, a goal can stay in your account with Make this an account-default goal turned off. Google's own help example does exactly this with an Add to cart goal while Purchases drives bidding. Google's help page now adds that Primary actions in a goal not used for bidding may still be used to enhance predictions. So setting the action to Secondary is the cleaner fix.
  • Every campaign uses its own goals. If each campaign is set to campaign-specific goals with only Purchases, an account-default cart goal doesn't steer its bids. PerfoAds reads only the account-default goals, so it may still flag the action. Check your campaign settings before you change anything.
  • Only a handful of $0 sales. PerfoAds flags a $0-value purchase action once it has recorded at least 5 conversions over the audit period. A couple of test orders or free samples won't trigger it.
  • The step is filed under Other. PerfoAds skips actions in the Other category, because some stores file their real purchase there. Google's Shopify setup puts Add payment info under Other, so check that one by hand.
  • Your business has no online checkout. If customers buy by phone or in store, a lead or a store action is the right goal. This finding is about stores that sell online.

Watch for custom goals. A custom goal is a set of actions you pick by hand for chosen campaigns. Actions inside one are used for bidding whether they're marked Primary or Secondary, so a cart action there will still steer bids. PerfoAds reads only the Primary setting, so it won't flag a Secondary cart action inside a custom goal. Check your custom goals by hand.

How to fix it

  1. Set early steps to Secondary. In Summary under Goals, find the goal, click Edit goal, and in Conversion action optimization choose Secondary (observe only) for Add to cart, Begin checkout, Page view and similar actions. Click Save.
  2. Or drop the goal from the account default. Click Edit goal on the goal, open the Account default section, and turn off Make this an account-default goal. Save. Step 1 is safer, because of the predictions note above.
  3. Check campaign-specific goals. Any campaign set to its own goals ignores the account default. Open those campaigns' settings and make sure only Purchases is selected.
  4. Fix the purchase value. In the purchase action's settings, choose Use different values for each conversion and enter a default value as a fallback. Then make sure your tag passes the real order total. If an app set up your tracking, fix the value there so a later app update doesn't overwrite your edit.
  5. Place a test order. Confirm a real value shows up against the purchase action within a day.
  6. Reset targets and wait. Changing the goals bidding uses puts the bid strategy into Learning, a status Google shows while bidding adjusts. It lasts up to 7 days. Your conversion count will fall, and your cost per conversion will rise. Set Target CPA (the cost per sale you aim for) or Target ROAS (the sales value you aim for per $1 spent) from the new purchase-only numbers. Then judge results after 2 weeks or 2 full click-to-sale cycles, whichever is longer.

Check it with a query

This lists active conversion actions with their category, whether they're Primary, and their default value. Run it anywhere that takes Google Ads queries (Google calls the language GAQL), such as the Google Ads API or a script. The fields are listed in Google's API reference.

SELECT
  conversion_action.name,
  conversion_action.category,
  conversion_action.primary_for_goal,
  conversion_action.value_settings.default_value,
  conversion_action.value_settings.always_use_default_value
FROM conversion_action
WHERE conversion_action.status = 'ENABLED'

Rows where the category is ADD_TO_CART, BEGIN_CHECKOUT or PAGE_VIEW and primary_for_goal is true are the early steps to switch. A PURCHASE row where always_use_default_value is true and the default value is 0 or 1 isn't sending real order totals. PerfoAds flags only the $0 case, so check a value of 1 here.

Sources

PerfoAds runs this check on your account

Connect your Google Ads account and PerfoAds checks for this problem, along with the rest of its checks, using your own data.

Check my account