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:

  1. Navigate to Events Manager > Conversions API.
  2. Click Generate Token.
  3. 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

FieldTypeRequiredDescription
account_idstringYesYour Reddit Ads account ID. Found in Reddit Ads Manager under Account Settings.
pixel_idstringYesYour Reddit Pixel ID. Found in Reddit Ads Manager under Events Manager > Pixel Setup.
access_tokensecretYesReddit Ads Conversions API access token. Generated in Events Manager > Conversions API.

Configure in Signal

Management UI

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Reddit Ads or filter by Advertising.
  4. Enter your account_id, pixel_id, and access_token.
  5. 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 IDDescriptionHow to Capture
rdt_cidReddit click IDAutomatically 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 EventReddit EventKey Properties
Order CompletedPurchaseorder_id, value, currency, products[]
Product AddedAddToCartproduct_id, value, currency
Lead GeneratedLeadlead_id, value
Signed UpSignUpuser_id
Page ViewedPageVisitpage_url
Product ViewedViewContentproduct_id, category
SearchSearchsearch_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

SymptomCauseResolution
401 UnauthorizedInvalid or expired access tokenRegenerate the access token in Reddit Events Manager > Conversions API.
403 ForbiddenToken lacks required permissionsEnsure the token was generated with Conversions API scope. Regenerate if needed.
Events not appearing in RedditIncorrect pixel_idVerify the Pixel ID matches the pixel shown in Reddit Events Manager.
Low attribution ratesMissing rdt_cidEnsure Reddit ad click URLs pass the rdt_cid parameter and that Signal’s JS collector captures it from URL query parameters.
400 Bad RequestMalformed event payloadCheck the Delivery Log in Signal for detailed error messages. Verify event properties match Reddit’s expected schema.
Duplicate eventsMissing conversion_idEnsure a unique order_id or event identifier is included. Reddit uses conversion_id for deduplication.
Test events affecting reportstest_mode not enabledSet 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.