Upstack SignalHow it works
How Signal sends Meta the customer behind every event
Signal collects your store’s events on our servers and matches each one to a person, using your first-party data and our 750M+ device graph. Meta, Google, TikTok and Klaviyo get every event with the identifiers they need to recognize the buyer.
21-day free trial No credit card No contracts 60-day 4x ROI guarantee
The gap
One shopper, three devices, one sale Meta can’t connect.
Tuesday, a shopper taps your Meta ad in Instagram on their iPhone and leaves. Friday, they come back on a laptop from a Google search. Sunday, they buy from a Klaviyo email.
Your browser pixel records three visitors. Meta gets a click with no purchase and a purchase with no click. The ad that started it looks like it failed, and the algorithm learns from fewer buyers than you have.
Moving the same pixel to a server gets past ad blockers and dropped requests. It still sends three strangers.
Check yours: In Meta Events Manager, open your pixel, select the Purchase event, and look at its Event match quality and the share of those events that carry a click ID (fbc). If more of your buyers come from Meta ads than that share, Meta is losing the click.
What your browser pixel records
- iPhone, Instagram app No purchase
- MacBook, Chrome New visitor
- Klaviyo email No ad click
Meta receives 3 unconnected visitors
How it works
Server-side tracking moves the event. Signal finds the person.
-
01 · Collect
Every event, from your store to our servers.
The Upstack Shopify app collects page views, add-to-carts, checkouts and purchases as first-party requests to our servers, so iOS updates, ad blockers and expired cookies stop costing you events.
Bot traffic, fraud patterns and duplicate orders are screened out before anything is sent.
Viewed product
Added to cart
Initiated checkout
Purchase
Bots and duplicate orders Screened out
-
02 · Match
Each visitor, linked to a person.
Signal checks every visitor against deterministic identifiers: an email or phone from checkout, a login, a click from a Klaviyo email. Where none is present, it matches probabilistically against Upstack’s device graph of 750M+ US device IDs and 150M+ customers.
The phone, the laptop and the email click become one customer with one Upstack ID, which lasts the life of the customer, not the life of a cookie.
iPhone, Instagram app
MacBook, Chrome
Klaviyo email
1 customer
-
03 · Fill in
Every event carries the whole profile.
Once a visitor is matched, each event they fire carries what Signal knows about that person: hashed email and phone, the Meta click and browser IDs (fbc and fbp) put back when the browser has lost them, and a stable external ID.
A page view on the laptop arrives with the match keys from a checkout on the phone.
Purchase · order #4821
- Hashed email
- Matched
- Hashed phone
- Matched
- Click ID (fbc)
- Restored
- Browser ID (fbp)
- Restored
- External ID
- Stable
- Event ID
- Deduplicated
-
04 · Send
Delivered to every platform you spend on.
Signal sends each event server to server: Meta’s Conversions API, Google Ads enhanced conversions, TikTok’s Events API, Pinterest’s Conversions API and Klaviyo.
Each event keeps the ID your browser pixel used, so each platform counts it once. You get an alert when a destination stops accepting events.
-
Meta
-
Google Ads
-
TikTok
-
Pinterest
-
Klaviyo
-
Where you see it
The same customer, wherever your team works.
Meta Ads Manager
New-customer CPA, ROAS and order count as columns beside your campaigns, so you can tell which ads find new buyers.
Meta Events Manager
A 90%+ match rate on events, and Meta event match quality of 7.5+.
Klaviyo
Browse, cart and checkout events for returning shoppers Klaviyo had lost track of, so your abandonment flows reach them. Champo’s flow revenue rose 54%.
Klaviyo flow recoveryUpstack Attribution, if you add it
Reports built on the same matched customers, checked against the revenue in your Shopify account.
Upstack AttributionAlternatives
What other server-side tools send.
| Tool | How events get there | Who the platform sees |
|---|---|---|
| Shopify’s Facebook & Instagram app, Meta CAPI Gateway | Free and Meta only. Sends the browser’s events from a server. | The browser session |
| Server-side GTM (Stape) | You build and maintain the containers. | Whatever the browser sent |
| Elevar | A data layer you configure, in Google Tag Manager or Elevar’s app. | The session, enriched |
| Triple Whale Sonar | Server-side enrichment added to Triple Whale’s pixel and reporting. | The session, enriched |
| Littledata | Managed server-side sending, built around GA4. | The session, enriched. Littledata is the better buy if GA4 accuracy matters most. |
| Aimerce | Extends the cookie to a year. | The same browser, for longer |
| Upstack Signal | Set up with you on a call. | The person, across devices, for the life of the customer |
Results
What changed for brands running Signal.
+128%
more customers identified at Champo, from traffic it already had
Read the case study about Champo$92K/mo
in incremental flow revenue at Perfect White Tee, with CAC cut 33% in 60 days
Read the case study about Perfect White Tee+85%
ad spend at Mika & Sammy’s over 6 months, while CPA rose 4%
-
We did see an uplift when we onboarded with Upstack, yes. Our EMQ scores improved by circa 20%.
Matt Elms
Questions
Questions before you switch.
Will switching reset my pixel’s learning?
No. Signal changes who sends the server-side events, not the pixel they go to. Your pixel ID, audiences and campaign history stay as they are, and campaigns keep running through the switch. If you stop using Signal, you turn your old sender back on.
Will events count twice while we switch?
No. During setup we switch off every other tool sending the same events. That’s usually Shopify’s Facebook & Instagram data sharing or Meta’s Conversions API Gateway, sometimes Elevar, Stape or Google Tag Manager tags. Every Signal event carries the same event ID as the browser pixel’s copy, so Meta keeps one.
Can we test Signal before we switch off our current tool?
Yes. Most brands start with Klaviyo, where the extra abandonment emails are easy to count. Signal can also run in the background on your own traffic, so you can compare match rates before it sends anything to Meta. Meta doesn’t deduplicate across pixels, so we plan any second-pixel test with you.
We were flagged health & wellness on Meta. Does this help?
Signal’s health & wellness setup sends server-side events to a new pixel from a neutral data domain, with health terms stripped, so you can optimize on standard Purchase events again. Meta won’t move an existing ad set to a new pixel, so your campaigns are duplicated onto it. We can’t lift a flag. What we change is the data Meta receives.
Is the health & wellness setup against Meta’s rules?
No. Meta restricts health data so it doesn’t end up holding medical profiles of your customers. Signal removes that data before any event is sent, which is the data minimization Meta asks for. Your ads and landing pages still have to meet Meta’s ad policies on their own.
Is my customer data shared with other brands?
No. Other brands never see your customers, and you never see theirs. Emails and phone numbers are hashed before they reach Meta, and you choose whether Signal follows your cookie banner.
Do we have to drop Triple Whale or Northbeam?
No. Signal replaces the tool that sends events to your ad platforms, such as Sonar, Elevar or Shopify’s Facebook & Instagram app. Triple Whale or Northbeam can keep running for reporting. If you want reporting from us as well, Upstack Attribution reads the same matched customers.
Can Signal match every visitor?
No. A shopper who comes back on a new device, network and browser, with nothing tying them to an earlier visit, can’t be linked. Signal links more visits than browser cookies can because it checks each one against your first-party data and our device graph. We set it up on your own traffic so you can compare match quality before and after.
Does this help find new customers, or only retarget past ones?
Both. Meta uses your page views and add-to-carts to find more people like the shoppers moving toward a purchase, so filling in those events helps prospecting as well as retargeting. The new-customer columns in Ads Manager show which ads bring in first orders.
Do I need a developer?
Not on a standard Shopify store. You install the Shopify app and connect your ad platforms on a call with our team, and most brands are live in under 20 minutes. A headless or non-Shopify store needs a developer to add our script, and we send the instructions.
How is this different from Upstack Audience?
Signal works with your own customers’ data and our device graph. Audience is a separate add-on that identifies shoppers you’ve never met, using opt-in partner data.
See what Meta is missing on your store.
We set Signal up with you, run it on your own traffic and show you the match rates.
21-day free trial, no credit card. Backed by the 60-day 4x ROI guarantee.