Overview
Audience syncs in Hightouch automatically fan out array-valued identifier fields into separate records — one per array element. This allows you to map a column containing multiple identifiers (such as an array of email addresses or mobile advertising IDs) and have each value synced individually to the destination.
This behavior is specific to audience destination syncs (for example, Google Ads Customer Match or Meta Custom Audiences). It requires no configuration — it happens automatically at sync time whenever a mapped identifier field contains an array. For enhanced identity resolution and match rates beyond what your source data provides, see Match Booster.
This is distinct from array expansion, which is a separate feature that explodes array columns at the model query level for non-audience sync types. Audience identifier fan-out is automatic and applies only to identifier fields in audience syncs.
How it works
If your model contains a row with an array-valued identifier field:
| user_id | mobile_ids |
|---|---|
| 123 | ["GAID_1", "GAID_2", "GAID_3"] |
Hightouch sends three separate records to the destination:
| user_id | mobile_ids |
|---|---|
| 123 | GAID_1 |
| 123 | GAID_2 |
| 123 | GAID_3 |
Each array element is synced individually so the destination can match on every identifier. Scalar (non-array) values are unaffected and synced as-is.
Supported destinations
Fan-out works automatically with all audience destinations that support identifier-based matching, including:
- Google Ads (Customer Match)
- Meta (Custom Audiences)
- Snapchat (Customer List)
- TikTok (Audience)
- Google Display & Video 360
- Bing/Microsoft Ads (Customer Match)
- Reddit Ads
- The Trade Desk
- Pinterest Ads
- LinkedIn (Matched Audiences)
- Twitter/X
- Amazon Ads
- Criteo
- Yahoo Ads
- Taboola
This list is not exhaustive — any audience destination in Hightouch that accepts identifier fields supports fan-out.
Requirements
- The source column must be a true array type, not a JSON string. For example, Snowflake
ARRAY, BigQueryARRAY<STRING>, or Postgrestext[]/jsonbarrays all work. - A string like
'["id1","id2"]'stored asVARCHARwill not be fanned out. If your data is stored this way, use a SQL transformation (e.g.,PARSE_JSON()in Snowflake) to convert it to a native array before syncing.
Fan-out increases the number of API requests sent to the destination. If your arrays are large, this may affect sync duration.
Linked identifier fields
When multiple identifier fields are mapped (for example, first name and last name), Hightouch preserves the association between values at the same array index. For independent fields like email and mobile ID, all combinations are sent to maximize match rates.
Related features
- Match Booster — Enrich your audience data with additional identifiers to improve match rates across audience destinations.