---
title: Reddit Ads
description: Connect Reddit Ads, understand its sync behavior, and query every table and column it writes.
species: reference
---
# Reddit Ads

Connect Reddit Ads with OAuth using your app credentials plus an advertiser id. The source writes 6 fixed tables under `titan.reddit_ads`.
```sql
select
  id,
  name,
  account_id
from titan.reddit_ads.campaigns
limit 10
```

## Connect Reddit Ads

1. Open **Apps**, choose **Connect app**, and select **Reddit Ads**.
2. Enter OAuth using your app credentials plus an advertiser id.
3. Review the tables, then save the source.
4. Watch **Sync history** until the first run completes.

Credentials are stored as secrets. They never become lake columns or appear in query results.

## Sync behavior

Choose the initial history window during setup. Entity and metric tables remain scoped to the advertiser.

A new source syncs when you connect it and then follows its schedule. The default recurring interval is 4 hours. An interrupted run keeps its completed progress and retries safely.

Every lake table also has the [system columns](/v2/docs/concepts/your-lake#the-system-columns) `_synced_at` and `_deleted`; the column reference below lists source columns only.

## Table reference

### `campaigns`

`titan.reddit_ads.campaigns` has 7 source columns.

```columns table=reddit_ads.campaigns
id                                      string pk           Source field `id`.
name                                    string              Source field `name`.
account_id                              string              Source field `accountId`.
status                                  string              Source field `status`.
objective                               string              Source field `objective`.
created_at                              datetime            Source field `createdAt`.
updated_at                              datetime            Source field `updatedAt`.
```

### `ad_groups`

`titan.reddit_ads.ad_groups` has 7 source columns.

```columns table=reddit_ads.ad_groups
id                                      string pk           Source field `id`.
campaign_id                             string              Source field `campaignId`.
name                                    string              Source field `name`.
status                                  string              Source field `status`.
targeting_criteria                      json                Source field `targetingCriteria`.
created_at                              datetime            Source field `createdAt`.
updated_at                              datetime            Source field `updatedAt`.
```

### `ads`

`titan.reddit_ads.ads` has 6 source columns.

```columns table=reddit_ads.ads
id                                      string pk           Source field `id`.
ad_group_id                             string              Source field `adGroupId`.
name                                    string              Source field `name`.
status                                  string              Source field `status`.
created_at                              datetime            Source field `createdAt`.
updated_at                              datetime            Source field `updatedAt`.
```

### `campaign_metrics`

`titan.reddit_ads.campaign_metrics` has 8 source columns.

```columns table=reddit_ads.campaign_metrics
campaign_id                             string pk           Source field `campaignId`.
date                                    date pk             Source field `date`.
impressions                             integer             Source field `impressions`.
clicks                                  integer             Source field `clicks`.
spend                                   float               Source field `spend`.
ecpm                                    float               Source field `ecpm`.
cpc                                     float               Source field `cpc`.
ctr                                     float               Source field `ctr`.
```

### `ad_group_metrics`

`titan.reddit_ads.ad_group_metrics` has 8 source columns.

```columns table=reddit_ads.ad_group_metrics
ad_group_id                             string pk           Source field `adGroupId`.
date                                    date pk             Source field `date`.
impressions                             integer             Source field `impressions`.
clicks                                  integer             Source field `clicks`.
spend                                   float               Source field `spend`.
ecpm                                    float               Source field `ecpm`.
cpc                                     float               Source field `cpc`.
ctr                                     float               Source field `ctr`.
```

### `ad_metrics`

`titan.reddit_ads.ad_metrics` has 8 source columns.

```columns table=reddit_ads.ad_metrics
ad_id                                   string pk           Source field `adId`.
date                                    date pk             Source field `date`.
impressions                             integer             Source field `impressions`.
clicks                                  integer             Source field `clicks`.
spend                                   float               Source field `spend`.
ecpm                                    float               Source field `ecpm`.
cpc                                     float               Source field `cpc`.
ctr                                     float               Source field `ctr`.
```

## Deletes and history

Rows are merged by their source key. When the source can prove that a row was deleted, Supernova keeps the row and sets `_deleted` so queries can choose whether to include history. Filter current-state queries with `where not _deleted`.
