If you are running Reddit Ads, browser-only tracking is usually not enough.
Ad blockers, privacy controls, cookie restrictions, checkout flows, app flows, and missing identifiers can all weaken conversion reporting. PostHog already has many of the events and user properties you need. The Reddit Conversions API destination lets you send those PostHog conversion events directly to Reddit Ads.
The goal is not just to send more events. The goal is to send better conversion signals: the right event names, stable IDs, useful match keys, accurate value and currency, product details where relevant, and a unique conversion ID for deduplication.
This guide shows how to configure the Reddit Conversions API destination in PostHog and how to map the fields that matter for attribution and campaign optimization.
If you’re looking for PostHog integrations with other advertising platforms, see:
- PostHog <> Google: Event tracking integration
- PostHog <> Pinterest: Event tracking integration
- PostHog <> TikTok: Event tracking integration
- PostHog <> Meta: Event tracking integration
- PostHog <> Snapchat: Event tracking integration
If you’d prefer expert assistance instead of handling the setup yourself, fill out the Contact Us form and we’ll create and deploy the right tracking solution for your business.
What You Need Before You Start
Before creating the destination, make sure you have:
- A PostHog project with the conversion events already captured.
- Access to the relevant Reddit Ads account.
- The Reddit Ads account ID.
- A Reddit Conversion Access Token.
- A list of PostHog events you want to send to Reddit.
- A mapping between PostHog event names and Reddit conversion event types.
- A decision on whether you are also using the Reddit Pixel.
- A plan for deduplication if both Pixel and Conversions API send the same event.
Do not start by sending every PostHog event to Reddit. Reddit only needs conversion events that help measurement, attribution, or optimization.
Good candidates include:
- Lead submitted.
- Sign up completed.
- Product viewed.
- Add to cart.
- Purchase.
- Demo booked.
- Trial started.
- Subscription started.
Step 1: Confirm Your PostHog Events Are Clean
The Reddit destination can only send the data you already have in PostHog.
Before mapping anything, check the source events in PostHog:
- Open Activity.
- Search for the conversion event you plan to send.
- Open a few recent event examples.
- Confirm the event has the properties Reddit needs.
For ecommerce events, look for:
value
currency
product_id
products
quantity
order_id
For lead or signup events, look for:
email
external_id
rdt_cid
conversion_id
Across all events, check whether PostHog has:
$ip
$raw_user_agent
These fields improve matching quality when they represent the actual end user. Be careful with server-side or third-party events, because the IP address may belong to a server or integration provider instead of the visitor.
Step 2: Open the Reddit Conversions API Destination
In PostHog, go to:
Data pipeline -> Destinations
Search for:
Reddit Conversions API
Then click Create.

PostHog’s native destination [Doc] is designed to send conversion events from PostHog to Reddit Ads through Reddit’s Conversions API [Doc]. This is usually cleaner than building and maintaining a custom webhook or server function from scratch.
Step 3: Add Your Reddit Ads Account Details
The destination requires two pieces of Reddit Ads information:
- Reddit Ads account ID.
- Conversion Access Token.
In Reddit Ads, find the account ID in the ads dashboard. PostHog’s documentation notes that the account ID may or may not include the t2_ prefix, so copy it from Reddit rather than guessing.
Then create or copy the Conversion Access Token from Reddit Ads.
Back in PostHog, paste both values into the destination configuration.

Treat the access token like a secret. Do not paste it into public docs, screenshots, tickets, or client-facing notes.
Step 4: Decide Which Events to Send
Reddit supports eight standard conversion events, and custom events can also be passed.
The standard Reddit events are:
PageVisit
ViewContent
Search
AddToCart
AddToWishlist
Purchase
Lead
SignUp
Map your PostHog events to the closest Reddit event type.
Examples:
| PostHog event | Reddit event type |
|---|---|
Product Viewed | ViewContent |
Product Added | AddToCart |
Order Completed | Purchase |
Lead Submitted | Lead |
User Signed Up | SignUp |
Search Performed | Search |
Use custom events when the conversion does not fit Reddit’s standard list.
Examples:
DemoBooked
TrialStarted
SubscriptionStarted
QuizCompleted
ApplicationSubmitted
If a standard event fits, use it. Standard events are easier for Reddit Ads to interpret and are usually better for optimization and reporting.
Step 5: Configure Event Filters
In the destination mapping, filter events so only the intended conversion events are sent.
For example, do not send every $pageview, autocaptured click, or internal admin event. Send the events that matter.
Good filters might be:
event = "Product Added"
event = "Order Completed"
event = "Lead Submitted"
or:
event = "form_submitted"
properties.form_type = "demo_request"

Filtering matters because sending noisy or irrelevant events can damage reporting quality. Reddit should receive clean conversion signals, not every interaction in your PostHog project.
Step 6: Map User Parameters
User parameters help Reddit match a conversion event back to a Reddit user or ad click.
Use the fields you reliably have:
email
ip_address
user_agent
external_id
rdt_cid
In the original setup, email, first name, and last name were normalized and SHA-256 hashed before being sent. That is a sensible default for identifiers such as email because it keeps the value standardized and reduces exposure of raw personal data.
Example mappings:
email: {sha256Hex(lower(person.properties.email))}
ip_address: {event.properties.$ip}
user_agent: {person.properties.$raw_user_agent}
external_id: {person.properties.user_id ?? event.properties.user_id}
If your user ID lives in a product-specific property, map that instead:
external_id: {person.properties.sb_user_id ?? event.properties.app_user_id}
For third-party integrations, IP addresses may live somewhere else. For example:
event.properties.subscriber_attributes.$ip

Use every reliable match key you have, but do not invent values. A missing email is better than a fake or incorrectly transformed email.
Step 7: Map the Reddit Click ID (rdt_cid)
The Reddit click ID connects a conversion back to a Reddit ad click.
PostHog may store it on the person as:
person.properties.rdt_cid
person.properties.$initial_rdt_cid
A practical mapping is:
{person.properties.rdt_cid ?? person.properties.$initial_rdt_cid}
If your site captures the click ID under a different name, use that property instead.
Examples:
event.properties.rdt_cid
person.properties.initial_rdt_cid
event.properties.url_params.rdt_cid
Do not assume rdt_cid is present. Test Reddit ad clicks and inspect the resulting PostHog person and event properties. If the click ID never reaches PostHog, Reddit will have less context for attribution.
Step 8: Map Event-Specific Parameters
Different conversion types need different event metadata.
For revenue or ecommerce events, include:
value
currency
products
item_count
conversion_id

Value
Map the conversion value as a number:
{toFloat(event.properties.value ?? event.properties.revenue ?? event.properties.price)}
Use net revenue, gross revenue, or another value definition consistently. Do not mix definitions across events.
Currency
Map the currency code:
{event.properties.currency}
Use standard currency codes such as:
USD
EUR
GBP
CAD
Products
For product ads, dynamic product ads, ecommerce reporting, or product-level optimization, send product details where available.
Example product mapping:
{event.properties.products ? arrayMap(product -> ({
'id': product.product_id,
'category': product.category,
'name': product.name
}), event.properties.products) : event.properties.product_id ? [{
'id': event.properties.product_id,
'category': event.properties.category,
'name': event.properties.name
}] : null}
Use the product ID Reddit expects. In ecommerce, this is often the SKU, GTIN, or variant ID rather than the parent product ID.
Item Count
Map the number of items in the conversion:
{event.properties.item_count ?? event.properties.quantity}
For purchases, item count should reflect the total number of items in the order. For add-to-cart, it should reflect the quantity added.
Conversion ID
Use a unique ID for each conversion:
{event.uuid}
or, if you have a stronger business-level ID:
{event.properties.order_id}
conversion_id matters because Reddit requires deduplication when both Reddit Pixel and Conversions API send the same event. If you are sending the same conversion through both browser and server signals, the conversion ID is the field that helps prevent double counting.
Step 9: Create Separate Mappings for Each Conversion Action
You can usually use one Reddit destination with multiple mappings.
Example structure:
- Mapping 1:
Product Viewed->ViewContent - Mapping 2:
Product Added->AddToCart - Mapping 3:
Order Completed->Purchase - Mapping 4:
Lead Submitted->Lead - Mapping 5:
User Signed Up->SignUp
This keeps the Reddit account connection in one place while allowing each conversion action to have its own filters and metadata.
Step 10: Test the Destination
Before enabling the destination permanently, test it.
In PostHog:
- Use a recent real or test conversion event.
- Run the destination test.
- Check for errors.
- Confirm required fields are present.
- Confirm value and currency are formatted correctly.
- Confirm product fields are valid, if used.
- Confirm
conversion_idis present.
Then verify in Reddit Ads.
Reddit’s documentation lists Events Manager as a verification path for manually triggered events. For Conversions API implementations, Reddit also recommends using reporting endpoints when you need deeper verification.
For a practical first QA pass, check:
- Reddit Events Manager shows activity.
- The expected event type appears.
- Purchase or lead events are not duplicated.
- Event volume roughly matches PostHog.
- Test conversions do not look like production revenue if you used fake values.
Step 11: Enable the Destination
Once the test passes:
- Review all mappings.
- Confirm the destination is filtered to conversion events only.
- Confirm the account ID and access token are correct.
- Confirm deduplication is handled if Reddit Pixel is also installed.
- Click Create & enable.
After enabling, monitor the first few hours or days closely.
Compare:
- PostHog event volume.
- Reddit received event volume.
- Reddit attributed conversion volume.
- Pixel vs CAPI event overlap, if both are active.
You should expect differences between PostHog and Reddit Ads. Not every event will match or attribute the same way. The goal is not a perfect one-to-one report. The goal is cleaner, stronger conversion signals for Reddit.
Common Mistakes to Avoid
Sending every PostHog event to Reddit
Only send conversion events. Reddit Ads does not need your full analytics stream.
Forgetting deduplication
If both Reddit Pixel and Conversions API send the same conversion, you need a stable conversion ID to avoid double counting.
Using the wrong Reddit event type
Map events to standard Reddit types when they fit. Use Purchase for purchases, Lead for lead submissions, and SignUp for signups.
Sending raw or inconsistent user data
Normalize and hash sensitive match fields when appropriate. Keep the same transformation logic across platforms.
Mapping server IPs instead of user IPs
If the event came from a backend system or third-party integration, confirm the IP represents the actual user, not the server.
Missing value and currency
Purchase and revenue events are much more useful when value and currency are included.
Sending parent product IDs when variant IDs are needed
For product-level matching, the ID should represent the item Reddit expects, often the SKU, GTIN, or specific variant ID.
Not checking rdt_cid
If Reddit click IDs are missing from PostHog, attribution quality can suffer. Test a real Reddit ad click path.
Troubleshooting
The destination test fails
Check the account ID, access token, required fields, event type, and expression syntax in PostHog.
Reddit does not show the event
Wait briefly, then check whether PostHog sent the event successfully. Confirm you are looking at the correct Reddit Ads account and event type.
Purchases are duplicated
Check whether the Reddit Pixel and Conversions API are both sending the purchase. Confirm both paths use the same conversion ID for the same transaction.
Match quality is weak
Add more reliable user parameters where available: email, user agent, IP address, external ID, and Reddit click ID.
Values look wrong
Confirm whether PostHog is sending cents or dollars, gross or net revenue, single item price or order total. Normalize the value before sending.
Product data is missing
Inspect the source PostHog event. If product details are not already present in PostHog, the destination cannot create them reliably.
Why This Matters for Reddit Ads Performance
Reddit Ads optimization depends on the conversion signals you send back.
If Reddit only sees weak or incomplete conversion data, it has less context for measurement and campaign learning. If PostHog sends clean conversion events with useful identifiers and metadata, Reddit has a better chance of matching conversions and understanding which traffic produced real outcomes.
This matters most for:
- Lead generation campaigns.
- Ecommerce purchase campaigns.
- Subscription signups.
- App or SaaS trials.
- Product ads.
- Retargeting audiences.
- Cross-platform attribution analysis.
PostHog becomes the source of truth for what happened on your site or app. Reddit receives the conversion events it needs for ad reporting and optimization.
Frequently asked questions
Do I need access to Reddit Ads?
Yes. You need access to the relevant Reddit Ads account, the account ID, and a Conversion Access Token.
Which PostHog events should I send to Reddit?
Send meaningful conversion events such as purchases, leads, signups, add-to-cart events, product views, or other actions that matter to campaign optimization.
Should I send all PostHog events to Reddit?
No. Filter the destination so Reddit only receives conversion events. Sending noisy events can reduce data quality.
What Reddit event types are supported?
Reddit supports eight standard events: PageVisit, ViewContent, Search, AddToCart, AddToWishlist, Purchase, Lead, and SignUp. Custom events can also be passed.
What is rdt_cid?
rdt_cid is the Reddit click ID. It helps connect a conversion event back to a Reddit ad click when the value is captured and preserved.
Do I need conversion_id?
Yes, especially if you use both the Reddit Pixel and Conversions API. A stable conversion ID helps Reddit deduplicate the same conversion across sources.
Should I hash email addresses before sending them?
In most setups, yes. Normalize email addresses to lowercase and hash them with SHA-256 before sending when the destination allows or expects hashed identifiers.
Can I send product data to Reddit?
Yes. For ecommerce and product ads, include product IDs, names, categories, item counts, value, and currency when available.
Why does Reddit show fewer conversions than PostHog?
Reddit and PostHog use different attribution logic, matching rules, windows, and filters. Some difference is normal. Check event delivery, match parameters, click IDs, and attribution settings before assuming tracking is broken.
Can I use custom Reddit conversion events?
Yes. Use custom events when a standard Reddit event does not fit the conversion action, such as DemoBooked or TrialStarted.
How do I verify the setup?
Test the destination in PostHog, check Reddit Events Manager or reporting, and compare event volume against PostHog after enabling.


