Reddit Ads
Send conversion events to Reddit via the Conversions API for campaign attribution, audience measurement, and ad delivery optimisation.
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 Identity Hub. |
When a rdt_cid is available in the Identity Hub, 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:
_df.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.
Event Mapping
| Datafly Event | Reddit Event | Key Properties |
|---|---|---|
Order Completed | Purchase | order_id, value, currency, products[] |
Product Added | AddToCart | product_id, value, currency |
Lead Generated | Lead | lead_id, value |
Signed Up | SignUp | user_id |
Page Viewed | PageVisit | page_url |
Product Viewed | ViewContent | product_id, category |
Search | Search | search_query |
Example: Purchase Event
Datafly.js call:
_df.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.