- US device IDs in the graph
- 750M+
- Match rate on events
- 90%+
- Identity window, per customer
- Lifetime
- Most brands are live
- <20 min
How it flows
How a Loop Subscriptions event reaches X. Captured on the server, resolved to a person, then sent.
01 Capture
Captured from Loop Subscriptions
Capture Loop Subscriptions events server-side (new subscriptions, renewals, swaps and cancellations), each as what it actually is.
See the Loop Subscriptions integration →
Loop SubscriptionsWhat it sends subscription_idthe Loop subscription across its whole lifeemail / phonesubscriber contactevent_typerenewal, swap, skip, pause, cancel or saveline_itemsproducts after any swaptotal / intervalcharge amount and billing cadence
02 Understand
Resolved to one person before it leaves
Every Loop Subscriptions event is matched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer rather than two strangers.
How resolution works →
Resolved before it is sent - IdentityMatched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer.
customer_typeNew or returning, resolved before send.- DeduplicationBrowser and server copies of the same purchase collapse on event ID, so nothing is counted twice.
- Bot and fraud filteringAutomated traffic never reaches the model, because what you keep out of the training set matters as much as what goes in.
03 Activate
Delivered to X
Server-side conversions to the X Conversions API, resolved to a person and deduplicated against the browser pixel.
See the X integration →
XWhat it receives hashed email / phoneidentity matching on arrivaltwclidcredit the click that drove itexternal_idstable person across sessionsevent_iddedupe against the browser pixelvalue / currencyvalue-based bidding
The catch
Swaps, pauses and saves produce state changes with no order attached.
Ad platforms receiving only orders see a paused subscriber as churned and start bidding to re-acquire someone who is still a customer.
Where to check in XDelivery you can audit
X Ads › Tools › Events Manager
The events table separates browser and server events, so a deduplicated pair shows as one conversion.
What changes
What changes when Loop Subscriptions feeds X. Two gains on the X side, two on the Loop Subscriptions side.
X
Server-side delivery
Events reach X through its server API rather than the browser, so ad blockers and ITP don’t cost you conversions.
X
Identity-resolved events
Events sent to X carry the resolved customer whenever Upstack can identify one, matched against a 750M+ device graph.
Loop Subscriptions
Every event, server-side
Storefront and checkout events are captured from Loop Subscriptions on the server, independent of the browser.
Loop Subscriptions
One setup, every destination
Connect Loop Subscriptions once and forward to every ad platform, email tool and warehouse you run.
Setup
Live in under 20 minutes.
Connect Loop Subscriptions once and every destination, X included, is forwarded the same resolved events.
Upstack dashboardExample
Loop Subscriptions Data source Connected
X Destination Healthy
Read the full X setup guide → -
01
Connect Loop Subscriptions
Capture Loop Subscriptions events server-side (new subscriptions, renewals, swaps and cancellations), each as what it actually is.
-
02
Add the X destination
Under Destinations, add X. Every resolved Loop Subscriptions event is then forwarded to it.
-
03
Check delivery to X
Every conversion is inspectable from the moment it fires to the moment the platform confirms it.
FAQ
Questions about Loop Subscriptions and X.
How do I check that Loop Subscriptions events are reaching X?
Open X Ads › Tools › Events Manager. The events table separates browser and server events, so a deduplicated pair shows as one conversion.
Will a purchase be counted twice?
No. Browser and server copies of the same purchase collapse on event ID, so nothing is counted twice.
How long does it take to connect Loop Subscriptions to X?
Most brands are live in under 20 minutes. Once Loop Subscriptions is connected, every destination receives the same resolved events, X included.