> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data extraction

> Data extraction writes audience data from your ad platforms back to your warehouse, so you can query and report on it alongside the rest of your data.

> [!NOTE]
>
> Data extraction must be enabled by Hightouch. [Contact us](#pylon-chat) to turn it on.

## Before you begin

* A [Lightning sync engine](https://docs.hightouch.com/syncs/lightning-sync-engine.md) source on Snowflake, BigQuery, Postgres, or Microsoft Fabric, plus a connected [supported ad destination](#supported-destinations).

## What data extraction does

Ad platforms hold audience metadata — such as the estimated size of each audience — that otherwise lives only in the platform's own UI. Data extraction pulls that metadata on a daily schedule and writes it to your warehouse. From there, you can join it to your other data, track it over time, and report on it.

Today it produces one report: the **Audience size report**, a daily snapshot of each audience's estimated size in the ad platform.

![Data extraction outline](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/syncs/data-extraction-outline.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=233ba31ae7d51b62fe9fa1a02c69bd94)

## Enable data extraction

Data extraction is configured per destination.

1. Go to the destination's page and open the **Data extraction** tab.
2. Turn on **Enable data extraction**.
3. Under **Which data system should we send this data to?**, select the source Hightouch writes the report to. Hightouch writes to the `hightouch_audit` schema in that source.

The **Audience size report** is selected automatically, since it's the only report available. After you enable extraction, the status shows **Pending** until the first run, and the report runs once a day.

![The Data extraction tab configured for a Google Ads destination](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/syncs/data-extraction-configured.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=18b187f6f481ffa757acd9c995deb520)

The source you choose must be on the [Lightning sync engine](https://docs.hightouch.com/syncs/lightning-sync-engine.md), which gives Hightouch write-back access to your warehouse, and must be Snowflake, BigQuery, Postgres, or Microsoft Fabric. Sources that don't meet both conditions don't appear in the list.

## What lands in your warehouse

Hightouch writes to the `hightouch_audit` schema in the source you selected.

### Per-destination tables

Each enabled destination gets its own table, named `{destination_type}_{destination_id}_audiences`. Dashes in the destination type become underscores, so a Google Ads destination writes to `google_ads_{id}_audiences`. Each table's columns mirror the ad platform's API response as closely as possible, so you can transform the data to fit your needs.

### Combined view

Hightouch also builds a view, `external_audiences_metadata_v1`, that unions every destination table into one standardized schema:

| Column | Description |
| - | - |
| `ad_account_id` | The ad account the audience belongs to. |
| `audience_id` | The audience's ID in the ad platform. |
| `audience_name` | The audience's name in the ad platform. |
| `audience_size` | The estimated audience size at the time of the snapshot. |
| `ht_fetched_at` | When Hightouch fetched the snapshot. |
| `ht_destination` | The Hightouch destination type. |
| `ht_destination_id` | The Hightouch destination ID. |
| `ht_sync_id` | The Hightouch sync feeding the audience, or `null` when no sync feeds it. |

The view is versioned. Schema changes ship as a new version, such as `external_audiences_metadata_v2`, and earlier versions keep working.

## How the daily job behaves

* Hightouch runs one job per enabled destination, once a day.
* Each job pulls every audience from the ad accounts the connected user authorized — not only the audiences Hightouch syncs to.
* Each run appends a new snapshot. Hightouch doesn't update or delete earlier snapshots, so the tables build a historical record over time.

## Verify it worked

After the first daily run, query the combined view in the source you selected:

```sql theme={null}
select * from hightouch_audit.external_audiences_metadata_v1
order by ht_fetched_at desc;
```

You should see one row per audience per snapshot, with a recent `ht_fetched_at`.

## Supported destinations

* [Amazon Ads DSP](https://docs.hightouch.com/destinations/amazon-ads.md)
* [Meta Custom Audiences](https://docs.hightouch.com/destinations/facebook.md)
* [Google Ads](https://docs.hightouch.com/destinations/google.md)
* [Microsoft Bing Ads Audiences](https://docs.hightouch.com/destinations/bingads.md)
* [Snapchat](https://docs.hightouch.com/destinations/snapchat.md)
* [TikTok](https://docs.hightouch.com/destinations/tiktok.md)

## Limitations

* The only available report is the Audience size report.
* Audience sizes are the ad platform's estimates, not exact counts.
* The report runs once a day.
