
You set up a prospecting campaign. You allocate a solid budget. You expect new customers. And then you check Shopify reports and realize a big chunk of your "new" conversions were people who already bought from you last month.
This is one of the most common and most expensive leaks in Meta advertising for Shopify brands. Your prospecting budget is not just finding new customers. It is also re-converting people who were already on their way back. And because Meta's algorithm does not care whether a buyer is new or returning, it happily charges you acquisition-level CPMs for repeat purchases that would have happened anyway.
The good news is, this is fixable. And the fix is more operational than technical. Let’s understand it through why it happens, how to build proper suppression audiences, how to apply them correctly, and how to measure whether they are actually working. If you are running Meta ads for a Shopify store and care about ecommerce conversion tracking and attribution tracking, this is for you.
Why Your Budget Bleeds Into Existing Customers
Meta's optimization system is built to find people most likely to complete the event you are optimizing for, usually a Purchase. And who is most likely to buy? Someone who has already bought.
Past customers convert faster. They already know your brand. They have stronger signals on-platform. When your account needs purchase volume (to stay in or exit the learning phase, or to hit a target CPA), the algorithm gravitates toward the path of least resistance. That path often runs straight through your existing customer base.
The result is you pay acquisition CPMs to re-convert people who were already in your pipeline. Your reported ROAS looks decent. Your actual new customer acquisition rate quietly drops. And your cost per new customer, the number that actually matters for growth, climbs without you noticing.
This is what makes the prospecting trap so dangerous. The data looks okay on the surface. The leak is invisible until you start separating new vs. returning customer performance.
How Meta Favors Easy Conversions Over Real Growth
Meta's delivery system is not designed to distinguish between new and existing customers. It is designed to find conversions. Full stop.
When you run a broad prospecting campaign without suppression, Meta will explore a wide audience initially. But over time, it learns. It identifies that past buyers convert more reliably. Delivery quietly shifts. Budget concentrates. Your "prospecting" campaign starts behaving more like a retention campaign, except with prospecting creative, prospecting messaging, and prospecting costs.
This drift is especially common in accounts that:
- Run Advantage+ Shopping Campaigns (ASC) without an existing customer budget cap
- Use broad targeting with no audience controls
- Have small total addressable audiences where existing customers represent a meaningful percentage
One specific note on ASC: Meta's Advantage+ Shopping Campaigns do not let you hard-exclude existing customers entirely. Instead, you can set an Existing Customer Budget Cap, which limits how much of your budget can be spent on the existing customer segment you define in your ad account settings. That is better than nothing, but it requires you to have your existing customer audience properly defined and connected in account settings first.
For manual campaigns, you have more direct control. You can exclude custom audiences at the ad set level, through Audience Controls if you use Advantage+ Audience, or through standard custom audience exclusions with original audiences.
The problem, as Meta advertising expert Jon Loomer has documented, is that exclusions are only as good as the data behind them. Imperfect data means imperfect exclusions.
The Cost of Inaction: Why This Destroys Your ROI
Here is a simple way to think about the cost:
If 30% of your prospecting purchases are from existing customers who were going to repurchase anyway, you are effectively paying acquisition CPMs on a third of your "prospecting" conversions without actually acquiring anyone new. Depending on your CPMs and conversion rates, that can translate into thousands of dollars per month in wasted spend.
Beyond direct cost, there is a secondary problem: your reported metrics become misleading. If existing customers inflate your prospecting ROAS, you may increase budget based on false performance signals. That compounds the waste.
Brands that separate new vs. returning customer performance often find their true cost per new customer is significantly higher than what their campaign dashboard suggests. Fixing suppression is not just about plugging a leak. It also gives you accurate data to make better budget decisions across your entire Meta account.
Building Your Suppression Audiences (All-Time vs. Recent)
Before you build anything, you need to define what "existing customer" means for this specific campaign.
There is no universal right answer. Your suppression window should reflect your product type and business model.
| Business Type | Recommended Suppression Window |
|---|---|
| Consumables / replenishables | 30 to 90 days (allow lapsed buyers back in later) |
| Apparel and accessories | 60 to 180 days |
| Durable goods / furniture / tech | 180 days to all-time |
| Strict new-to-file acquisition goal | All-time suppression in prospecting |
| Subscription products | Suppress active subscribers; run separate winback for churned |
Once you have chosen your window, you need to build the actual suppression audiences. The best practice is to use multiple sources, not just one.
Source 1: On-site purchaser audience (pixel-based)
Build a custom audience of users who fired a Purchase event (or reached your order confirmation page) within your chosen time window. This updates automatically and captures buyers even if you do not have their email address.
The limitation: pixel-based audiences miss users affected by iOS privacy restrictions, browser ad blockers, and consent opt-outs. Server side tracking Shopify setups (via the Meta Conversions API) can close some of this gap by capturing events that client-side pixels miss. This is one area where tools like Aimerce, which support server side tagging Shopify and Meta Conversion API Shopify integration, improve the completeness and accuracy of your suppression data.
Source 2: Customer list upload
Upload your Shopify customer list (or sync it from your CRM or email platform) as a custom audience. This anchors suppression to your actual order records, not just on-site activity.
The limitation: Meta needs to match each customer to a Facebook profile. Match rates typically range from 20% to 70% depending on data quality. Providing multiple data points (email, phone, name, and address) improves match rates. Also note: website custom audiences are capped at 180 days, so for all-time suppression, customer list uploads are essential.
Source 3: Shopify-based customer segments
If you can build audiences from your Shopify customer records directly (for example, "all customers who ever purchased"), use this as an additional suppression layer. This anchors your exclusions to your source of truth. Tools that support ecommerce conversion tracking and ecommerce events from Shopify directly into Meta can make this more reliable.
The rule: use at least two sources. If one has gaps, the other catches what slips through.
Combining Pixel Data with Shopify Customer Lists as a Multi-Source Strategy
The reason you need multiple sources is simple. No single data source is complete. iOS tracking Shopify fix aside, privacy restrictions and consent choices mean your pixel will always have blind spots. Customer list uploads will always have some unmatched records. Combining both layers gives you the best coverage.
Here is a practical setup for most Shopify brands:
- Pixel purchaser audience (all available windows: 30, 60, 90, 180 days depending on your chosen window)
- Shopify customer list upload refreshed weekly or bi-weekly
- Email/SMS subscriber list from Klaviyo or your ESP, filtered to customers only (not prospects)
If you use Klaviyo server side tracking setup or have Klaviyo conversion tracking enabled, you may also be able to sync purchaser segments directly. The goal is redundancy. Overlapping sources reduce the chance of any single buyer slipping through.
A note on tracking pixel audits: if you are not sure whether your pixel is firing accurately on order confirmation pages, this is the time to check. Auditing tracking pixels and verifying that your Purchase event fires only once per actual purchase (not on page refreshes or order status revisits) is foundational. Tools like Aimerce can run these tracking pixel audits and help verify ecommerce conversion tracking integrity across your Shopify store.
Applying Exclusions Across All Campaigns
This is where most teams fail. They build the suppression audience. They add it to one campaign. They forget to add it to three others.
Where exclusions must live:
- Every prospecting ad set or campaign labeled as acquisition or new customer
- Any broad targeting campaign where you are not intentionally targeting existing customers
- Any ASC campaign via the Existing Customer Budget Cap (in account settings, define your existing customer segment)
Common operational failure points:
- Exclusion added to one ad set but not duplicated when the campaign is copied
- Exclusion set at the wrong level so it does not apply to all placements
- Multiple prospecting campaigns with inconsistent suppression rules (one suppresses, one does not)
- Suppression window mismatch between your pixel audience and your customer list
Treat exclusions like a launch checklist item, not a setup-once-and-forget task. Every time you duplicate a campaign or launch a new test, verify the exclusions are applied.
The launch checklist:
- Define existing customer window (30 / 60 / 90 / 180 days or all-time)
- Build suppression audiences from at least two sources
- Apply exclusions to every prospecting ad set
- Confirm exclusions survived duplication and new test launches
- Verify estimated audience size reflects the exclusion
Track New vs. Returning Customer Mix
Once suppression is in place, you need to confirm it is working. Do not assume.
Inside Meta Ads Manager:
If you have ASC set up with an existing customer segment, Meta will break down performance by existing vs. new customers in the audience type breakdown. This is your most direct signal.
For manual campaigns, delivery breakdowns by audience are less granular, so Shopify-side measurement becomes more important.
Inside Shopify:
Shopify's Channel Performance report includes a new vs. returning customers metric at the campaign level. Go to Marketing, open the Channel Performance report, and look at the new customers column for your Meta campaigns. If your suppression is working, this number should increase over time relative to your ad spend.
Shopify's Campaign Attribution report also shows new vs. returning customer breakdown per campaign, along with AOV, conversion rate, and sessions. This is your ground truth for evaluating whether prospecting spend is actually acquiring new customers.
| Metric | Where to Find It | What to Look For |
|---|---|---|
| New vs. returning customer split | Shopify Channel Performance report | Increasing new customer share |
| Cost per new customer | Calculate from ad spend / new customers | Decreasing over time |
| Existing customer budget share (ASC) | Meta Ads Manager audience breakdown | Staying below your cap |
| Repeat purchase rate | Shopify Analytics | Not artificially inflated by ad spend |
| Estimated suppression audience size | Meta custom audiences | Reflects meaningful customer base |
One important note: attribution is never perfectly clean. Some existing customers will still slip through. The goal is to eliminate the bulk of wasted delivery, not to build a flawless wall. A meaningful improvement in new customer share alongside stable or improving CPA is a good signal that the fix is working.
Trade-offs to Know Before You Tighten Suppression
Tighter suppression does improve true acquisition performance. But it comes with real trade-offs to plan for.
Removing existing customers from your prospecting audience reduces the total pool of likely converters. For smaller accounts or brands where returning customers represent a large share of Meta conversions, this can:
- Reduce purchase volume in prospecting campaigns
- Slow campaign learning (fewer conversions for the algorithm to learn from)
- Increase CPA short-term as the algorithm adjusts to a colder audience
A common balanced approach:
- Prospecting campaigns: suppress recent purchasers (60 to 180 days depending on product type)
- Retention campaigns: run separate campaigns targeting past customers with appropriate messaging and creative
- Winback campaigns: target lapsed customers specifically, outside of prospecting budgets
This keeps your acquisition budget honest without starving the account of all conversion signal.
Stop Paying for Customers You Already Have
The fix for wasted prospecting spend is not a new campaign structure or a bigger budget. It is knowing exactly who your existing customers are, keeping them out of your acquisition targeting, and verifying the setup is actually working.
Build your suppression audiences from multiple sources. Apply them consistently across every prospecting campaign. Check your Shopify new vs. returning customer data weekly. And if your pixel coverage has gaps because of iOS restrictions or browser privacy settings, consider server side tracking Shopify via Meta Conversion API Shopify integration to improve the signal quality your suppression relies on.
Aimerce helps Shopify brands clean up exactly this kind of problem, from tracking pixel audits and ecommerce conversion tracking to attribution tracking and server side tagging Shopify. If you want to know whether your current Meta setup is sending clean data and building accurate suppression audiences, it is worth starting there.