- 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 Shopify event reaches Reddit. Captured on the server, resolved to a person, then sent.
01 Capture
Captured from Shopify
One Upstack app setup that captures Shopify storefront and checkout events with the Upstack Pixel, records every order directly from Shopify, and forwards both to every tool you spend on.
See the Shopify integration →
ShopifyWhat it sends order_idShopify order and checkout tokenemail / phonecustomer contact from checkoutcustomer_idShopify customer record, if they have oneline_itemsproducts, variants and quantitiestotal / subtotal / discountorder economics
02 Understand
Resolved to one person before it leaves
Every Shopify 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 Reddit
Forward resolved conversions to the Reddit Conversions API, so a platform where the click and the purchase are often days apart still gets credited.
See the Reddit integration →
RedditWhat it receives hashed email / phoneidentity matching on arrivalrdt_cidcredit the click that drove itexternal_idstable person across sessionsconversion_iddedupe against the browser pixelvalue / currencyvalue-based bidding
Which events reach Reddit
Each Upstack event is mapped to the Reddit event below before it is sent.
| Upstack event | Sent to Reddit as | Key data on the event |
| Page view | PageVisit | URL, referrer, user agent |
| Product view | ViewContent | products, value, currency |
| Add to cart | AddToCart | products, value, currency |
| Checkout | InitiateCheckout (custom event server-side) | value, currency, itemCount |
| Purchase | Purchase | value, currency, transactionId, products |
Every event carries every available match key: hashed email and phone, external_id, the rdt_cid click ID, user agent and IP address. Personal data is hashed with SHA-256 before it leaves Upstack.
Shopify to Reddit, in detail
How Shopify events reach the Reddit Conversions API.
Shopify has no Reddit sales channel, so Reddit pixels on Shopify stores live in Customer Events, theme.liquid, third-party apps or Google Tag Manager, and several of them at once is a common cause of inflated metrics. Upstack loads one Reddit Pixel and sends the same events to Reddit’s Conversions API, each pair sharing a conversion_id, with hashed email and phone, external_id and the rdt_cid click ID attached.
| Shopify data | Sent to Reddit as |
| Reddit ad click The click ID that credits the ad. | rdt_cid |
| Checkout email and phone Hashed with SHA-256 before they leave Upstack. | Hashed email and phone |
| Upstack customer ID One person across visits. | external_id |
| Visitor IP and user agent On every event. | IP address, user agent |
| Products, total and currency On ViewContent, AddToCart and Purchase. | products, value, currency |
| Order ID On Purchase. | transactionId |
| Items at checkout On InitiateCheckout. | itemCount |
Deduplication with conversion_id
Reddit deduplicates the server event against the matching browser Pixel event with the same conversion_id, as long as the Pixel ID in Upstack matches the one firing on your store.
InitiateCheckout as a custom event
InitiateCheckout is a standard event from Reddit’s browser pixel, so Upstack sends the server copy as a custom event named InitiateCheckout. It’s never mapped to Purchase.
Post-purchase upsells
Reddit already has an upsell_purchase mapping, but it’s turned off by default, so accepted upsells aren’t sent until you turn it on.
Event Match Quality on Reddit
Reddit scores each event type in Events Manager. Server delivery adds conversions the browser pixel misses and attaches stronger match keys, so scores and tracked conversions typically rise.
The catch
Shopify brands almost always have a pixel already firing.
Sending server events alongside it without a shared event ID is how a single purchase becomes two conversions and your reported ROAS quietly doubles. Upstack records one Purchase per Shopify order ID, so the pixel's copy and Shopify's own copy of an order count once.
Remove duplicate Reddit pixels → Where to check in RedditDelivery you can audit
Reddit Ads › Events Manager › Conversions API
Server events appear with a Conversions API source label, and the events table shows which parameters arrived.
What changes
What changes when Shopify feeds Reddit. Two gains on the Reddit side, two on the Shopify side.
Reddit
Server-side delivery
By default Upstack sends events to Reddit from its servers as well as through the Reddit tag, so an event an ad blocker or browser privacy setting stops in the browser still arrives from the server.
Reddit
Identity-resolved events
Events sent to Reddit carry the resolved customer whenever Upstack can identify one, matched against a 750M+ device graph.
Shopify
Orders recorded from Shopify itself
Purchases also reach Upstack directly from Shopify, about 10 minutes after the order, so an order still counts when an ad blocker stopped the pixel or the shopper closed the page.
Shopify
Recognize returning customers
Shopify customer IDs, emails and phones are matched against the graph, so repeat buyers are identified across devices.
Setup
Live in under 20 minutes.
App install, no theme edits and no developer. You need admin access to a Reddit Ads account and owner or staff access to Shopify.
Upstack dashboardExample
Shopify Data source Connected
Reddit Ads Destination Healthy
Read the full Reddit setup guide → -
01
Connect Shopify
In the Upstack dashboard, open System, then Data Sources, and click Connect Shopify. Approve the install in your Shopify Admin: Upstack reads products, orders and customers, and writes only its own pixel.
-
02
Remove duplicate Reddit pixels
Check Customer Events, theme.liquid, third-party apps and Google Tag Manager for Reddit pixels, and keep only one installation.
-
03
Copy your Pixel ID and create a token
In Reddit Ads Manager, open Events Manager, copy the Pixel ID (typically prefixed with t2_) and generate a Conversions API access token.
-
04
Add the Reddit destination
Under Destinations, add Reddit Ads with the Pixel ID and the token, and keep the default Browser + Server tracking method.
-
05
Check Event Match Quality
Events Manager shows recent events with a Server badge for CAPI events, a Browser badge for pixel events and an EMQ score for each event type.
After setup
What to check in Reddit Ads Manager.
Upstack shows the Reddit Ads destination as Healthy.
Events Manager’s Overview tab shows events with both Server and Browser badges.
The EMQ column shows a score for each event type.
Conversion volume settles after the first 48 hours, while Reddit’s deduplication adjusts.
Troubleshooting
Common problems and fixes.
-
Inflated conversions
More than one Reddit pixel is installed. Consolidate to a single pixel with the same Pixel ID as Upstack.
-
Events counted twice
The Pixel ID in Upstack differs from the one firing on your store, so conversion_id can’t pair them. Make them match.
-
Events stop after working
The access token may have expired or been revoked. Generate a new one in Reddit’s Events Manager and update the destination.
FAQ
Questions about Shopify and Reddit.
How do I connect Shopify to the Reddit Conversions API?
Connect Shopify, make sure only one Reddit pixel is installed, then add the Reddit Ads destination with your Pixel ID and a Conversions API access token from Reddit’s Events Manager. Upstack sends every event from the browser and its servers with a shared conversion_id. Most brands are live in under 20 minutes.
Do I need to remove duplicate Reddit pixels?
Yes. Shopify has no Reddit sales channel, so check Customer Events, theme.liquid, third-party apps and Google Tag Manager for Reddit pixels, and keep only one installation.
Will my events be counted twice if I run both the Pixel and CAPI?
No. Upstack sends a shared conversion_id on every server-side event, and Reddit deduplicates against the matching browser Pixel event. As long as the Pixel ID in Upstack matches the Pixel ID firing in your storefront, deduplication is automatic.
Do I need to remove my existing Reddit pixel from Shopify?
Not if it uses the same Pixel ID as Upstack, since conversion_id deduplication prevents double counting. If you have multiple Reddit pixels installed, a common cause of inflated metrics, consolidate to a single pixel before activating Upstack.
Which events does Reddit receive?
PageView as PageVisit, ViewContent as ViewContent, AddToCart as AddToCart, InitiateCheckout as InitiateCheckout (custom event server-side) and Purchase as Purchase. Orders reach Upstack directly from Shopify, even when the browser pixel is blocked.
Which customer parameters are sent to Reddit?
Every event carries every available match key: hashed email and phone, external_id, the rdt_cid click ID, user agent and IP address. Personal data is hashed with SHA-256 before it leaves Upstack.
How do I check that Shopify events are reaching Reddit?
Upstack marks the destination Healthy, and Events Manager in Reddit Ads Manager shows recent events with a Server badge for CAPI events and an EMQ score for each event type. Conversion volume may fluctuate during the first 48 hours while Reddit’s deduplication adjusts.
Do I need a developer to connect Shopify to Reddit?
No. Shopify connects as an app install with no theme edits, and most brands are live in under 20 minutes. Headless storefronts add the Upstack Pixel script instead of the theme app extension.
Why is InitiateCheckout a custom event on Reddit?
It’s a standard event from Reddit’s browser pixel, so Upstack sends the server copy as a custom event named InitiateCheckout. It’s never mapped to Purchase.
Does Reddit receive post-purchase upsells?
Not by default. The upsell_purchase mapping exists for Reddit but is turned off, so turn it on under the destination’s event mappings if you want it.
Keep reading
More on Shopify and Reddit.