Connect the Reddit Conversions API to your Shopify store
By the HonestTag team ยท Published October 16, 2026
HonestTag sends each verified Shopify purchase to Reddit from its server through Reddit's Conversions API, so orders from Reddit ads are counted even when a browser tag is blocked. You connect it on the Reddit card in the HonestTag app, by signing in to Reddit or by pasting a conversion access token, plus the ID of your Reddit Pixel. This page lists what you need, the steps, what is sent, how duplicates are avoided, and how to check it works.
What you need
- A Reddit Ads account and a Reddit Pixel. Reddit's Direct Integration guide says: "You can find your Pixel ID in the Events Manager." With Reddit sign-in, the card lists the pixels of the businesses your login can reach.
- Either a Reddit login or a conversion access token. Signing in asks you to allow HonestTag two Reddit permissions:
adsread, which Reddit describes as "Read advertising data for your account", to list your pixels, andadsconversions, "Post conversion events by enabling access to the Conversions API". The pasted path uses a conversion access token. Reddit: "Only users with the business admin role can generate conversion access tokens. This token may be used by any Pixel in the Business where it was generated." Reddit recommends this token for the Conversions API "because it's non-expiring and simple to generate." - One purchase source for that pixel. The card will not save until you confirm HonestTag is the only thing sending Reddit purchase events for the store. See avoiding double counting below.
- A paid HonestTag plan for delivery. The free Mirror never sends anything to an ad platform. You can connect Reddit on the Mirror, and purchases start going to Reddit when you move to a paid plan. See pricing.
Connect Reddit, step by step
- Turn off other Reddit purchase events. If the Reddit Pixel in your theme, another Reddit integration or another app sends purchase events to the pixel you will use, turn its purchase event off first. HonestTag asks you to confirm this before it saves.
- Open the Reddit card. In your Shopify admin, open the HonestTag app, go to Setup, and find the Reddit card.
- Sign in, or paste a token. Choose Connect Reddit, check that the username Reddit shows is the one that manages your ads, and allow HonestTag. Or open Paste a conversion access token: in Reddit Ads Manager, go to Events Manager, then Conversions API, and select Generate Access Token. Give it a name, select Generate, then Copy to Clipboard & Close.
- Pick the pixel and confirm. After sign-in, choose your Reddit pixel from the list (or type its ID). With a pasted token, paste the token and the Pixel ID from Events Manager. Tick HonestTag will be the only thing sending Reddit purchase events for this store.
- Save. HonestTag checks the credential with Reddit for that pixel before it saves the pixel. The check sends no event, so Reddit records nothing.
Reddit says the token "cannot be retrieved later", so if you lose it, generate a new one. The save-time check sends Reddit a request with no events for your pixel. With a pasted token, a token Reddit does not accept stops the save and nothing is stored. When Reddit answers that the token or login may not post to the pixel, the save stops with the reason on the card. Reddit does not document whether it checks the pixel on a request with no events, so a check can pass without proving the pixel is allowed; if the first real purchase is then refused, the card asks you to reconnect. With sign-in, a failed check does not save the pixel, and your Reddit sign-in stays connected so you can choose another. If you sign in again later and the complete list of pixels your new login can reach does not include the saved one, HonestTag clears it.
The four purchase goals in Reddit
Reddit takes custom events by name. Its schema describes CUSTOM as "A custom conversion event identified by its event name", and its guide says the name is "free-form and case-sensitive". For each order HonestTag sends:
- HonestTag_Purchase (all purchases): Reddit's standard
PURCHASEevent, one per order. - HonestTag_Purchase_NC: a custom event, for a new customer.
- HonestTag_Purchase_RC: a custom event, for a returning customer.
- HonestTag_Purchase_FCNC: a custom event, sent as well as NC when a new customer's first recorded ad click was on Reddit.
Reddit's API has no call that creates a conversion event ahead of time, so there is nothing to set up: each custom event appears once it is first sent. Reddit notes "Only the 20 most recent custom events will be visible on the dashboard." For how the four goals are counted and which to use for each campaign type, see the HonestTag conversion actions.
What HonestTag sends to Reddit
For each eligible order HonestTag sends one request to ads-api.reddit.com/api/v3/pixels/{your pixel}/conversion_events carrying the PURCHASE event and the order's custom goal events together. Reddit says a rejected batch means "None were processed", so an order is never half sent. Each event holds:
- The order: the order time, a conversion ID derived from the order (the same on every retry; each custom event has its own), your Shopify order ID, the order value without tax and its currency, the item count, and up to 50 products (product ID, title, quantity and unit price). A bundle is sent as one product.
- The page: the order's landing page as
event_source_url, or your storefront address when the order has none, withaction_sourceWEBSITE. - Matching data: SHA-256 hashes of the buyer's email and phone, canonicalized as Reddit specifies (email lowercased, with dots and any text after a plus sign removed from the part before the @; phone in international form starting with +); a SHA-256 hash of HonestTag's random visitor ID as
external_id; the Reddit click ID (rdt_cid), which Reddit says is "appended to the landing page URL when a user clicks through an ad from Reddit", when the visit came from a Reddit ad; and the IP address and user agent Shopify recorded on the order.
An order with no email, phone, click ID, or IP address and user agent pair is not sent. Reddit says "events must be sent within seven days after they occur", so HonestTag does not send an older purchase. HonestTag marks an order delivered when Reddit answers its request with a success message. Reddit's one-event example of that message is "Successfully processed 1 conversion events."
Consent follows the rules on the server-side delivery page: for EU, EEA, UK and Swiss orders, a conversion with no visitor record is not sent, unless you asked HonestTag in writing to turn that gate off because you collect consent elsewhere. HonestTag does not set Reddit's Limited Data Use option on the event itself.
What HonestTag reads, and what it never touches
- Reads: with sign-in, the businesses and pixels your login can reach, to fill the pixel list.
- Does not read: Reddit spend or Reddit-reported conversions. Reddit does not appear in the Mirror's comparison.
- Writes: purchase and goal events to your pixel, nothing else.
- Never touches: campaigns, ad groups, ads, budgets, bids or targeting.
Avoid counting a purchase twice
Reddit's rule, from its Direct Integration guide: "Reddit supports two methods: conversion ID and session-based deduplication." The conversion ID method "is always preferred when a conversion ID is provided", and "For custom events, the event name must also match." HonestTag always sends a conversion ID, computed on its server from the order, so no browser tag can send the same one. If the Reddit Pixel in your theme or another Reddit integration also sends PURCHASE for your orders, Reddit can receive two purchases for one order. That is why the card asks you to turn the other purchase event off and confirm HonestTag is the only source. Reddit also says "Deduplication is not required when the event is only sent through one integration type." The duplicate purchase events guide shows how to find every purchase source on a store.
Refunds, edits and which orders are sent
- Refunds: Reddit's event types include no refund or retraction event, so HonestTag sends none. The order's proof records "refund recorded; HonestTag sends Reddit no refund or retraction event".
- Order edits: HonestTag sends Reddit no correction; the value sent at purchase time stands.
- Online store orders are sent as
WEBSITEevents. - Point of sale orders are kept out unless you switch them on in the app. Switched on, Reddit receives them with
action_sourcePHYSICAL_STOREand no click ID or page URL. - Subscription renewals are not sent to Reddit: its schema names no source for them. The first order of a subscription is an online store checkout and is sent.
- Other apps and sales channels are kept out unless you switch them on, as described in which orders are sent.
How to check it works
- On the card. After you save, the Reddit card shows the pixel it sends to.
- In Reddit Events Manager. Reddit's verification guide says to "Go to the Events Manager and check that all your standard and custom conversion events are listed", and to review issues in Diagnostics, where "Issues may take up to 24 hours to clear after they've been resolved." Reddit also offers a deduplication panel for "details on deduplication effectiveness." Reddit's Event Testing screen works with a test ID that you copy from it into a request; HonestTag does not add one to real orders, so check live purchases in the event list and in the order proof.
- In HonestTag order proof. After the next online order, open it in the HonestTag app. The proof shows Reddit, the delivery status, the event ID and which events were sent, for example HonestTag_Purchase (sent as Reddit's PURCHASE event) and HonestTag_Purchase_NC.
Error messages and what to do
- "Reddit did not accept this conversion access token. Check that you copied the whole token." Generate a new token in Events Manager and paste all of it.
- "Reddit refused this token for pixel ... The token must be generated in the Reddit business that owns the pixel." Reddit's matching error is "You're not authorized to post conversions to Pixel ID {Pixel ID}." Use a token from the business that owns the pixel.
- "the Reddit account you signed in with cannot post conversions to pixel ..." Sign in with a member of the business that owns the pixel.
- "Reddit did not confirm the token (...)" Reddit did not give a usable answer. Nothing was saved; try again in a minute.
- "confirm that HonestTag will be the only thing sending Reddit purchase events for this store" Tick the confirmation box after turning off other Reddit purchase sources.
- "paste the Reddit Pixel ID from Events Manager, letters, digits, underscores and dashes only" The Pixel ID field is empty or not an ID.
- Reconnect needed. When Reddit refuses a delivery with HTTP 401, 403 or 404, the token or sign-in no longer reaches the pixel. The card asks you to reconnect: sign in again or paste a new token.
Disconnecting
Disconnect from the Reddit card, or uninstall the app. Delivery stops at once and the stored credential is deleted. Everything already measured stays, per the published retention schedule.
Frequently asked questions
How do I set up the Reddit Conversions API on Shopify without code?
Install HonestTag, open the Reddit card on the Setup page, and either sign in to Reddit or paste a conversion access token with your Reddit Pixel ID. HonestTag sends each Shopify purchase to Reddit from its server. There is nothing to add to your theme.
Who can generate a Reddit conversion access token?
Reddit says: "Only users with the business admin role can generate conversion access tokens." The token works for any pixel in the business where it was generated, and Reddit shows it only once, so copy it before you close the dialog.
Will Reddit count a purchase twice if I keep the Reddit Pixel?
It can, if the pixel also sends PURCHASE for the same order. Reddit merges two copies by their conversion ID, and no browser tag can send the conversion ID HonestTag uses. Turn the pixel's purchase event off so each order reaches Reddit once.
How do new-customer purchases show up in Reddit?
Beside the PURCHASE event, HonestTag sends a custom event named HonestTag_Purchase_NC for a new customer (plus HonestTag_Purchase_FCNC when their first ad click was on Reddit) or HonestTag_Purchase_RC for a returning customer. Reddit has no step to create them first: they appear in Events Manager as they arrive.
Does HonestTag send refunds to Reddit?
No. Reddit's Conversions API has no refund or retraction event type, so HonestTag sends none and records the refund in the order's proof.
Does HonestTag read my Reddit ad spend?
No. HonestTag has no Reddit spend read, so Reddit spend does not appear in HonestTag and the free Mirror does not show Reddit claims. HonestTag sends purchase events and reads no spend or conversion figures from Reddit.
Related: every HonestTag integration, server-side delivery, first-click attribution, which decides the FCNC goal, first-party tracking and switching from another tracking app.