- 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 Custom stack event reaches Outbrain. Captured on the server, resolved to a person, then sent.
01 Capture
Captured from Custom stack
Not on the list? Send events to Upstack from any stack over webhook or direct post, with the same schema and the same resolution.
See the Custom stack integration →
Custom stackWhat it sends event_namewhatever you choose to call ituser identifiersany of email, phone, external IDvalue / currencyif the event carries revenuecustom propertiesany attribute in your own schema
02 Understand
Resolved to one person before it leaves
Every Custom stack 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 a purchase are matched on its order ID, so it is counted once.
- 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 Outbrain
Send conversions to Outbrain with the click ID recovered from the graph, so native placements are judged on orders rather than on sessions.
See the Outbrain integration →
OutbrainWhat it receives hashed email / phoneidentity matching on arrivalob_click_idcredit the click that drove itexternal_idstable person across sessionsorderIddedupe browser and server purchasesvalue / currencyvalue-based bidding
Which events reach Outbrain
Each Upstack event is mapped to the Outbrain event below before it is sent.
| Upstack event | Sent to Outbrain as | Key data on the event |
| Page view | PAGE_VIEW | None beyond the click ID (disabled by default) |
| Product view | Content_View | productId, productValue (disabled by default) |
| Add to cart | AddToCart | productId, productValue, currency |
| Purchase | Conversion | orderValue, currency, orderId |
Outbrain does not support matching on hashed email, phone or other personal data: attribution relies solely on the obclid click ID, which Upstack stores in a first-party cookie for 30 days. Events without a click ID are skipped.
The catch
The freedom to name your own events is also the risk: an ad platform expects specific event names and parameter shapes, and anything outside that is accepted and ignored.
Mapping happens before send, not in the platform.
Where to check in OutbrainDelivery you can audit
Outbrain › Conversions › Tracking
Server-reported conversions list the click ID they matched against.
What changes
What changes when Custom stack feeds Outbrain. Two gains on the Outbrain side, two on the Custom stack side.
Outbrain
Server-side delivery
By default Upstack sends events to Outbrain from its servers as well as through the Outbrain tag, so an event an ad blocker or browser privacy setting stops in the browser still arrives from the server.
Outbrain
Identity-resolved events
Events sent to Outbrain carry the resolved customer whenever Upstack can identify one, matched against a 750M+ device graph.
Custom stack
Any stack, any framework
Headless, custom checkout, native app or a platform we haven’t listed: if it can make an HTTP request, it can send to Upstack.
Custom stack
The same event schema
Custom events are resolved, filtered and forwarded exactly like a Shopify order.
Setup
Post directly from your backend so nothing depends on the browser.
You need admin access to an Outbrain Amplify account and active campaigns with click ID tracking configured.
Upstack dashboardExample
Custom stack Data source Connected
Outbrain Destination Healthy
Read the full Outbrain setup guide → -
01
Connect Custom stack
Not on the list? Send events to Upstack from any stack over webhook or direct post, with the same schema and the same resolution.
-
02
Add the Outbrain destination
Add obclid={{ob_click_id}} to every campaign’s URL suffix, then under Destinations add Outbrain with your Marketer ID, a 32 character hexadecimal string from Settings, Tracking in Amplify.
-
03
Check conversions in Amplify
Upstack marks the destination Healthy, and the Conversions page in the Outbrain Amplify Dashboard shows recent events. Test with a real ad click and purchase: test events do not show up, because conversions only register when someone clicks your ad.
FAQ
Questions about Custom stack and Outbrain.
Why are my attribution rates lower than other platforms?
Outbrain does not support enhanced matching with hashed personal data, so attribution relies solely on the obclid click ID. If a visitor clears cookies, uses a different device or the click ID expires after 30 days, the conversion cannot be attributed.
Do event names need to match exactly?
Yes. Event names are case-sensitive and must exactly match the conversion name configured in your Outbrain Amplify dashboard, so check the spelling in Amplify, Conversions before configuring Upstack.
Which events does Outbrain receive?
PageView as PAGE_VIEW, ViewContent as Content_View, AddToCart as AddToCart and Purchase as Conversion.
Which customer parameters are sent to Outbrain?
Outbrain does not support matching on hashed email, phone or other personal data: attribution relies solely on the obclid click ID, which Upstack stores in a first-party cookie for 30 days. Events without a click ID are skipped.
How do I check that Custom stack events are reaching Outbrain?
Upstack marks the destination Healthy, and the Conversions page in the Outbrain Amplify Dashboard shows recent events. Test with a real ad click and purchase: test events do not show up, because conversions only register when someone clicks your ad.