Reddit Ads
Send conversion events to Reddit via the Conversions API for campaign attribution, audience measurement, and ad delivery optimisation.
Why route Reddit Ads through Datafly Signal
- Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions Reddit Ads optimises against are not filtered by the browser.
- Email is hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so Reddit Ads receives match keys rather than raw personal data.
- Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Reddit Ads needs to attribute the event to the right session.
- Click identifiers are captured and replayed. Signal stores
click_id,rdt_cidfirst-party at collection time and attaches them to the conversion later, so attribution survives even when the original landing cookie has expired. - Delivery is batched, rate-limited, and retried. Signal buffers to Kafka, respects the Reddit Ads rate limit, and retries on 429 or transient failure rather than dropping the event.
- Presets for Retail and Automotive. The mapping starts from a working configuration for your vertical instead of a blank field map.
- One consent decision governs every destination. Reddit Ads is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
- No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.
Prerequisites
Complete these steps in Reddit Ads Manager before configuring the integration in Signal.
Create a Reddit Ads Account
Sign up or log in at ads.reddit.com. You will need a Reddit account and a valid payment method to create an advertising account.
Create a Reddit Pixel
Navigate to Events Manager > Set up Reddit Pixel. Click Set up pixel and give it a descriptive name. Reddit will generate a Pixel ID — note this value for the Signal configuration.
The Reddit Pixel is required even when using the Conversions API (server-side). The Pixel ID links your server-side events to the correct Reddit advertising account.
Choose Conversions API Setup Method
In the pixel setup flow, select Conversions API as your integration method. Reddit will present setup instructions — you can skip these since Signal handles the server-side delivery.
Generate an Access Token
Go to the Reddit for Business API portal and follow the instructions to generate a Conversions API access token:
- Navigate to Events Manager > Conversions API.
- Click Generate Token.
- Copy the token and store it securely — it provides write access to your conversion data.
Store your access token securely. It grants full write access to your Reddit conversion events. Rotate tokens periodically and revoke any compromised tokens immediately via Events Manager.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
account_id | string | Yes | Your Reddit Ads account ID. Found in Reddit Ads Manager under Account Settings. |
pixel_id | string | Yes | Your Reddit Pixel ID. Found in Reddit Ads Manager under Events Manager > Pixel Setup. |
access_token | secret | Yes | Reddit Ads Conversions API access token. Generated in Events Manager > Conversions API. |
Configure in Signal
Management UI
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find Reddit Ads or filter by Advertising.
- Enter your
account_id,pixel_id, andaccess_token. - Click Install Integration to create the integration with a ready-to-use default configuration.
Management API
curl -X POST http://localhost:8084/v1/admin/integration-catalog/reddit/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Reddit Ads",
"variant": "default",
"config": {
"account_id": "t2_abc123",
"pixel_id": "t2_pixel_abc123",
"access_token": "eyJhbGciOi..."
},
"delivery_mode": "server_side"
}'Identity Signals
Reddit uses a click ID to attribute conversions back to specific ad clicks.
| Vendor ID | Description | How to Capture |
|---|---|---|
rdt_cid | Reddit click ID | Automatically appended to landing page URLs when a user clicks a Reddit ad. Signal’s JS collector captures this from the URL query parameter and stores it in the Signal identity store. |
When a rdt_cid is available in the Signal identity store, Signal automatically includes it in outbound events to Reddit. This provides deterministic click-through attribution.
// The rdt_cid is captured automatically from URL parameters.
// You can also pass it explicitly if needed:
datafly.identify({ rdt_cid: "abc123-click-id" });For best attribution results, ensure your Reddit ad click URLs include the rdt_cid parameter. Reddit appends this automatically when using their standard ad formats.
API endpoint
POST https://ads-api.reddit.com/api/v2.0/conversions/events/{{pixel_id}}Allow egress to ads-api.reddit.com from the network your delivery workers run on.
Event Mapping
The default Retail preset maps:
| Signal event | Reddit event |
|---|---|
page | PageVisit |
Product Viewed | ViewContent |
Product Added | AddToCart |
Order Completed | Purchase |
To customise or extend, edit the integration’s Field Mappings in the Management UI.
Example: Purchase Event
Datafly.js call:
datafly.track("Order Completed", {
order_id: "ORD-001",
total: 79.99,
currency: "USD",
products: [
{ product_id: "SKU-A", name: "Widget", quantity: 2, price: 39.99 }
]
});Reddit Conversions API payload sent by Signal:
{
"test_mode": false,
"events": [
{
"event_at": "2026-03-24T12:00:00Z",
"event_type": {
"tracking_type": "Purchase"
},
"event_metadata": {
"item_count": 2,
"currency": "USD",
"value_decimal": 79.99,
"conversion_id": "ORD-001"
},
"user": {
"click_id": "abc123-click-id",
"ip_address": "203.0.113.50",
"user_agent": "Mozilla/5.0 ..."
},
"products": [
{
"id": "SKU-A",
"name": "Widget",
"category": "",
"price": 39.99
}
]
}
]
}Testing
Enable Test Mode
Reddit’s Conversions API supports a test mode. Set test_mode: true in the integration’s advanced configuration to send events without affecting campaign reporting.
Send a Test Event
Use the Datafly.js snippet on a test page to fire a Purchase or PageVisit event.
Verify in Signal
Open the Live Events view in the Management UI. Confirm the event appears and is routed to the Reddit Ads integration.
Verify in Reddit Ads Manager
In Reddit Ads Manager, navigate to Events Manager > Event Overview. Check the event log for your test events. Test mode events are flagged separately and do not affect campaign metrics.
Switch to Production
Once verified, remove the test_mode flag (or set it to false) to begin sending production conversion data.
Troubleshooting
| Symptom | Cause | Resolution |
|---|---|---|
401 Unauthorized | Invalid or expired access token | Regenerate the access token in Reddit Events Manager > Conversions API. |
403 Forbidden | Token lacks required permissions | Ensure the token was generated with Conversions API scope. Regenerate if needed. |
| Events not appearing in Reddit | Incorrect pixel_id | Verify the Pixel ID matches the pixel shown in Reddit Events Manager. |
| Low attribution rates | Missing rdt_cid | Ensure Reddit ad click URLs pass the rdt_cid parameter and that Signal’s JS collector captures it from URL query parameters. |
400 Bad Request | Malformed event payload | Check the Delivery Log in Signal for detailed error messages. Verify event properties match Reddit’s expected schema. |
| Duplicate events | Missing conversion_id | Ensure a unique order_id or event identifier is included. Reddit uses conversion_id for deduplication. |
| Test events affecting reports | test_mode not enabled | Set test_mode: true in the integration’s advanced configuration during testing. |
Delivery
Events are delivered server-side from your Datafly Signal infrastructure directly to the Reddit Conversions API. No client-side scripts are loaded for this integration.
Visit Reddit Conversions API documentation for full API reference and setup instructions.