Skip to content
Code samples below use example values.

Reddit Ads

This page covers both halves of a Reddit connection: importing and managing campaigns (the Ads API) and delivering server-side conversions through Prism. Reddit's wizard sets both up in one pass — unlike Meta and Google, there's nothing to split across two separate pages.

Connecting — self-serve, no approval wait

In the Adsidian dashboard, open the client → Connect Reddit Ads. The wizard:

  1. Authorize with Reddit — a full-page redirect to Reddit's OAuth consent screen, requesting read, write, and conversions access (adsread adsedit adsconversions) up front so you never have to re-consent later.
  2. Pick the ad account — the accounts your Reddit login can reach.
  3. Paste the pixel + Conversions API token (below).
  4. Map events (optional).
  5. Send a test conversion.

No approval queue

Unlike LinkedIn, Reddit's Ads API doesn't gate access behind a partner-approval process. The moment you authorize, the connection is live — there's no waiting period and no demo/mock stage to get through first.

Reddit issues a non-expiring refresh token (requested via duration=permanent), so once you connect you won't see a reconnect prompt later the way you will with LinkedIn's 365-day expiry. The short-lived access token (~1 hour) refreshes automatically in the background.

The conversion pixel is required, not optional

Reddit requires every ad group to carry a conversion pixel ID — and since every Reddit campaign needs at least one ad group underneath it, Adsidian enforces this at the campaign level too: a campaign create is rejected up front if the client has no pixel configured, rather than staging a draft that can structurally never get a valid ad group.

Where to find it and where it goes:

  1. In Reddit Ads Manager, open Events Manager for the ad account you connected.
  2. Copy the Pixel ID shown there.
  3. Generate a Conversions API access token — Reddit shows this once, so paste it into the wizard immediately.

Both values are pasted into the wizard's pixel step. The token is write-only after saving (shown as saved, never redisplayed) — paste a new one to rotate it, or leave the field blank to keep the existing token.

Event mapping

Prism event names can be renamed before Reddit sees them — e.g. send your AppointmentRequest event as Reddit's Lead. This is a free-text rename map (like Meta's, not a pick-list like Google's or LinkedIn's): leave a row blank and the Prism event name passes through unchanged. Anything that isn't one of Reddit's standard names (PageVisit, ViewContent, Search, AddToCart, AddToWishlist, Lead, SignUp, Purchase) is sent as a custom event under its original name.

What syncs, and how often

Once connected, Adsidian syncs the account hourly: campaigns, ad groups, and ads, plus the last 30 days of daily spend/impressions/clicks/conversions per campaign. Status changes made from the dashboard or by the AI agent push to Reddit; changes made in Reddit Ads Manager show up on the next sync.

Daily-grain spend, refreshed hourly

Each hourly sync pulls day-level metrics (not an hour-by-hour breakdown) — the same shape Google Ads' daily figures use. An intraday spend chart isn't available for Reddit yet.

What the AI agent can do

Through chat, the agent can (all mutations require your explicit approval before anything reaches Reddit):

  • Create a campaign, ad group, and ad — created paused. Every ad group create checks for the pixel first and fails fast with a clear message if it's missing, rather than staging something that can never go live.
  • Pause, resume, or archive a campaign (set_campaign_status dispatches across Meta, Google, and Reddit campaigns automatically).
  • Change a campaign's daily or lifetime budget (update_campaign_budget, same cross-platform dispatch).

If a client isn't connected yet but Reddit is available in demo mode, creates still stage as drafts and push automatically the moment the client's real connection goes live.

Server-side conversions via Prism

Once the pixel and CAPI token are saved, Prism delivers events to Reddit's Conversions API server-side — independent of whether a browser-side Reddit pixel is also installed.

Attribution signal, in priority order (Reddit requires at least one):

  1. rdt_cid — Reddit's own click ID, captured from the URL the moment a visitor lands from a Reddit ad, the same way Prism already captures gclid and fbclid. This is captured automatically by the snippet — no separate setup step.
  2. Hashed email, when your event carries one (hashed in-browser before it ever reaches Prism).
  3. IP + user agent, as a last-resort probabilistic fallback.

An event with none of these is skipped (no_match_signal) rather than sent with fabricated attribution.

Deduplication: Prism sends the same deterministic event ID it uses for Meta CAPI as Reddit's conversion_id. If you also run Reddit's own browser pixel on the site, the two can dedupe against each other instead of double-counting.

Troubleshooting

SymptomLikely cause / fix
Ad group / campaign create rejected with a pixel errorThe client has no Reddit pixel saved yet. Finish the wizard's pixel step first.
Test conversion failsRe-check the pixel ID and CAPI token — the token is shown once in Events Manager, so a copy-paste slip is the most common cause. Regenerating the token in Reddit invalidates the old one silently; paste the new one into the wizard.
Ad account list is emptyYou authorized with a Reddit account that doesn't have access to the ad account you expected — reconnect with the right one.
Conversions aren't arriving in Events ManagerConfirm the client has both reddit_pixel_id and a saved CAPI token, and that events carry at least one attribution signal (rdt_cid, email, or IP+UA aren't all missing).
Sync looks staleReddit syncs hourly; a fresh connection's first sync can take a few minutes to appear.

Next

Adsidian Prism — first-party server-side tracking.