Developers
API References
Data Subject Request API

Data Subject Request API Version 1 and 2

Data Subject Request API Version 3

Platform API

Key Management

Platform API Overview

Accounts

Apps

Audiences

Calculated Attributes

Data Points

Feeds

Field Transformations

Services

Users

Workspaces

Warehouse Sync API

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

Audit Logs API

Bulk Profile Deletion API Reference

Calculated Attributes Seeding API

Custom Access Roles API

Pixel Service

Profile API

Data Planning API

Group Identity API Reference

Events API

mParticle JSON Schema Reference

IDSync

Client SDKs
AMP

AMP SDK

Android

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

Direct Url Routing

Direct URL Routing FAQ

Web

Android

iOS

Flutter

Getting Started

Usage

API Reference

Cordova

Cordova Plugin

Identity

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

React Native

Getting Started

Identity

Roku

Getting Started

Identity

Media

Unity

Upload Frequency

Getting Started

Opt Out

Initialize the SDK

Event Tracking

Commerce Tracking

Error Tracking

Screen Tracking

Identity

Location Tracking

Session Management

Xbox

Getting Started

Identity

Xamarin

Getting Started

Identity

Web

Initialization

Configuration

Content Security Policy

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

Alexa

Quickstart
Android

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

HTTP Quick Start

Step 1. Create an input

Step 2. Create an output

Step 3. Verify output

Java Quick Start

Step 1. Create an input

Step 2. Create an output

Step 3. Verify output

iOS Quick Start

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

Node Quick Start

Step 1. Create an input

Step 2. Create an output

Step 3. Verify output

Python Quick Start

Step 1. Create an input

Step 2. Create an output

Step 3. Verify output

Web

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

Server SDKs

Node SDK

Go SDK

Python SDK

Ruby SDK

Java SDK

Media SDKs

Android

iOS

Web

Tools

mParticle Command Line Interface

Linting Tools

Smartype

Guides
Partners

Introduction

Outbound Integrations

Outbound Integrations

Firehose Java SDK

Inbound Integrations

Kit Integrations

Overview

Android Kit Integration

JavaScript Kit Integration

iOS Kit Integration

Compose ID

Glossary

Migrate from Segment to mParticle

Migrate from Segment to mParticle

Migrate from Segment to Client-side mParticle

Migrate from Segment to Server-side mParticle

Segment-to-mParticle Migration Reference

Data Hosting Locations

Rules Developer Guide

API Credential Management

The Developer's Guided Journey to mParticle

Guides
Composable Audiences

Composable Audiences Overview

User Guide

User Guide Overview

Warehouse Setup

Warehouse Setup Overview

Connections

Connections Overview

Google BigQuery

Databricks

Amazon Redshift

Snowflake

Data Models

Data Models Overview

Create a User Data Model

Create an Event Data Model

Create a Generic Data Model

Audience Setup

Frequently Asked Questions

Customer 360

Overview

User Profiles

Overview

User Profiles

Group Identity

Overview

Create and Manage Group Definitions

Calculated Attributes

Calculated Attributes Overview

Using Calculated Attributes

Create with AI Assistance

Calculated Attributes Reference

Predictions

Predictions Overview

Predictions

View and Manage Predictions

Predict Future Behavior

Future Behavior Predictions Overview

Create Future Behavior Prediction

Manage Future Behavior Predictions

Create an Audience with Future Behavior Predictions

Next Best Action

Next Best Actions Overview

Create a Next Best Action

Manage Next Best Actions

Create an Audience with Next Best Actions

New Predictions (Early Access)

What's Changed in the New Predictions UI

View and Manage Predictions

Predict Future Behavior

Future Behavior Predictions Overview

Create Future Behavior Prediction

Manage Future Behavior Predictions

Create an Audience with Future Behavior Predictions

Next Best Action

Next Best Actions Overview

Create a Next Best Action

Manage Next Best Actions

Create an Audience with Next Best Actions

Find Similar Customers

Similar Customer Predictions Overview

Create Similar Customer Prediction

Manage Similar Customer Predictions

Build an Audience with Similar Customer Predictions

Identity Dashboard (Early Access)

Getting Started

Create an Input

Start capturing data

Connect an Event Output

Create an Audience

Connect an Audience Output

Transform and Enhance Your Data

Platform Guide
Billing

Usage and Billing Report

The New mParticle Experience

The new mParticle Experience

The Overview Map

Observability

Observability Overview

Observability User Guide

Observability Troubleshooting Examples

Observability Span Glossary

Platform Settings

Audit Logs

Platform Configuration

Key Management

Event Forwarding

Event Match Quality Dashboard

Trends

System Alerts

Notifications

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

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

Segmentation
Audiences

Audiences Overview

Create an Audience

Connect an Audience

Manage Audiences

Audience Sharing

Audience Expansion

Inclusive & Exclusive Audiences (Early Access)

Inclusive & Exclusive Audiences Overview

Using Logic Blocks in Audiences

Combining Inclusive and Exclusive Audiences

Inclusive & Exclusive Audiences FAQ

Match Boost

FAQ

Classic Audiences

Standard Audiences (Legacy)

Predictive Audiences

Predictive Audiences Overview

Using Predictive Audiences

New vs. Classic Experience Comparison

Analytics

Introduction

Core Analytics (Beta)

Setup

Sync and Activate Analytics User Segments in mParticle

User Segment Activation

Welcome Page Announcements

Settings

Project Settings

Roles and Teammates

Organization Settings

Global Project Filters

Portfolio Analytics

Analytics Data Manager

Analytics Data Manager Overview

Events

Event Properties

User Properties

Revenue Mapping

Export Data

UTM Guide

Analyses

Analyses Introduction

Segmentation: Basics

Getting Started

Visualization Options

For Clauses

Date Range and Time Settings

Calculator

Numerical Settings

Segmentation: Advanced

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

Funnels: Basics

Getting Started with Funnels

Group By Settings

Conversion Window

Tracking Properties

Date Range and Time Settings

Visualization Options

Interpreting a Funnel Analysis

Funnels: Advanced

Group By

Filters

Conversion over Time

Conversion Order

Trends

Funnel Direction

Multi-path Funnels

Analyze as Cohort from Funnel

Save a Funnel Analysis

Export Results from a Funnel

Explore Users from a Funnel

Cohorts

Getting Started with Cohorts

Analysis Modes

Save a Cohort Analysis

Export Results

Explore Users

Saved Analyses

Manage Analyses in Dashboards

Journeys

Getting Started

Event Menu

Visualization

Ending Event

Save a Journey Analysis

Users

Getting Started

User Activity Timelines

Time Settings

Export Results

Save A User Analysis

Query Builder

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

Dashboards––Getting Started

Manage Dashboards

Organize Dashboards

Dashboard Filters

Scheduled Reports

Favorites

Time and Interval Settings in Dashboards

Query Notes in Dashboards

Analytics Resources

The Demo Environment

Keyboard Shortcuts

User Segments

Tutorials

Analytics for Marketers

Analytics for Product Managers

Compare Conversion Across Acquisition Sources

Analyze Product Feature Usage

Identify Points of User Friction

Time-based Subscription Analysis

Dashboard Tips and Tricks

Understand Product Stickiness

Optimize User Flow with A/B Testing

APIs

User Segments Export API

Dashboard Filter API

Warehouse Sync

Warehouse Sync User Guide

Historical Data and Warehouse Sync

Data Privacy Controls

Data Subject Requests

Default Service Limits

Feeds

Cross-Account Audience Sharing

Import Data with CSV Files

Import Data with CSV Files

CSV File Reference

Glossary

Video Index

Analytics (Deprecated)
Identity Providers

Single Sign-On (SSO)

Setup Examples

Settings

Debug Console

Data Warehouse Delay Alerting

Introduction

Developer Docs

Introduction

Integrations

Introduction

Rudderstack

Google Tag Manager

Segment

Data Warehouses and Data Lakes

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)

APIs

Dashboard Filter API (Deprecated)

REST API

User Segments Export API (Deprecated)

SDKs

SDKs Introduction

React Native

iOS

Android

Java

JavaScript

Python

Object API

Developer Basics

Aliasing

Integrations
Aarki

Audience

ABTasty

Audience

Actable

Feed

AdChemix

Event

24i

Event

Adjust

Event

Feed

Adikteev

Audience

Event

AdMedia

Audience

Adobe Marketing Cloud

Cookie Sync

Server-to-Server Events

Platform SDK Events

Adobe Audience Manager

Audience

Adobe Target

Audience

Adobe Campaign Manager

Audience

AdPredictive

Feed

Airship

Audience

Feed

Event

Adobe Experience Platform

Event

AgilOne

Event

Amazon Kinesis

Event

Amazon Kinesis Firehose

Audience

Event

Amazon Redshift

Data Warehouse

Amazon SNS

Event

Amazon Advertising

Audience

Amazon S3

Event

Amazon SQS

Event

Amobee

Audience

Ampush

Audience

Event

Analytics

Event

Forwarding Data Subject Requests

Audience

Amplitude

Forwarding Data Subject Requests

Event

Anodot

Event

Antavo

Feed

AppsFlyer

Feed

Forwarding Data Subject Requests

Event

AppLovin

Audience

Event

Apptimize

Event

Apptentive

Event

Attentive

Feed

Event

Apteligent

Event

Batch

Event

Audience

Microsoft Azure Blob Storage

Event

Awin

Event

Bidease

Audience

Bing Ads

Event

Blueshift

Event

Feed

Forwarding Data Subject Requests

Bluedot

Feed

Branch

Event

Feed

Forwarding Data Subject Requests

Bluecore

Event

Branch S2S Event

Event

Braze

Audience

Forwarding Data Subject Requests

Feed

Event

Button

Audience

Event

Bugsnag

Event

Cadent

Audience

Census

Feed

comScore

Event

Conversant

Event

Cordial

Audience

Feed

Cortex

Event

Forwarding Data Subject Requests

Feed

Criteo

Audience

Event

CleverTap

Event

Feed

Audience

Crossing Minds

Event

Custom Feed

Custom Feed

CustomerGlu

Feed

Event

Customer.io

Audience

Event

Feed

Databricks

Data Warehouse

Datadog

Event

Didomi

Event

Dynamic Yield

Event

Audience

Eagle Eye

Audience

Edge226

Audience

Emarsys

Audience

Epsilon

Event

Facebook

Audience

Event

Everflow

Audience

Flurry

Event

Google Analytics for Firebase

Event

Facebook Offline Conversions

Event

ForeSee

Event

Flybits

Event

Foursquare

Feed

Audience

FreeWheel Data Suite

Audience

Friendbuy

Event

Google Ads

Audience

Event

Google Ad Manager

Audience

Google Analytics

Event

Google Analytics 4

Event

Google Cloud Storage

Event

Audience

Google BigQuery

Audience

Data Warehouse

Google Enhanced Conversions

Event

Google Marketing Platform

Audience

Cookie Sync

Event

Google Marketing Platform Offline Conversions

Event

Google Tag Manager

Event

Heap

Event

Google Pub/Sub

Event

Herow

Feed

Hightouch

Feed

Hyperlocology

Event

Ibotta

Event

ID5

Kit

Impact

Event

InMobi

Audience

Event

Inspectlet

Event

Insider

Event

Feed

Audience

Intercom

Event

ironSource

Audience

iPost

Audience

Feed

Iterable

Audience

Feed

Event

Jampp

Audience

Event

Kafka

Event

Kayzen

Audience

Event

Algolia

Event

Kissmetrics

Event

Kochava

Forwarding Data Subject Requests

Feed

Event

Klaviyo

Event

Audience

InMarket

Audience

LaunchDarkly

Feed

Kubit

Event

Leanplum

Audience

Feed

Event

LifeStreet

Audience

Liftoff

Audience

Event

LinkedIn

Audience

LinkedIn Conversions API Integration

Liveramp

Audience

LiveLike

Event

MadHive

Audience

mAdme Technologies

Event

Mailchimp

Audience

Event

Feed

Marigold

Audience

Mautic

Event

Audience

MediaMath

Audience

Localytics

Event

Mediasmart

Audience

Microsoft Ads

Microsoft Ads Audience Integration

Microsoft Azure Event Hubs

Event

Mixpanel

Audience

Forwarding Data Subject Requests

Event

Mintegral

Audience

MoEngage

Audience

Event

Feed

Monetate

Event

Moloco

Audience

Event

Movable Ink

Event

Movable Ink - V2

Event

Multiplied

Event

myTarget

Audience

Event

Nami ML

Feed

Nanigans

Event

Narrative

Audience

Feed

Event

NCR Aloha

Event

Neura

Event

OneTrust

Event

Oracle BlueKai

Event

Optimizely

Audience

Event

Paytronix

Feed

Oracle Responsys

Audience

Event

Persona.ly

Audience

Personify XP

Event

Pilgrim

Event

Feed

PieEye

Inbound Data Subject Requests

Pinterest

Audience

Event

Plarin

Event

Postie

Audience

Event

Primer

Event

Punchh

Audience

Event

Feed

Pushwoosh

Audience

Event

Qualtrics

Event

Quantcast

Event

Radar

Event

Feed

Rakuten

Event

Remerge

Audience

Event

Retina AI

Event

Feed

Reveal Mobile

Event

RevenueCat

Feed

Rokt

Audience

Rokt Thanks and Pay+

Event

RTB House

Audience

Event

Sailthru

Audience

Event

Salesforce Email

Feed

Event

Audience

Salesforce Sales and Service Cloud

Event

Feed

Salesforce Mobile Push

Event

Scalarr

Event

Samba TV

Audience

Event

SendGrid

Feed

Audience

SessionM

Feed

Event

Shopify

Feed

Custom Pixel

ShareThis

Audience

Feed

SimpleReach

Event

Singular

Feed

Event

Skyhook

Event

Singular-DEPRECATED

Event

Slack

Event

Smadex

Audience

SmarterHQ

Event

Snapchat

Audience

Event

Snapchat Conversions

Event

Snowflake

Data Warehouse

Snowplow

Event

Split

Event

Feed

Splunk MINT

Event

Sprig

Audience

Event

StartApp

Audience

Statsig

Event

Feed

Stormly

Audience

Event

Swrve

Event

Feed

Talon.One

Audience

Loyalty Feed

Event

Feed

Tapad

Audience

Tapjoy

Audience

Taplytics

Event

Teak

Audience

Taptica

Audience

The Trade Desk

Cookie Sync

Event

Audience

Ticketure

Feed

TikTok Event

Audience

Audience (Deprecated)

Audience Migration

Event

Treasure Data

Audience

Event

Triton Digital

Audience

TUNE

Event

Twitter

Event

Audience

Valid

Event

Vkontakte

Audience

Voucherify

Audience

Event

Vungle

Audience

Webhook

Event

Webtrends

Event

White Label Loyalty

Event

Wootric

Event

Xandr

Cookie Sync

Audience

Yahoo (formerly Verizon Media)

Cookie Sync

Audience

Yotpo

Feed

YouAppi

Audience

Z2A Digital

Event

Audience

Zendesk

Feed

Event

Reddit

Audience

Event

Regal

Event

Combining Inclusive and Exclusive Audiences

Following is a realistic scenario in which logic blocks are used to create a complex audience group that contains both inclusive and exclusive audiences. Combining inclusive and exclusive audiences using logic blocks is useful when you want inclusive behavior at one level and exclusive behavior inside nested logic blocks. This is most helpful when:

  • You want users to belong to multiple high level cohorts, such as genres or product lines, while still assigning them to a single sub audience inside each cohort.
  • You are running several overlapping campaigns inside a cohort and want that flexibility, while keeping certain dimensions, like subscription tier, mutually exclusive.

Use this approach when you want to treat some cohorts as inclusive for targeting and personalization, while still enforcing exclusivity for certain audiences that should never overlap, such as subscription level.

Before continuing, make sure you understand what logic blocks are and how they create exclusivity between audiences as described in the Overview.

Example: Genre-Based Audiences with Subscription Tiers

As an example, imagine you run the marketing campaigns for a streaming service and want to build audiences based on the genres viewers watch and their subscription tier.

Viewers should be added to multiple genre-specific audiences (like Comedy and Drama) based on their viewing behavior. However, within each genre, a viewer should only be added to a single subscription tier audience: either Basic Subscribers or Premium Subscribers.

Business Scenario

The streaming service wants to:

  • Send genre-specific content recommendations to viewers based on their viewing habits
  • Target different subscription tiers with appropriate offers (upgrade offers for Basic, exclusive content for Premium)
  • Ensure viewers receive multiple genre recommendations if they watch multiple genres
  • Prevent viewers from being in both Basic and Premium audiences for the same genre

Expected Behavior

After completing this example:

  • A viewer who watches Comedy and Drama will be in both Comedy Viewers and Drama Viewers (inclusive)
  • Within Comedy Viewers, the viewer will be in either Comedy: Basic Subscribers OR Comedy: Premium Subscribers (exclusive)
  • A Premium subscriber who watches multiple genres will appear in multiple Premium audiences (Comedy: Premium, Drama: Premium, etc.)

Step 1: Create the audience group

First, create your audience group:

  1. In the left navigation, navigate to Segmentation > Audiences.
  2. Click New Audience, enter a descriptive name for the audience group, like “Movie Viewers”, and select the data inputs needed to provide the user and event data that the audiences will be built from.
  3. Click Create.

Step 2: Create the genre audiences

  1. After creating the audience group, you are automatically taken to the Audience Builder. Here, you can create your first genre-based audience.
  2. Note that the audience name is automatically populated with the name of your audience group. Replace this with the name of your first genre-based audience, like “Comedy Viewers”.
  3. Add the necessary event or user-based membership criteria to collect all users who have viewed a comedy movie. For example: Users who watched a comedy movie in the last 30 days.
  1. Using the Add path button, create the three remaining genre-based audiences: Drama Viewers, Horror Viewers, and Romantic Comedy Viewers. Each of these audiences should be a direct child of the audience group inputs.

As soon as you add the second genre-based audience (Drama Viewers), a logic block will be drawn around your two audiences. As you continue to add your genre audiences, they are automatically added to this same logic block. This allows for inclusivity between audiences: a viewer who watches both comedy and drama will be added to both Comedy Viewers and Drama Viewers.

Audience Group Editor showing four genre audiences in one logic block

Step 3: Add subscription tier audiences for each genre

Next, you will create two subscription tier audiences under each genre: one for Basic Subscribers and one for Premium Subscribers.

  1. Click the + button beneath the Comedy Viewers audience and click Audience.

Add audience button beneath Comedy Viewers

  1. Select Start from Scratch and click Next.
  2. Enter a name, like “Comedy: Basic Subscribers”, and enter your membership criteria. For example: Users where subscription-tier is basic.
  3. Using the Add path button beneath the Comedy Viewers audience, create another audience for your premium subscribers. Note that both subscription tier audiences are contained in a new logic block called Block 1. To prevent overlap between these two audiences, we need to create a new logic block.

Two subscription audiences in the same block

  1. Click the action menu icon on Comedy: Basic Subscribers, and select Move.

Action menu on Comedy: Basic Subscribers

  1. This opens the Move Audience window where we can create a new logic block. Select Create New Logic Block and accept the suggested name: “Comedy: Basic Subscribers”.

Creating new logic block for Basic Subscribers

  1. Click Create and Move to create a new logic block named “Comedy: Basic Subscribers” and move your audience into this block. Now, you will see two logic blocks, one titled Block 1 and the new logic block titled “Comedy: Basic Subscribers”. We can rename Block 1 to something more descriptive by clicking the three-dot action menu icon next to the block title and clicking Edit Logic & Priority.

Edit Logic & Priority menu option

  1. In the Update Logic Blocks window, enter a more descriptive name for Block 1, like “Comedy: Premium Subscribers”. This window also allows you to modify the priority for your logic blocks. Since we only need two logic blocks to separate our viewers into subscription tiers, the block priority won’t impact our audiences. In more complex cases the block priority determines which block’s audiences a user is added to when they qualify for more than one, with higher priority blocks being assessed first.

Renaming Block 1 to Comedy: Premium Subscribers

  1. Now, the Comedy Viewers audience has two child audiences: Comedy: Premium Subscribers and Comedy: Basic Subscribers. These two audiences are exclusive: members of Comedy Viewers will be separated into each audience according to their subscription, with no overlap between the two.

Comedy Viewers with two exclusive subscription tier blocks

Repeat this process to create Premium and Basic Subscriber audiences for each of the remaining genres: Drama, Horror, and Romantic Comedy.

For each genre:

  1. Create two subscription tier audiences (Basic and Premium) as children of the genre audience
  2. Move one of them into a new logic block
  3. Rename the logic blocks appropriately

Your final structure should look like this:

Complete audience group with all genres and subscription tiers

Understanding Exclusivity Between Logic Blocks

It’s important to remember that logic blocks are only exclusive relative to other sibling logic blocks under the same parent audience. In other words, Comedy: Premium Subscribers and Comedy: Basic Subscribers will never share users.

However, if a user has a basic subscription and watches both comedy and drama, they will appear in both the Comedy: Basic Subscribers and Drama: Basic Subscribers audiences.

Step 4: Validate your audience configuration

You can use Audience Preview to validate your audience configuration:

  • Users who watch multiple genres should appear in the audience for each genre they watch, such as Comedy Viewers and Drama Viewers.
  • Within a single genre, a viewer should only be added to either the Basic or Premium subscription audience, never both at the same time.
  • A premium subscriber who watches multiple genres should appear in multiple Premium subscriber genre audiences, such as Comedy: Premium Subscribers and Drama: Premium Subscribers.

Additional Patterns

The genre + subscription tier pattern demonstrated in this example can be applied to many other scenarios:

Product Lines + Customer Segments

Create inclusive audiences for different product lines (Electronics, Home Goods, Apparel) with exclusive customer segments within each line (New Customers, VIP Customers, At-Risk Customers).

Use case: Send product-specific promotions while ensuring customers only receive messaging appropriate to their current lifecycle stage for each product line.

Geographic Regions + Offer Types

Create inclusive audiences for different geographic regions (Northeast, Southeast, Midwest) with exclusive offer types within each region (Standard Offer, Premium Offer, Limited-Time Offer).

Use case: Run region-specific campaigns while controlling which offer each user receives based on priority rules within their region.

Campaign Types + User Lifecycle Stages

Create inclusive audiences for different campaign types (Email Campaign, Push Campaign, In-App Campaign) with exclusive lifecycle stages within each type (Active, Dormant, Churned).

Use case: Run multiple campaign types simultaneously while ensuring users only receive messaging appropriate to their current lifecycle stage for each campaign type.

Troubleshooting

Users Appearing in Multiple Exclusive Audiences

If a user appears in multiple audiences that should be exclusive:

  • Verify the audiences are in separate logic blocks under the same parent
  • Check the block priority order—the user may qualify for multiple blocks and is being added to the highest priority one
  • Confirm the parent audience is the same for both logic blocks

Users Not Appearing in Expected Audiences

If a user is missing from an expected audience:

  • Verify the user meets all criteria for the audience
  • Check if a higher-priority sibling logic block is capturing the user first
  • Review the audience’s environment settings (Production vs. Development)
  • Confirm the audience has been activated or calculated

Logic Block Not Appearing

If logic blocks are not visible in the Audience Group Editor:

  • Ensure you have created at least two sibling audiences using the Add path button
  • Confirm you are viewing the Audience Group Editor, not an individual Audience Builder
  • Check that you are viewing an audience group, not a single audience from the Audiences landing page

Was this page helpful?

    Last Updated: February 25, 2026