> ## 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.

# Exposure Log Matching overview

> Match impression and click logs from your ad platforms to your own customer or household IDs, and receive them in your warehouse every day.

> [!NOTE]
>
> Exposure Log Matching is available to [Match Booster](https://docs.hightouch.com/match-booster/overview) customers and must be enabled by Hightouch. [Contact us](#pylon-chat) to turn it on.

## Overview

Ad platforms record every impression and click your campaigns generate. These exposure logs include details such as the campaign, the publisher, the creative, and where the ad appeared.

Ad platforms key exposure logs to identifiers such as UID2s, mobile device IDs, and hashed PII. Those identifiers often don't appear in your customer records, so the logs are hard to join to the rest of your data.

Exposure Log Matching matches the identifiers in each log to the identifiers mapped in your model's Match Booster configuration. Each matched row gets a hashed version of your model's primary key, such as a customer ID or household ID. Hightouch then writes the matched logs to your warehouse, where you can analyze ad exposure alongside purchases, loyalty status, and the rest of your customer data.

## How to set up Exposure Log Matching

You request a log feed from your ad platform and send setup details to Hightouch. Hightouch configures matching and starts delivery. Each delivery covers one finished UTC day and usually arrives the following UTC day. You then add the matched logs to your Customer Studio schema or query them directly.

See [Set up Exposure Log Matching](https://docs.hightouch.com/exposure-log-matching/setup.md) for the step-by-step walkthrough.

## Supported platforms

| Platform | Logs | Feeds | Delivery |
| - | - | - | - |
| [The Trade Desk](https://docs.hightouch.com/exposure-log-matching/platforms/the-trade-desk.md) | REDS (Raw Event Data Stream) | Impressions, clicks | Daily |

Each platform page lists the identifiers its logs contain, what to request from the platform, regional availability, and any limits. To match logs from more than one platform, set up each one separately.

## How matching works

1. Your ad platform sends exposure logs to Hightouch.
2. Hightouch matches the identifiers in each log to the identifiers mapped in your model's Match Booster configuration.
3. Hightouch also matches identifiers your model doesn't contain, such as mobile device IDs and UID2s, through the Match Booster identity graph.
4. When a platform links one feed to another, such as a click to the impression it came from, the linked row gets the same ID.
5. Hightouch redacts identifiers it can't share with you, then writes every row to your warehouse.

Each row matches at most one record in the model you choose. The `ID` column holds the SHA-256 hex digest of that record's primary key, cast to text, not the key itself. To get household-level results, choose a model whose primary key is a household ID. If you turn on [household targeting](https://docs.hightouch.com/match-booster/targeting-levels.md) in Match Booster, identity graph matching uses household-level identifiers.

Rows that don't match stay in the output with an empty `ID`.

### Identifiers Hightouch uses

Hightouch reads the columns mapped to these types in your model's [Match Booster configuration](https://docs.hightouch.com/match-booster/configure-model.md):

| Column type | Accepted formats |
| - | - |
| Email | Plaintext email address |
| Email SHA256 | SHA-256 digest in hex or base64 encoding |
| Phone | E.164; 11 digits starting with 1; or a 10-digit US number |
| Phone SHA256 | SHA-256 digest of an E.164 number in hex or base64 encoding |
| Mobile ID | Mobile device ID |

Map at least one of these types. Matching fails when the model has none.

Hightouch removes spaces, parentheses, dots, and hyphens from phone numbers before matching. It skips values that don't fit an accepted format, so check your columns if match rates are lower than expected.

Hightouch leaves an identifier unmatched when it belongs to more than four records in your model, because a widely shared identifier, such as a household phone, can't point to one customer.

## Use cases

| Use case | Example |
| - | - |
| Reach and frequency | See how many loyalty members saw a campaign, and how often each one saw it. |
| Frequency capping | Cap ad exposure by customer or household instead of by device. |
| Attribution | Match impressions and clicks to purchases and other customer events to build attribution models. |
| Incrementality | Create a holdout group with [Experiments](https://docs.hightouch.com/customer-studio/experiments.md), then compare sales from exposed and unexposed customers. |
| Exposure-based retargeting | Build an audience of customers who clicked an ad but didn't buy, and sync it back to your ad platform. |
| Performance by segment | Compare campaign results by LTV tier, region, or membership status. |
| Agent analysis | Ask an [agent](https://docs.hightouch.com/agents/overview) which customer segments respond best to each campaign, or how frequency affects conversion. |

## Data storage and privacy

Hightouch processes your exposure logs to match them. The matched logs you query live in your warehouse.

* **Every row is kept.** Hightouch delivers every row the ad platform sends. It doesn't filter or sample logs.
* **Some identifiers are redacted.** Hightouch replaces identifiers you don't have permission to view with the word `REDACTED`. Device ID and cookie values stay on rows that are unmatched or matched from your own data. Every other identifier value, including UID2s, is redacted. Your platform's page lists the exact columns.
* **Hightouch keeps recent matched output.** Hightouch keeps the matched output for recent days outside your warehouse, about a week by default, so it can link clicks to the previous day's impressions. It doesn't keep raw logs: each run reads them again from the ad platform's storage.
* **Raw logs stay with the ad platform.** Raw logs remain in storage the ad platform owns, for the period listed on each platform page.
* **Matched logs stay in your warehouse.** Matched logs land in the Match Booster schema in your warehouse and remain there until you delete them. See [Exposure Log Matching output reference](https://docs.hightouch.com/exposure-log-matching/output-reference.md) for where Hightouch writes them.

See [Match Booster data storage and privacy](https://docs.hightouch.com/match-booster/overview#data-storage-and-privacy) for how Hightouch handles its identity graph.

## Next steps

* [Set up Exposure Log Matching](https://docs.hightouch.com/exposure-log-matching/setup.md) to request a feed and add the matched logs to your schema.
* [Exposure Log Matching output reference](https://docs.hightouch.com/exposure-log-matching/output-reference.md) for the tables, views, and columns Hightouch writes.
