Reddit Conversions API
Forward your AxiTrace server-side events to Reddit — the same way Facebook CAPI and TikTok Events API work. You paste two values from Reddit Ads Manager, and AxiTrace sends every tracked event to your Reddit Ads account in real time, server-side: immune to ad blockers and browser privacy features.
Prerequisites
- An active Reddit Ads account with a business (ads.reddit.com).
- Your AxiTrace workspace installed and tracking events (Web SDK, Shopify app, or a platform plugin).
Copy your Pixel ID
- Open Reddit Ads Manager → Events Manager.
- Copy the Pixel ID shown at the top of the Events Overview page.
It looks like
a2_xxxxxxxxxxxx(older pixels may start witht2_orp2_).
Generate a Conversion Access Token
- In Events Manager, open Conversions API in the left sidebar.
- Click Generate Access Token, give it a name (e.g. "AxiTrace"), and click Generate.
- Click Copy to Clipboard & Close immediately — the token is shown only once. If you lose it, generate a new one (up to 5 tokens per business).
The conversion access token is non-expiring and officially recommended by Reddit for CAPI — no OAuth app, no developer review, no token refresh needed.
Connect in AxiTrace
- In your AxiTrace workspace, go to Connections and open Reddit Conversions API.
- Paste the Pixel ID and the Conversion Access Token.
- Click Test Connection — AxiTrace sends a real test event to Reddit and shows the result immediately.
- Pick the events to forward (all are enabled by default) and set the status to Active, then save.
Optionally: test with Event Testing first
Reddit provides an isolated test view at ads.reddit.com/events-manager/testing. Copy the Test ID shown there into the optional Test ID field in AxiTrace — all events will then land in the Event Testing tool instead of production reporting.
Event mapping
AxiTrace events map to Reddit's standard tracking types automatically:
| AxiTrace event | Reddit event |
|---|---|
page.view | PAGE_VISIT |
product.view | VIEW_CONTENT |
search | SEARCH |
product.addToCart | ADD_TO_CART |
transaction.charge | PURCHASE |
subscribe, start_trial | SIGN_UP |
lead, contact, initiate_checkout, add_payment_info | LEAD |
| any other marketing event | CUSTOM (original name preserved) |
With every event AxiTrace sends the available match keys: hashed email and phone (SHA-256),
IP address, user agent, external ID, the Reddit click ID (rdt_cid) captured from ad clicks,
the page URL, and — for revenue events — currency, value, item count and the product list.
Install the Reddit Pixel — init only
Add the Reddit Pixel snippet to your site without the rdt('track', 'PageVisit')
line. The init call on its own writes the first-party _rdt_uuid cookie, which the
AxiTrace SDK picks up and forwards with every server-side event as Reddit's user.uuid —
the strongest match key Reddit offers (its equivalent of Meta's _fbp). Sites running CAPI
without the pixel have no user.uuid at all.
<script>
!function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document);
rdt('init','YOUR_REDDIT_PIXEL_ID');
// No rdt('track', 'PageVisit') — AxiTrace sends PAGE_VISIT server-side with a conversion ID.
</script>
Deduplication with the Reddit Pixel
Reddit deduplicates a browser event against a server event only when both carry the same conversion ID and the same event name; duplicates are processed hourly and the two copies must arrive within 2 days of each other. AxiTrace always sends a stable conversion ID on the server side.
rdt('track', 'PageVisit') sends an empty conversionId
(visible in the beacon to alb.reddit.com/rp.gif as m.conversionId=), so Reddit
cannot pair it with the server-side PAGE_VISIT and counts the visit twice. Unlike Meta and
TikTok, the AxiTrace SDK has no Reddit bridge — it cannot inject its event ID into
rdt() — so the browser call can never be deduplicated. Keep the pixel init-only and let CAPI
send the events.
If you deliberately want browser-side Reddit events (for example you already build audiences from them),
then pass your own shared ID to both sides — rdt('track', 'PageVisit', { conversionId: '…' })
with the same value your server sends — or disable page.view for the Reddit connection in
AxiTrace so only the pixel reports visits. Never run both unpaired.
Troubleshooting
| Symptom | Meaning | Fix |
|---|---|---|
| "Invalid access token" | Reddit rejected the token (HTTP 401) — wrong, revoked, or deleted token. | Generate a fresh Conversion Access Token in Events Manager → Conversions API and paste it again. |
| "Not authorized for this pixel ID" | The token's business does not have access to this pixel (HTTP 403). | Double-check the Pixel ID on the Events Overview page — it must belong to the same Reddit business that generated the token. |
| "Connection test failed: There were N invalid conversion events…" | Payload rejected (HTTP 400) — this should not happen; AxiTrace builds schema-valid payloads. | Contact AxiTrace support — the exact Reddit error is stored in your integration logs. |
| Events sent but nothing in Ads Manager | A Test ID is set, or Reddit's ~24h reporting delay. | Remove the Test ID to go live; otherwise wait for the next reporting cycle. |
Missed events (e.g. a Reddit outage window) can be re-sent by AxiTrace support using the replay tooling — failed sends are stored with full (redacted) request and response data for diagnosis.