Data Subject Request API Version 1 and 2
Data Subject Request API Version 3
Key Management
Platform API Overview
Accounts
Apps
Audiences
Calculated Attributes
Data Points
Feeds
Field Transformations
Services
Users
Workspaces
Warehouse Sync API Overview
Warehouse Sync API Tutorial
Warehouse Sync API Reference
Data Mapping
Warehouse Sync SQL Reference
Warehouse Sync Troubleshooting Guide
ComposeID
Warehouse Sync API v2 Migration
Bulk Profile Deletion API Reference
Custom Access Roles API
Calculated Attributes Seeding API
Group Identity API Reference
Data Planning API
Pixel Service
Profile API
Events API
mParticle JSON Schema Reference
IDSync
Initialization
Configuration
Network Security Configuration
Event Tracking
User Attributes
IDSync
Screen Events
Commerce Events
Location Tracking
Media
Kits
Application State and Session Management
Data Privacy Controls
Error Tracking
Opt Out
Push Notifications
WebView Integration
Logger
Preventing Blocked HTTP Traffic with CNAME
Workspace Switching
Linting Data Plans
Troubleshooting the Android SDK
API Reference
Upgrade to Version 5
AMP SDK
Cordova Plugin
Identity
Direct URL Routing FAQ
Web
Android
iOS
Workspace Switching
Initialization
Configuration
Event Tracking
User Attributes
IDSync
Screen Tracking
Commerce Events
Location Tracking
Media
Kits
Application State and Session Management
Data Privacy Controls
Error Tracking
Opt Out
Push Notifications
Webview Integration
Upload Frequency
App Extensions
Preventing Blocked HTTP Traffic with CNAME
Linting Data Plans
Troubleshooting iOS SDK
Social Networks
iOS 14 Guide
iOS 15 FAQ
iOS 16 FAQ
iOS 17 FAQ
iOS 18 FAQ
API Reference
Upgrade to Version 7
Getting Started
Identity
Upload Frequency
Getting Started
Opt Out
Initialize the SDK
Event Tracking
Commerce Tracking
Error Tracking
Screen Tracking
Identity
Location Tracking
Session Management
Initialization
Content Security Policy
Configuration
Event Tracking
User Attributes
IDSync
Page View Tracking
Commerce Events
Location Tracking
Media
Kits
Application State and Session Management
Data Privacy Controls
Error Tracking
Opt Out
Custom Logger
Persistence
Native Web Views
Self-Hosting
Multiple Instances
Web SDK via Google Tag Manager
Preventing Blocked HTTP Traffic with CNAME
Facebook Instant Articles
Troubleshooting the Web SDK
Browser Compatibility
Linting Data Plans
API Reference
Upgrade to Version 2 of the SDK
Getting Started
Identity
Alexa
Overview
Step 1. Create an input
Step 2. Verify your input
Step 3. Set up your output
Step 4. Create a connection
Step 5. Verify your connection
Step 6. Track events
Step 7. Track user data
Step 8. Create a data plan
Step 9. Test your local app
Overview
Step 1. Create an input
Step 2. Verify your input
Step 3. Set up your output
Step 4. Create a connection
Step 5. Verify your connection
Step 6. Track events
Step 7. Track user data
Step 8. Create a data plan
Step 1. Create an input
Step 2. Create an output
Step 3. Verify output
Node SDK
Go SDK
Python SDK
Ruby SDK
Java SDK
Introduction
Outbound Integrations
Firehose Java SDK
Inbound Integrations
Compose ID
Data Hosting Locations
Glossary
Migrate from Segment to mParticle
Migrate from Segment to Client-side mParticle
Migrate from Segment to Server-side mParticle
Segment-to-mParticle Migration Reference
Rules Developer Guide
API Credential Management
The Developer's Guided Journey to mParticle
Composable Audiences (Early Access)
Overview
Overview
User Profiles
Overview
Create and Manage Group Definitions
Calculated Attributes Overview
Using Calculated Attributes
Create with AI Assistance
Calculated Attributes Reference
What are predictive attributes?
Create an Input
Start capturing data
Connect an Event Output
Create an Audience
Connect an Audience Output
Transform and Enhance Your Data
Usage and Billing Report
The new mParticle Experience
The Overview Map
Observability Overview
Observability User Guide
Observability Troubleshooting Examples
Observability Span Glossary
Key Management
Event Forwarding
Notification Center (Early Access)
System Alerts
Trends
Introduction
Data Retention
Data Catalog
Connections
Activity
Data Plans
Live Stream
Filters
Rules
Blocked Data Backfill Guide
Tiered Events
mParticle Users and Roles
Analytics Free Trial
Troubleshooting mParticle
Usage metering for value-based pricing (VBP)
IDSync Overview
Use Cases for IDSync
Components of IDSync
Store and Organize User Data
Identify Users
Default IDSync Configuration
Profile Conversion Strategy
Profile Link Strategy
Profile Isolation Strategy
Best Match Strategy
Aliasing
Standard Audiences (Legacy)
Predictive Audiences Overview
Using Predictive Audiences
New vs. Classic Experience Comparison
Introduction
Core Analytics (Beta)
Sync and Activate Analytics User Segments in mParticle
User Segment Activation
Welcome Page Announcements
Project Settings
Roles and Teammates
Organization Settings
Global Project Filters
Portfolio Analytics
Analytics Data Manager Overview
Events
Event Properties
User Properties
Revenue Mapping
Export Data
UTM Guide
Analyses Introduction
Getting Started
Visualization Options
For Clauses
Date Range and Time Settings
Calculator
Numerical Settings
Assisted Analysis
Properties Explorer
Frequency in Segmentation
Trends in Segmentation
Did [not] Perform Clauses
Cumulative vs. Non-Cumulative Analysis in Segmentation
Total Count of vs. Users Who Performed
Save Your Segmentation Analysis
Export Results in Segmentation
Explore Users from Segmentation
Getting Started with Funnels
Group By Settings
Conversion Window
Tracking Properties
Date Range and Time Settings
Visualization Options
Interpreting a Funnel Analysis
Group By
Filters
Conversion over Time
Conversion Order
Trends
Funnel Direction
Multi-path Funnels
Analyze as Cohort from Funnel
Save a Funnel Analysis
Explore Users from a Funnel
Export Results from a Funnel
Saved Analyses
Manage Analyses in Dashboards
Data Dictionary
Query Builder Overview
Modify Filters With And/Or Clauses
Query-time Sampling
Query Notes
Filter Where Clauses
Event vs. User Properties
Group By Clauses
Annotations
Cross-tool Compatibility
Apply All for Filter Where Clauses
Date Range and Time Settings Overview
User Attributes at Event Time
Understanding the Screen View Event
User Aliasing
Dashboards––Getting Started
Manage Dashboards
Dashboard Filters
Organize Dashboards
Scheduled Reports
Favorites
Time and Interval Settings in Dashboards
Query Notes in Dashboards
The Demo Environment
Keyboard Shortcuts
User Segments
Data Privacy Controls
Data Subject Requests
Default Service Limits
Feeds
Cross-Account Audience Sharing
Approved Sub-Processors
Import Data with CSV Files
CSV File Reference
Glossary
Video Index
Single Sign-On (SSO)
Setup Examples
Introduction
Introduction
Introduction
Rudderstack
Google Tag Manager
Segment
Advanced Data Warehouse Settings
AWS Kinesis (Snowplow)
AWS Redshift (Define Your Own Schema)
AWS S3 Integration (Define Your Own Schema)
AWS S3 (Snowplow Schema)
BigQuery (Snowplow Schema)
BigQuery Firebase Schema
BigQuery (Define Your Own Schema)
GCP BigQuery Export
Snowflake (Snowplow Schema)
Snowplow Schema Overview
Snowflake (Define Your Own Schema)
Aliasing
Event
Audience
Event
Audience
Feed
Event
Audience
Cookie Sync
Server-to-Server Events
Platform SDK Events
Audience
Audience
Audience
Feed
Event
Event
Event
Audience
Event
Data Warehouse
Event
Event
Event
Audience
Event
Feed
Event
Event
Event
Event
Event
Event
Audience
Event
Event
Feed
Event
Event
Audience
Feed
Event
Event
Event
Custom Feed
Data Warehouse
Event
Audience
Event
Audience
Audience
Event
Audience
Event
Event
Event
Event
Event
Audience
Audience
Event
Audience
Data Warehouse
Event
Event
Event
Event
Event
Cookie Sync
Audience
Event
Event
Event
Feed
Feed
Event
Event
Kit
Event
Audience
Event
Event
Audience
Event
Event
Event
Feed
Audience
Event
Audience
Event
Event
Audience
Audience
Audience
Audience
Event
Audience
Event
Event
Event
Event
Feed
Event
Event
Event
Event
Event
Feed
Audience
Event
Event
Event
Event
Event
Event
Event
Event
Feed
Event
Event
Event
Custom Pixel
Feed
Event
Event
Event
Event
Event
Audience
Event
Event
Data Warehouse
Event
Audience
Event
Audience
Event
Feed
Loyalty Feed
Audience
Audience
Event
Audience
Audience
Cookie Sync
Audience
Event
Feed
Audience
Event
Event
Audience
Audience
Event
Event
Event
Event
Audience
Cookie Sync
Cookie Sync
Audience
Feed
Audience
Event
With mParticle’s Composable Audiences feature, you can create dynamic user segments using data stored directly in your data warehouse. This approach enables you to leverage rich, custom attributes and events that are maintained in your own systems without needing to copy data.
By querying your warehouse directly, you can ensure that audiences are built on the most up-to-date and complete picture of your users, all while eliminating data duplication and minimizing operational overhead.
Creating a composable audience happens in two stages:
You connect mParticle to your warehouse and identify what data to use.
You create an audience based on your data models.
When a composable audience initializes, mParticle translates your audience definition (the criteria that determine which users should be included in the audience) into a SQL query. This query is then executed directly within your data warehouse using your warehouse’s compute resources.
The SQL query returns a list of users and (optional) attributes that make up the audience at that particular point in time. This data is stored in a temporary table in your data warehouse that is provisioned for internal processing only. These datasets are not part of your production tables and are only used by mParticle to track audience membership over time. These additional datasets are automatically managed and cleaned up by mParticle.
mParticle pulls the users and any optional attribute data from your warehouse before forwarding them to your connected downstream integration.
When you create a composable audience, you specify the cadence at which it refreshes. Note that composable audiences can’t be refreshed in real-time.
Composable Audiences operates independently of mParticle’s identity resolution framework (IDSync). No user profile enrichment or merging takes place. Audience membership is based solely on the logic provided in the SQL query and the structure of the source data. This makes the feature highly transparent and deterministic, giving you full control over how your audiences are built and updated. It also means that the records in your data warehouse must include some form of user identifier (like a user ID or customer ID) that can be used when determining audience membership.
mParticle only stores data about your warehouse that’s needed to create and activate composable audiences, including:
No other data is stored in mParticle beyond these items.
Composable Audiences does not modify your user profiles in any way.
A future release will add the ability to optionally have composable audience membership reflected on user profiles.
To improve performance, mParticle only tracks changes in audience membership (specifically, the users who have been added to or removed from the audience) rather than recomputing the full list each time. The first time the audience is executed, the entire set of qualifying users is returned. For subsequent runs, mParticle compares the new audience snapshot with the previous one to determine which users have been added or dropped.
This “diff-ing” logic happens entirely within the data warehouse environment. Two snapshots of the audience (previous and current) are compared using SQL, and only the incremental changes are passed back into mParticle for forwarding to downstream integrations. This approach ensures both scalability and efficiency in audience refresh cycles.
While support for this functionality is planned for a future release, you can’t currently clone audiences comprising data stored in the mParticle CDP from a composable audience, nor can you reference audiences built with mParticle data from a composable audience using the isMemberOf()
function (or vice versa).
This guide walks you through connecting your data warehouse, creating data models, and building your first composable audience.
In the “How would you like to connect your Data Warehouse?” modal, select Use data directly from your Data Warehouse.
Click Create and Continue.
Click Done to create the service account.
Keep this file secure - you’ll need to upload it in the form on the left.
Click Done.
Provide a Storage Integration Name, and use the Username and Role for the mParticle service user you created.
CREATE OR REPLACE STORAGE INTEGRATION mp_[your_name]
WITH TYPE = EXTERNAL_STAGE
STORAGE_PROVIDER = 'S3'
ENABLED = TRUE
STORAGE_AWS_ROLE_ARN = "arn:aws:iam::[your_value]"
STORAGE_AWS_OBJECT_ACL = "bucket-owner-full-control"
STORAGE_ALLOWED_LOCATIONS = ("s3://[your_value]");`
GRANT USAGE ON INTEGRATION your_name TO ROLE [your_role];
Create a schema named “MPARTICLE” in your Snowflake database and grant the service user read/write access. This is used to track audience membership over time and is automatically managed by mParticle.
CREATE SCHEMA IF NOT EXISTS "MPARTICLE";
GRANT USAGE ON SCHEMA "MPARTICLE" TO ROLE [your role];
GRANT CREATE TABLE ON SCHEMA "MPARTICLE" TO ROLE [your role];
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA "MPARTICLE" TO ROLE [your role];
GRANT SELECT, INSERT, UPDATE, DELETE ON FUTURE TABLES IN SCHEMA "MPARTICLE" TO ROLE [your role]
Grant the role access to any schemas and tables in your database that will be used build audiences.
GRANT USAGE ON SCHEMA [your database]."[your schema]" TO ROLE [your role];
CREATE OR REPLACE STORAGE INTEGRATION mp_[your_name]
WITH TYPE = EXTERNAL_STAGE
STORAGE_PROVIDER = 'S3'
ENABLED = TRUE
STORAGE_AWS_ROLE_ARN = "arn:aws:iam::[your_value]"
STORAGE_AWS_OBJECT_ACL = "bucket-owner-full-control"
STORAGE_ALLOWED_LOCATIONS = ("s3://[your_value]");
Your data model specifies the exact data from your warehouse that you’ll create your audiences from. To create a data model, select one of the following Model Types, and follow the specific instructions for that type.
User data models
Event data models
General data models
User data models define the core user dataset that Composable Audiences use for segmentation, so you must create a user data model in order to create a composable audience. Like all data models, they’re built from a SQL query that selects user records and attributes from your warehouse, with a required primary ID column to uniquely identify each user. This model forms the base for all audiences and can be linked to other models, like events or subscriptions, for richer targeting.
Enter the SQL that will be executed against your warehouse. Because data models are defined using SQL, you can use features like joins, filters, grouping, and case statements to target the exact data you want to build your audiences with. This determines which fields and records are made available for targeting.
Name your model for easy reference, and choose a primary ID column (e.g., user_id
, customer_id
) to identify users in the data.
Creating mappings is an optional step that helps you control how your warehouse data is interpreted and used within mParticle and by downstream partners. For example, you can specify whether a column should be treated as a user attribute or event attribute, and assign a more readable display name for use in the audience builder. This makes your data easier to work with, especially for team members who aren’t familiar with the raw schema used in your warehouse.
For each column returned by your query, review the data type mParticle detects and update it if you want mParticle to interpret it a different way.
Creating relationships between data model types helps you build more advanced audiences by combining different kinds of data. For example, linking a user data model with event data lets you target users who meet specific profile criteria and have performed certain actions. This also keeps your data models modular, making them easier to reuse across different audience definitions.
Event Data Models capture timestamped user actions (like logins, purchases, or conversions) that can be used to refine or enrich your audience definitions. These models pull event-level data from your warehouse and can be linked to user data models through a shared user ID. These relationships allow you to build audiences based on specific behaviors or activity patterns over time.
To create an event data model:
Write the SQL query that selects the event data you want to use for audience segmentation.
After writing your query, give the model a clear name so it’s easy to reference when building audiences.
Review the columns returned by your query and update the detected data types if needed.
General data models are a flexible, catch-all option for data that doesn’t neatly fit into user or event categories (like subscriptions, device types, or other contextual attributes). Like other models, general data models are defined using SQL and can be linked to user models to enrich audience criteria.
To create a General Data Model in the mParticle UI, follow these steps:
Write the SQL query that selects the dataset you want to use to enrich audience segmentation.
After defining your query, name the model for easy identification.
Once you’ve defined your data models, you’re ready to create an audience. You’ll choose the data model to base your audience on, set criteria for segmentation, and schedule regular audience refreshes to ensure your segments stay current. After your audience is created, you can activate it across your marketing platforms and monitor its performance.
To create your audience:
Define audience criteria based on the imported fields from your model.
Once your audience is created, you can:
No, composable audiences run on a scheduled refresh cadence. They are not designed for real-time updates. You define the refresh schedule when creating the audience.
No. The first time your audience runs, mParticle ingests the full list of qualifying users. On subsequent runs, only users who have been added or removed are ingested.
No. Composable Audiences does not modify user profiles or interact with identity resolution (IDSync). A future release will allow you to opt in to reflecting audience membership on profiles.
No. Native audiences (audiences built using data stored in mParticle) and composable audiences are separate features and cannot be cloned across types.
If you update a data model’s SQL, any audiences built on that model will reflect the new structure the next time they refresh. You should verify that the model still returns the expected fields and structure.
For composable audiences, the audience size preview reflects actual user counts based on your current criteria.
You can use user data, timestamped event data (like purchases or logins), and general contextual data (like device types or subscription plans). Each is configured using a SQL query.
Was this page helpful?