Reddit — Pixel and Conversions API
Server-side conversion tracking via Reddit's Conversions API. Pair the Reddit Pixel ID with a conversion access token. Optional hybrid mode loads the browser Reddit Pixel for first-party cookies, deduplicated via conversionId.
What you'll need
- A Reddit Ads Manager account with Admin role on the Ad Account.
- An existing Reddit Pixel attached to your domain.
- About 5 minutes.
1. Find the Reddit Pixel ID
- Open Reddit Ads Manager at
ads.reddit.com. - Events Manager → Pixel.
- Pick the Reddit Pixel for this domain. Create one via Add new event source → Reddit Pixel if none exists.
- The Pixel ID (format
a2_abc123def456) is shown in the Pixel header. Copy it including thea2_prefix.
2. Generate a conversion access token
- On the same Pixel detail page: Conversions API → Generate access token.
- Reddit issues a long-lived bearer token, scoped to the Pixel. The token does not expire under normal operation but can be revoked manually.
- The token is shown ONCE. Copy it immediately. There is no retrieve-later mechanism, you would have to revoke and regenerate.
3. Paste credentials into Beaconry
WordPress Admin → Beaconry → Tracking → Reddit. Paste the Pixel ID and the access token, save.
The token is encrypted at rest with AES-256-GCM using your WordPress auth salts. Constants alternative: BCNR_REDDIT_PIXEL_ID and BCNR_REDDIT_ACCESS_TOKEN in wp-config.php.
4. Send the test event
Click Send Reddit test event. Beaconry fires a synchronous PageVisit through CAPI and reports the response inline.
HTTP 200 with no error means credentials work. The event appears in Events Manager → Pixel → Diagnostics within ~10 minutes. Reddit does not have a real-time test view comparable to Meta's Test Events, the Diagnostics tab is what you watch.
About Reddit's click identifier
Reddit appends ?rdt_cid=... (the Reddit Click ID) to every ad-click landing URL. Beaconry captures it on first page-load and persists it in the nl_ext cookie. Server-side events then include the click ID for accurate attribution. Without a captured rdt_cid, Reddit falls back to hashed-PII matching plus IP and User-Agent.
Hybrid mode — Reddit Pixel
Server-side CAPI alone covers 100 percent of consenting visitors. Hybrid mode loads the browser Reddit Pixel (www.redditstatic.com/ads/pixel.js) in parallel so Reddit sees the visitor's first-party cookies. Beaconry sends the same conversionId from both sides, Reddit deduplicates against double-counting.
Toggle in Beaconry → Tracking → Reddit → Hybrid mode. Better match-rate, slightly more bytes shipped to the visitor. Off by default.
What ships automatically
Beaconry maps GA4 canonical events to Reddit's standard event vocabulary:
| Beaconry event | Reddit event |
|---|---|
page_view | PageVisit |
view_item | ViewContent |
search | Search |
WooCommerce add_to_cart | AddToCart |
WooCommerce purchase | Purchase (with order value + currency) |
Form generate_lead | Lead |
Account sign_up | SignUp |
All payloads carry hashed PII (em, ph, externalId), the captured rdt_cid when available, plus IP and User-Agent.
Troubleshooting
- "401 Unauthorized": token revoked or generated under a different Pixel. Regenerate on the Pixel detail page and replace in Beaconry.
- "400 invalid_event_name": a custom event name was sent that does not match Reddit's standard vocabulary. Beaconry only emits standard names from the table above. Custom NLData.track() events with non-standard names get mapped to
Customwith the original name incustomEventName. - Diagnostics tab shows "matched: false": the visitor's PII could not be matched. Beaconry sends hashed email and phone when WooCommerce or a form provides them. Anonymous PageVisits without click ID and without PII can't be attributed, that's expected.
- Counter spikes after enabling hybrid mode: dedup mismatch on
conversionId. Verify the same ID is logged in both Beaconry and the Reddit Pixel debugger for the same session.