# Reddit Ads Reference

## Destination Info

* Supports [Track](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#track) calls
* Supports [HIPAA mode](https://documentation.freshpaint.io/hipaa-mode)
* Refer to this destination as **reddit-ads** in the [Integrations object](https://documentation.freshpaint.io/reference/developer/freshpaint-sdk-reference#using-the-integrations-object)
  * If you've configured multiple Account IDs, you can choose a specific one by suffixing the Account ID, such as: **`reddit-ads::0123456789012345`.** You can retrieve this value from the Reddit Ads configuration page for the Account ID of interest. &#x20;
* Connection Modes:

<table><thead><tr><th width="200.33333333333331" align="right"> </th><th data-type="checkbox">Client-side</th><th data-type="checkbox">Server-side</th></tr></thead><tbody><tr><td align="right">Web</td><td>false</td><td>true</td></tr><tr><td align="right">Mobile</td><td>false</td><td>true</td></tr><tr><td align="right">Server</td><td>false</td><td>true</td></tr></tbody></table>

This is a reference document for the Reddit Ads destination. For information on how to set up this integration, see the [Reddit Ads Quick Start Guide](/integrations/destinations/direct-response-ads/reddit-ads/reddit-ads-quick-start-guide.md).

## Events

When you send an event to the Reddit Ads destination from Freshpaint, Freshpaint will create an event in the Reddit event manager by hitting Reddit Ad's conversions API.

### Conversion Goals

Reddit allows you to optimize ad groups for specific conversion events.&#x20;

The following Freshpaint Events map to Reddit conversion goals:

| Freshpaint Event Name | Reddit Conversion Goal |
| --------------------- | ---------------------- |
| Purchase              | Purchase               |
| Lead                  | Lead                   |
| Signup                | Signup                 |
| Add to Cart           | Add to Cart            |
| Page Visit            | Page Visit             |

Note: Freshpaint normalizes your event name before sending it to Reddit as the `tracking_type`. Variations like `sign_up`, `sign-up`,or `sign up` will all map correctly to `SignUp`. See the Track Events section below for details.

{% hint style="danger" %}
&#x20;**Deprecation Notice:** As of June 1, 2025, Reddit no longer supports optimizing for `Add to Wishlist`, `Search`, or `View Content` conversion goals. You can still send these events through Freshpaint for retargeting and journey insights, but they cannot be selected as a conversion goal in campaign setup.
{% endhint %}

### Track Events

When you send an event to the Reddit Ads destination, you can track conversions from your ads based on those events. Please refer to [Reddit Ads API Conversions documentation](https://ads-api.reddit.com/docs/v2/#tag/Conversions) for further details on which properties are relevant.

In order for an event to be sent to Reddit, it must have either a click ID (`$rdt_cid`), an email (`email`), or all of the properties `$ip` / `$ip_address`, `$user_agent`, `$screen_width`, and `$screen_height`.

Below are the Required, Recommended, and Optional properties which are mapped to the Reddit Ads request:

<table data-header-hidden data-full-width="true"><thead><tr><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Freshpaint property</strong></td><td><strong>Reddit Ads</strong><br><strong>parameter</strong></td><td><strong>Type</strong></td><td><strong>Requirement</strong></td><td><strong>Description</strong></td></tr><tr><td><code>$rdt_cid</code></td><td><code>click_id</code></td><td><code>string</code></td><td>Required</td><td>A query parameter that connects a page view or conversion event to a specific ad, which Freshpaint captures as <code>$rdt_cid</code> </td></tr><tr><td><code>&#x3C;event_name></code></td><td><code>tracking_type</code></td><td><code>string</code></td><td>Required (either <code>tracking_type</code> or <code>custom_event_name</code> is always sent)</td><td> If event name is one of:<br>- <code>PageVisit</code><br>- <code>ViewContent</code><br>- <code>Search</code><br>- <code>AddToCart</code><br>- <code>AddToWishlist</code><br>- <code>Purchase</code><br>- <code>Lead</code><br>- <code>SignUp</code><br>- <code>Custom</code><br>we will use the event name as the tracking_type. We normalize the value before sending to Reddit (for example, <code>page_visit</code> maps to <code>PageVisit</code>)</td></tr><tr><td><code>&#x3C;event_name></code></td><td><code>custom_event_name</code></td><td><code>string</code></td><td>Required (either <code>tracking_type</code> or <code>custom_event_name</code> is always sent)</td><td>If event name is not one of the standard event names described above, we will set <code>tracking_type</code> to <code>Custom</code> and send the <code>&#x3C;event_name></code> as <code>custom_event_name</code></td></tr><tr><td><code>$time</code></td><td><code>event_at_ms</code></td><td><code>number(float)</code></td><td>Required ( always sent)</td><td>This uses a built in prop to send the event time.</td></tr><tr><td><code>test_mode</code></td><td><code>test_mode</code></td><td><code>boolean</code></td><td>Optional</td><td><strong>This test flag is processed by Reddit.</strong> <br><br>It is a flag indicating whether the conversion events should be processed. This can be set to "true" when testing out the API integration and no data will be posted to the account.</td></tr><tr><td><code>item_count</code></td><td><code>event_metadata[item_count]</code></td><td><code>number(int)</code></td><td>Optional</td><td>The number of items in the event.</td></tr><tr><td><code>value</code></td><td><code>event_metadata[value_decimal]</code></td><td><code>number(float)</code></td><td>Optional</td><td>Value of the transaction in the base unit of the currency (eg. 30.12)</td></tr><tr><td><code>currency</code></td><td><code>event_metadata[currency]</code></td><td><code>string</code></td><td>Optional</td><td>Currency for the value provided. Three character ISO 4217 currency code (eg. USD)</td></tr><tr><td><code>products</code></td><td><code>event_metadata[products]</code></td><td><code>array</code></td><td>Optional</td><td><p>Array of products associated with the event. Each product <strong>must</strong> contain at least an <code>id</code> and a <code>category</code>. A <code>name</code> can optionally be included.<br>Example:</p><p><br><code>[{</code></p><p><code>"id": "someId",</code></p><p><code>"category": "someCategory",</code></p><p><code>"name": "someName"</code></p><p><code>}]</code><br></p><p>Any product that doesn't contain at least id and category will be dropped.</p></td></tr><tr><td><code>conversion_id</code></td><td><code>event_metadata[conversion_id]</code></td><td><code>string</code></td><td>Optional</td><td>A unique conversion ID corresponds to a distinct conversion event. This field is used for deduplication and should <strong>only</strong> be used if the Reddit client side Pixel is also running on the website.</td></tr><tr><td><code>reddit_uuid</code></td><td><code>user[uuid]</code></td><td><code>string</code> </td><td>Optional</td><td>The value from the first-party Pixel '_rdt_uuid' cookie on your domain. Note that it is in the '{timestamp}.{uuid}' format. You may use the full value or just the UUID portion. This field may not be relevant if you are not running the Reddit client side Pixel on your website.</td></tr><tr><td><code>email</code></td><td><code>user[email]</code></td><td><code>string</code></td><td>Optional</td><td>The email address of the user. This value will be cleaned and sha256 hashed before being sent to Reddit. For example,<br>A.b+c@domain -> ab@domain -> sha256(ab@domain)</td></tr><tr><td><code>external_id</code></td><td><code>user[external_id]</code></td><td><code>string</code></td><td>Optional</td><td>An advertiser-assigned persistent identifier for the user. This value will be whitespace trimmed, lowercased and sha256 hashed before being sent to Reddit.</td></tr><tr><td><code>$screen_height</code></td><td><code>user[screen_dimensions][height]</code></td><td><code>number(int)</code></td><td>Optional (always sent)</td><td>The height of the user's screen in pixels. This must be positive and less than 32768.</td></tr><tr><td><code>$screen_width</code></td><td><code>user[screen_dimensions][width]</code></td><td><code>number(int)</code></td><td>Optional (always sent)</td><td>The width of the user's screen in pixels. This must be positive and less than 32768.</td></tr><tr><td><code>aaid</code></td><td><code>user[aaid]</code></td><td><code>string</code></td><td>Optional</td><td>The AAID of the user's device. This value will be sha256 hashed before being sent to Reddit.</td></tr><tr><td><code>idfa</code></td><td><code>user[idfa]</code></td><td><code>string</code></td><td>Optional</td><td>The IDFA of the user's device. This value will be sha256 hashed before being sent to Reddit.</td></tr><tr><td><code>$ip</code> / <code>ip_address</code></td><td><code>user[ip_address]</code></td><td><code>string</code></td><td>Optional</td><td>The IP address of the user. This value will be sha256 hashed before being sent to Reddit.<br><br>You can either allow the Freshpaint collected value or send your own using the <code>ip_address</code> prop.</td></tr><tr><td><code>opt_out</code></td><td><code>user[opt_out]</code></td><td><code>boolean</code></td><td>Optional</td><td>A flag indicating whether the user has opted out of tracking. This defaults to <code>false</code> unless otherwise specified</td></tr><tr><td><code>$user_agent /user_agent</code></td><td><code>user[user_agent]</code></td><td><code>string</code></td><td>Optional</td><td>The user agent of the user's browser.<br><br>You can either allow the Freshpaint collected value or send your own using the <code>user_agent</code> prop.</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.freshpaint.io/integrations/destinations/direct-response-ads/reddit-ads/reddit-ads-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
