Closed to new clients until September.A few spots may open if capacity frees up.Serious? Book a call

Behind the Agency12 min read

Shopify PPC Mistakes: Five Setup Errors Worth Checking Today

Five Shopify PPC setup errors that waste budget: double-counted sales, signups counted as sales, a default feed, one campaign doing every job, nothing excluded.

  • 12,000+PMax campaigns audited
  • 200+Live ecom clients
  • €200M+Tracked sales

In most Shopify accounts the campaigns are not the broken part. The settings underneath them are.

What Are the Most Common Shopify PPC Mistakes?

Work them in order. Tracking first. Every other call you make uses the numbers tracking gives you.

Mistake 1: Tracking That Counts One Sale Twice

What it looks like. In Google Ads, open Goals > Conversions > Summary and read the Primary / Secondary column. You want one purchase action in Primary. More than one purchase-shaped action up there is the bug. The usual suspects: the Shopify Google & YouTube action, a conversion tag somebody pasted into the theme, and a GA4 purchase import. One tag on two pages does the same damage. Fire it on the upsell page and again on the thank-you page and one order lands as two sales.

Leave the counting option on Every for a purchase action. That is what Google recommends for sales, and it is not your duplicate problem. Every means a shopper who comes back and buys again counts twice, which is correct. A two-item order still counts as one sale. The real guard against a duplicate is a unique order number on the conversion itself, which Google calls a transaction ID. Send one and Google throws the second copy of the same sale away.

What it costs you. Smart Bidding only optimizes toward what you report to it. Report sales that never happened and it is aiming at a number that is not real. The ROAS column still looks healthy, because the invented revenue sits in it too. Your bank balance says otherwise.

The fix. One purchase action in Primary. Every other purchase-shaped action drops to Secondary, where you can still read it and Google will not bid on it. Then repair the source instead of the symptom. A browser pixel can fire twice, or go missing entirely. So we send the sale a different way, straight from Shopify's order webhook, through our Shopify app. Server-side. No theme edits.

The order still gets reported when an ad blocker strips the browser tag. Same when Safari cuts the cookie short, or when checkout sends the shopper off your domain. It does not get you around a consent banner, and nothing should. If a shopper declines cookies, no cookie ties that sale back to the ad click, so the order reports without attribution. Anyone selling server-side tracking as a consent workaround is selling you a problem. The full teardown lives in the pixel double-counting post.

Mistake 2: Every Email Signup Counted as a Sale

What it looks like. Same table, different rows. Add to cart, Begin checkout, Page view, Subscribe, Contact, all marked Primary. It usually happens in a single click during setup, when somebody imports GA4 events and ticks every box on the list.

What it costs you. Smart Bidding aims at whatever you put in Primary. A popup signup is much easier to get than an order, so on Maximize conversions that is what it goes and gets. Spend climbs, conversion counts climb, orders sit still. When those actions carry a conversion value too, your Target ROAS is doing arithmetic on money nobody paid you.

The fix. Click the action, hit Edit settings, switch it to Secondary. Purchase stays Primary and stays alone up there. The micro conversions keep reporting in their own columns, so you lose no visibility, only the bad bidding signal. Setting tracking up from scratch instead? The Shopify conversion tracking guide covers the whole install.

Mistake 3: A Product Feed Left on Shopify Defaults

What it looks like. Open Merchant Center, go to Products > All products, and read your titles. If they match your product page headings word for word, nobody ever wrote them for search. Check the same products for brand, GTIN, product type, and a sale price, then look at what sits under Needs attention.

What it costs you. Shopping campaigns have no keywords. Google matches a search against your product data instead. It reads the whole record: title, description, product type, brand, category, price. The title is the part most stores never rewrite. Performance Max reads that same feed. It also uses the controls you set on the campaign, like search themes, negative keywords and brand exclusions. So a title that reads "The Aurora" gives Google almost no real words to work with. "Aurora Linen Duvet Cover Set King Sage Green" hands it the product, the material, the size and the color.

The fix. Stop shipping the raw Shopify export. Run a feed app so you control titles and attributes. Then rewrite each title front-loaded with words a stranger would type: product, main attribute, size, color. Our step-by-step build is here: Simprosys feed setup for Shopify. More real words in the record means more searches your product can actually match.

Mistake 4: One Campaign Asked to Do Every Job

What it looks like. One Performance Max campaign, one asset group, the whole catalog dropped inside it. One budget, one target, brand searches and cold demand sharing the same box.

What it costs you. Your hero product and your dead stock share a bid. The campaign spends where converting is easiest. That is usually people already searching your brand, plus the products that always sold anyway. A new product can still pick up spend in there, but it is bidding against your best seller for the same budget. And you are left with one lever for every job, so the day something slips you have nothing to steer with.

The fix. Split by job, as far as your data lets you. Brand is the usual first split, because brand clicks are cheap and they flatter whatever campaign they sit inside. But a separate brand Search campaign does not stop Performance Max showing on brand searches by itself. You switch brand exclusions on inside the PMax campaign too. Otherwise the two keep bidding on the same people.

Then group the catalog by role. Proven sellers. Testers. Clearance. You tag each product with a custom label. That is a spare field in your feed. You type your own word in it, like winner or clearance, and then you can group by that word inside the campaign. In Performance Max you pick the label under the asset group's listing group.

Every split also cuts the account's conversion data into smaller piles, and Smart Bidding learns slower on small piles. So only split off a group once it has enough orders to stand on its own. The rest stay together until they earn it. A store doing a few orders a week is better off with one campaign than four starving ones.

One budget doing every job is not a strategy. It is a slot machine with a monthly limit.

Mistake 5: Nothing Excluded, so Google Buys Wide

What it looks like. Go to Tools > Shared library > Exclusion lists. An empty list means nobody has ever told Google what you do not sell. Then check Admin > Account settings > Negative keywords, which is a different screen and usually just as empty. Now open Insights and reports > Search terms and sort by cost. Pick a window with enough clicks in it to read properly. On a small account that is a few months, on a big one a couple of weeks. You are hunting for words like free, DIY, how to, second hand, repair and jobs, plus competitor names and products you do not stock. In Performance Max, check whether brand exclusions were ever switched on at all.

What it costs you. Broad match and Performance Max both reach past the exact words you gave them. That is what they are for. With nothing excluded, nothing tells them where to stop. So you pay for browsers, for people who want it free, and for shoppers who are really looking for a rival. Same story on the product side. Every product you leave in the listing group can take spend, including the one that never sells at a price that covers the click.

The fix. Put your never-buy words into account-level negative keywords, under Admin > Account settings > Negative keywords. Google applies those to every relevant campaign on its own, including the campaign you build next month. A shared exclusion list does not work that way. You have to attach it to each campaign yourself, and a new campaign starts with nothing. Use the shared list for the words that belong to one campaign only. Then switch brand exclusions on inside each Performance Max campaign. Last, drop the products that cannot pay for a click. You do that in the listing group, or by pulling them out of the feed.

How Do You Check Your Own Account?

Same order as above. The other four checks only mean something once you trust the tracking number underneath them.

Step 1: Conversions table

Goals > Conversions > Summary. Count what sits in Primary. One purchase action is correct. Two is a bug.

Step 2: One month, two screens

A full month of Google Ads conversions next to the same month of Shopify orders. Write both numbers down. Close is fine. A wide gap is not.

Step 3: Feed titles

Merchant Center > Products. Read your titles out loud. No searchable words in them means the feed is your job this week.

Step 4: Campaigns against jobs

List what the account has to do: protect brand, sell winners, test new products, clear old stock. Then count your live campaigns, and count your orders. Both numbers matter.

Step 5: Search terms and exclusions

Open the search terms report and sort by cost. Take a window with enough clicks in it to be worth reading. Every term you would never pay for goes into account-level negative keywords today.

When Should You Hand This to Someone Else?

Disclosure first: ZenoX is a Google Ads agency, so we sell the exact thing this post might make you want.

Do the five fixes yourself first. They are settings, not a project, and nobody should charge you a monthly fee to tick them once. Bookmark the checklist and work through it.

Hiring earns its keep once the setup is clean and the work turns weekly. Feed rules per market. Labels that keep moving as products rise and die. Negatives that need reading every week. Budgets that shift between campaigns as stock comes and goes. That is a job.

When we do take an account on, we charge a percentage of spend. It starts at 10% on the first 10,000 euros a month. Above 150,000 it drops to 6%. The full scale is on the pricing page. No retainer, no setup fee, no lock-in. You can read how we run paid search for ecom brands long before you talk to anyone here.

Want a longer checklist written by someone who is not us? Dennis Moons at Store Growers publishes a full Google Ads audit walkthrough that goes deeper into Search campaign detail than this page does.

Got a store and want a second read on it? Send the URL on WhatsApp and we will tell you which of the five to fix first.

Frequently Asked Questions

How do I know if my Shopify Google Ads conversions are double-counted?

Compare a full month of Google Ads conversions against your Shopify orders, not a single day. Google Ads counts a sale on the day of the ad click, so the two never line up day to day. A gap that stays wide across a month points at a second tag firing.

Which conversion actions should be Primary in a Shopify Google Ads account?

Only the purchase action. Smart Bidding aims at whatever sits in Primary, and a popup email signup is much easier to get than an order. Move the rest to Secondary. You still see them in reporting.

Why do my Shopping and Performance Max ads show for the wrong searches?

Shopping has no keywords, so Google matches searches against your product data instead. Default Shopify titles give it almost nothing to read. Rewrite the titles, then add negative keywords.

Do I need an agency to fix these Shopify PPC mistakes?

No. Every one of them is a setting you can change yourself, and you should change them before you pay anyone. Hire once the work turns into a weekly job.