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_cid first-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:

  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 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 eventReddit event
pagePageVisit
Product ViewedViewContent
Product AddedAddToCart
Order CompletedPurchase

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

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.