New vs returning purchase signals: stop optimizing toward your own customers
By the HonestTag team ยท Published July 12, 2026
HonestTag sends Google Ads the standard purchase conversion plus applicable classified actions: new customer, returning customer, and first-click new customer. Meta receives classified custom events, while its standard Purchase is sent only when the merchant confirms the other Meta purchase source is off or compatible. TikTok receives classified custom events through TikTok Events API; standard CompletePayment is opt-in to prevent double counting. Classification uses Shopify's customer order count at order time; guests count as new. For Google Ads and Meta, HonestTag sends the new-customer event only for purchases classified as new, not for repeat orders from customers you already had. TikTok says custom events are for reporting and audiences, not campaign optimization.
Bidding algorithms are obedient. They optimize toward whatever you define as a win, with no opinion about whether the win was worth having. If you tell one that every purchase is a win, it will find you purchases. The cheapest purchases on earth are the ones your existing customers were about to make anyway.
The problem: "purchases" includes your own customers
A campaign optimizing on the generic purchase event treats every purchase as equal. But your existing customers convert cheapest. They know you, they trust you, they were probably coming back regardless. The algorithm notices, because noticing cheap conversions is its whole job, and it drifts toward showing ads to people who look like your current customers, including your current customers.
The result is quiet and expensive: prospecting budget becomes retargeting budget without anyone deciding it should. And the platform reports great numbers for it, because reaching people who were already coming back produces spectacular cost-per-purchase figures. The dashboard says the campaign is winning. The business is paying to interrupt its own customers on their way to checkout.
The fix: classified purchase signals
HonestTag sends three classified purchase signals. Google Ads receives the applicable actions alongside its standard purchase conversion. Meta receives classified custom events and receives its standard Purchase only when the merchant confirms the other Meta purchase source is off or compatible. TikTok receives classified custom events through TikTok Events API; its standard CompletePayment event is opt-in:
- New customer: a purchase classified as first-time from Shopify's customer order count at order time; a missing customer record, including a guest checkout, counts as new.
- Returning customer: a repeat purchase from someone with prior orders.
- First-click new customer: a new customer whose first recorded ad click was on the platform receiving the event (for Klaviyo, any paid first click), the strictest acquisition signal available.
Classification uses Shopify's customer order count at the moment the order is placed. A missing customer record, including a guest checkout, counts as new.
What optimizing on the new-customer event does
When a prospecting campaign's optimization goal is the new-customer purchase event, bidding learns only from buyers the store did not already have. Returning revenue still gets measured, and every order still counts in reporting. It just stops being what the machine optimizes toward. The algorithm's obedience follows the definition it is given: when only new customers count as wins, the bidder trained on them has only new customers to look for.
Classified purchase delivery can be turned on for Google Ads, Meta and TikTok once each account is connected. Google Ads classified events arrive as secondary conversion actions you can choose for optimization, and Meta receives classified purchase events for custom conversions. TikTok classified custom events are for reporting and audiences; they are not described as Smart Performance bidding signals.
Why classification must be server-side
An ad platform's view of who is new depends on what it has been given and what it can match. When a platform offers a "new customer" flag, it is working from its own identity graph, from browser signals, from whatever partial view it has of your business. Those estimates fail in predictable ways: a customer on a new device looks new, a shared household looks like one person, a cleared cookie erases a relationship.
Shopify's customer order count is the classification source when it is present. HonestTag uses it at order time and counts a missing customer record, including a guest checkout, as new. The classification lands in every order's proof record along with the click id, timestamps, and match method, so any order's new-or-returning status can be audited rather than taken on trust.
What the same split powers in reporting
The classification that feeds bidding signals also feeds measurement. The new/returning split is what makes NMER and NCAC computable. Both depend on knowing which revenue and which customers were genuinely new. It also powers the read-only attribution-model comparison, which shows how credit would move under different models without letting any of them rewrite your numbers. One honest classification, used everywhere. The full signal set is described on the product page.
The dishonest versions
- The "3x ROAS" campaign that acquires nobody. Most of its conversions are existing customers. The ratio is real; the growth is not.
- Retargeting reported as acquisition. Reaching a past buyer is a legitimate tactic and a different business result. Blending the two into one number hides which one you bought.
- New-customer toggles built on the platform's guess. A checkbox that relies on the platform's own estimate of who is new optimizes toward an estimate. Estimates drift; order history does not.
What this changes
- Prospecting and retargeting as separate campaigns. Two jobs, two budgets, two report lines.
- Prospecting optimized on the new-customer purchase event. Bidding learns only from real acquisition.
- Prospecting read on NMER and NCAC. Those metrics only count customers acquisition brought in.
- Retargeting read on incremental repeat behavior. The measure is whether it changed what returning customers did, not whether it was nearby when they did it.
- The two kept as separate numbers. A blended figure flatters whichever half is failing.
Frequently asked questions
Does this change what conversions get reported?
For Google Ads, each delivered purchase includes the standard conversion and its applicable classified actions. Meta receives classified custom events, while its standard Purchase is sent only when the merchant confirms the other Meta purchase source is off or compatible. TikTok receives classified custom events through TikTok Events API. TikTok standard CompletePayment is off by default and turns on only when the merchant chooses HonestTag as the purchase source, because deduplication requires the same event id across sources. TikTok's HonestTag custom events are reporting and audience signals, not a claim that they drive Smart Performance bidding. Classification adds signal; it does not remove events.
Why not simply exclude existing customers from ad audiences?
Exclusion lists decay as people change devices and emails. Changing what the algorithm learns from is a different mechanism than fencing who it may show ads to: a bidder whose only training signal is new-customer purchases has only that pattern to learn from.
Is the new/returning flag accurate?
HonestTag uses Shopify's customer order count at order time. A missing customer record, including a guest checkout, counts as new. Each order's proof record shows the classification, so you can audit any order and see why it was counted as new or returning.
Related reading: first-click attribution, the model behind the strictest signal here, and NMER, the metric that tells you whether prospecting is actually working.