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

Inclusive & Exclusive Audiences FAQ

What’s new in Inclusive & Exclusive Audiences?

Inclusive & Exclusive Audiences adds support for both inclusive and exclusive audience membership. In the current version of Audiences, all audiences are exclusive by default, meaning users can belong to only one audience within a group. The Early Access release adds the option to make audiences inclusive within a single logic block, allowing users to belong to multiple audiences at the same time if they meet the criteria for each.

This update also introduces logic blocks, which give you the ability to control when audiences should be inclusive and when they should remain exclusive. The addition of logic blocks makes audiences more flexible and allows you to mirror real marketing and lifecycle strategies more closely within mParticle.

What are inclusive audiences?

Inclusive audiences let users be added to more than one audience within the same logic block. This approach is useful when you want to target overlapping behaviors or attributes, such as reaching users who have both viewed a product and made a purchase. By using inclusivity, you can combine multiple behavioral or contextual audiences without worrying about them canceling each other out.

Inclusive audiences help you deliver more personalized messaging and run cross-channel or cross-offer campaigns efficiently. For example, if a user qualifies for both “High Intent” and “Email Engaged” audiences within the same logic block, they will appear in both. This ensures that they can receive communications tied to both engagement patterns.

What are logic blocks?

Logic blocks are containers that control how audiences relate to one another inside an audience group. They do not change who qualifies for an audience. Instead, they control which audiences a user is added to when they qualify for more than one.

Within a single logic block, audiences are inclusive. If a user qualifies for several audiences in the same block, the user is added to all of them. This is useful when you want overlapping audiences, such as multiple behavior-based segments that can all apply at once.

Logic blocks are exclusive relative to other logic blocks that share the same parent audience. If a user qualifies for audiences in more than one of these sibling blocks, they are only added to audiences from the highest priority block. Logic blocks under different parent audiences do not compete with each other, so a user can still belong to audiences in logic blocks under multiple parents.

You can also nest logic blocks to apply this pattern at more than one level. For example, you might use top-level blocks to keep lifecycle stages exclusive, then use nested blocks inside each stage to manage overlapping offer or behavior audiences.

How does exclusivity work?

Exclusivity applies across logic blocks that are children of the same parent audience.

A group of sibling logic blocks under one parent represents a mutually exclusive set of audiences. When a user qualifies for audiences in more than one of these blocks, they are added only to audiences in the highest priority block according to the block order you define.

This setup helps you maintain clean audience boundaries. It is particularly useful for lifecycle, funnel, or testing workflows where users should only belong to one stage or group at a time. For example, if you have blocks for “New Users,” “Active Users,” and “Lapsed Users,” exclusivity ensures that no user appears in more than one at once.

Why did we change Audiences?

Logic blocks provide more flexibility and better reflect how teams manage audiences in real-world scenarios. Many use cases require some audiences to overlap, such as when running multi-offer or cross-sell campaigns, while others require strict exclusivity, such as A/B testing or funnel progression.

By introducing logic blocks and supporting both inclusive and exclusive audiences, mParticle allows you to control both types of behavior within the same framework. This approach simplifies configuration, reduces errors, and improves your ability to manage complex audiences at scale.

Can I still use the GA version?

Yes. The generally available version of Audiences continues to function as it always has. Only a limited set of customers have access to Inclusive & Exclusive Audiences. If an mParticle workspace does not include logic blocks, audiences remain exclusive by default.

Where can I share feedback?

If you’re part of the Early Access program, your feedback helps shape the final release of Inclusive & Exclusive Audiences. To share comments, suggestions, or issues, contact your mParticle account representative or customer success manager. You can also submit feedback directly through your mParticle workspace if that option has been enabled for your account.

How do I create a logic block?

Logic blocks are created automatically when you add a second sibling audience using the Add path button. To create additional logic blocks and separate audiences, use the Move action on an audience and select Create New Logic Block.

For detailed instructions, see Creating and Managing Logic Blocks.

Can I change the priority of logic blocks?

Yes. Logic block priority determines which block users are added to when they qualify for audiences in multiple sibling blocks. To change block priority, click the action menu on a logic block and select Edit Logic & Priority. You can then drag blocks to reorder them or use the arrow icon to increase a block’s priority.

For detailed instructions, see Change a Logic Block’s Name and Priority.

What happens if a user qualifies for audiences in multiple logic blocks?

If a user qualifies for audiences in multiple sibling logic blocks under the same parent, they are added only to audiences in the highest priority block. Logic blocks are evaluated in priority order (highest to lowest, displayed left to right in the Audience Group Editor), and the user is added to the first block where they meet the criteria.

Can audiences in different logic blocks under different parents share users?

Yes. Logic blocks are only exclusive relative to other sibling logic blocks under the same immediate parent. If logic blocks are under different parent audiences, they can share users.

For example, if you have “Comedy: Basic Subscribers” under “Comedy Viewers” and “Drama: Basic Subscribers” under “Drama Viewers,” the same user can appear in both audiences because the logic blocks have different parents.

What is a remaining users logic block?

A remaining users logic block is a special block that automatically collects all users who do not meet the criteria for any other block. This ensures that all users in your dataset are accounted for, even if they do not currently qualify for any explicitly defined audiences.

To create a remaining users logic block, click the path icon and select Add Remaining Users Split. The remaining users block always has the lowest priority and cannot be reprioritized.

Can I delete a logic block?

You cannot directly delete a logic block. However, if you move or delete all audiences within a logic block, the block is automatically deleted. Logic blocks only exist as containers for audiences—when they’re empty, they are removed.

Do logic blocks affect how I connect audiences to outputs?

No. Connecting audiences to outputs works the same way regardless of logic blocks. You still:

  • Connect individual audiences (not logic blocks) to outputs
  • Configure the same connection settings
  • Activate audiences the same way

Logic blocks only control which users are added to which audiences. Once an audience is populated, forwarding to outputs is unchanged.

For more information, see Connect an Audience.

Was this page helpful?

    Last Updated: February 25, 2026