Audiences
Audiences let you define user segments using a visual rule builder. Vendo generates a targeted user list from your BigQuery data and syncs it to ad platforms (Customer Match, Custom Audiences) and messaging tools (OneSignal, Klaviyo, Customer.io).
Creating an Audience
- Navigate to Models and click New Model
- Select Audience from the template gallery
- Choose a source table — the BigQuery table containing your user data
- Define identity fields — map columns to PII types (email, phone, etc.)
- Add rules to filter which users are included
- Save the audience
Source Table
Select any BigQuery table that contains user-level data. Common choices:
| Table | Use Case |
|---|---|
customers | Shopify customer profiles |
orders | Users who made purchases (join with customer data) |
customer_segments | Output from a Python segmentation model |
customer_ltv | Output from a SQL model with LTV scores |
Identity Fields
Identity fields map your table columns to standard PII types. Destinations use these for user matching:
| PII Type | Description | Example Column |
|---|---|---|
| Customer email address | email | |
| Phone | Phone number | phone |
| First Name | First name | first_name |
| Last Name | Last name | last_name |
Values are hashed (SHA-256) before being sent to ad platforms that require it (Google Ads, Meta Ads, etc.).
Rules
Rules filter which users from the source table are included in the audience. Each rule has three parts:
| Part | Description | Example |
|---|---|---|
| Field | Column name from the source table | order_count |
| Operator | Comparison operator | >= |
| Value | Target value | 3 |
Supported Operators
| Operator | Description |
|---|---|
= | Equals |
!= | Not equals |
> | Greater than |
>= | Greater than or equal |
< | Less than |
<= | Less than or equal |
in | Value is in list |
not_in | Value is not in list |
is_null | Value is null |
is_not_null | Value is not null |
contains | String contains substring |
not_contains | String does not contain substring |
Combining Rules
Multiple rules are combined with AND logic — all rules must match for a user to be included.
Example: High-value repeat customers
| Rule | Field | Operator | Value |
|---|---|---|---|
| 1 | order_count | >= | 3 |
| 2 | total_spent | > | 100 |
| 3 | marketing_state | = | opted_in |
Syncing to Destinations
Audiences can be synced to these destination types:
| Destination | Sync Type |
|---|---|
| Google Ads | Customer Match lists |
| Meta Ads | Custom Audiences |
| TikTok Ads | Custom Audiences |
| Snap Ads | Customer List audiences |
| Microsoft Ads | Customer Match lists |
| OneSignal | Segments |
| Klaviyo | Lists |
| Customer.io | Segments |
From the audience detail page, click Sync to Destination to set up the connection.
How It Works
- Vendo translates your rules into a BigQuery SQL query
- The query runs against your source table and returns matching users
- Identity fields are extracted and hashed where required
- The user list is sent to the destination via its API
- On each sync, the list is refreshed — users who no longer match are removed
Best Practices
- Start broad, then narrow — begin with fewer rules and add more as you validate
- Use modeled tables — build a SQL or Python model first, then create an audience on its output for cleaner segmentation
- Monitor audience size — very small audiences may not be useful for ad targeting
- Keep identity fields consistent — use the same email/phone format across sources
Related
- Models Overview
- SQL Models — Create the source table for your audience
- Python Models — Build advanced segments with ML
- Attribution Models — Understand which touchpoints drive conversions