Documentation

Developers

API References
Platform API

Platform API Overview

Accounts

Apps

Audiences

Calculated Attributes

Data Points

Feeds

Field Transformations

Services

Users

Workspaces

Data Subject Request API

Data Subject Request API Version 1 and 2

Data Subject Request API Version 3

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

Calculated Attributes Seeding API

Bulk Profile Deletion API Reference

Custom Access Roles API

Data Planning API

Group Identity API Reference

Pixel Service

Profile API

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

Linting Data Plans

Troubleshooting the Android SDK

API Reference

Upgrade to Version 5

Cordova

Cordova Plugin

Identity

Direct Url Routing

Direct URL Routing FAQ

Web

Android

iOS

Flutter

Getting Started

Usage

API Reference

iOS

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

Roku

Getting Started

Identity

Media

React Native

Getting Started

Identity

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

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

Xamarin

Getting Started

Identity

Web

Alexa

Media SDKs

Android

iOS

Web

Tools

mParticle Command Line Interface

Linting Tools

Smartype

Server SDKs

Node SDK

Go SDK

Python SDK

Ruby SDK

Java SDK

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

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

Java Quick Start

Step 1. Create an input

Step 2. Create an output

Step 3. Verify output

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

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

Data Hosting Locations

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

Rules Developer Guide

API Credential Management

The Developer's Guided Journey to mParticle

Guides

Getting Started

Create an Input

Start capturing data

Connect an Event Output

Create an Audience

Connect an Audience Output

Transform and Enhance Your Data

Personalization

Introduction

Profiles

Audiences

Audiences Overview

Create an Audience

Connect an Audience

Manage Audiences

Real-time Audiences (Legacy)

Standard Audiences (Legacy)

Calculated Attributes

Calculated Attributes Overview

Using Calculated Attributes

Create with AI Assistance

Calculated Attributes Reference

Predictive Audiences

Predictive Audiences Overview

Using Predictive Audiences

Journeys

Journeys Overview

Manage Journeys

Download an audience from a journey

Audience A/B testing from a journey

Journeys 2.0

Predictive Attributes

What are predictive attributes?

Predict Future Behavior

Create Future Prediction

Use Future Predictions in Campaigns

Assess and Troubleshoot Predictions

Next Best Action

Next Best Action Overview

Create a Next Best Action (NBA)

View and Manage NBAs

Activate Next Best Actions in Campaigns

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

Introduction

Data Retention

Connections

Activity

Live Stream

Data Filter

Rules

Tiered Events

mParticle Users and Roles

Analytics Free Trial

Troubleshooting mParticle

Usage metering for value-based pricing (VBP)

Analytics

Introduction

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

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

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

Explore Users from a Funnel

Export Results 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

Dashboards

Dashboards––Getting Started

Manage Dashboards

Dashboard Filters

Organize Dashboards

Scheduled Reports

Favorites

Time and Interval Settings in Dashboards

Query Notes in Dashboards

User Aliasing

Analytics Resources

The Demo Environment

Keyboard Shortcuts

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

User Segments

APIs

User Segments Export API

Dashboard Filter API

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

Data Master
Group Identity

Overview

Create and Manage Group Definitions

Introduction

Catalog

Live Stream

Data Plans

Data Plans

Blocked Data Backfill Guide

Warehouse Sync

Data Privacy Controls

Data Subject Requests

Default Service Limits

Feeds

Cross-Account Audience Sharing

Approved Sub-Processors

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

REST API

Dashboard Filter API (Deprecated)

User Segments Export API (Deprecated)

SDKs

SDKs Introduction

React Native

iOS

Android

Java

JavaScript

Python

Object API

Developer Basics

Aliasing

Observability Troubleshooting Examples

Below are three example scenarios for when Observability help you troubleshoot common issues encountered when ingesting and forwarding data.

The following scenarios demonstrate the use of tracing to troubleshoot development environment data. To learn more about the differences between tracing your development data and your production data throughout the process of setting up your mParticle implementation, see Tracing best practices.

An event is blocked by a forwarding rule

Forwarding rules allow you to prevent events from being forwarded to an output according to criteria like the event’s attributes, user consent preferences, or whether the user who triggered the event was logged in.

Sometimes, a forwarding rule might block an event that you actually want to send to your output. Using Observability, you can more easily identify and troubleshoot these instances.

For example, consider a scenario where we send the following event to mParticle when a user subscribes to a premium service, but we don’t see the event appear downstream in our output.

Example event batch

'events': [
    {
        'data': {
            'custom_event_type': 'other',
            'event_name': 'subscription',
            'custom_attributes': {
              'plan_type': 'premium'
            }
        },
        'event_type': 'custom_event'
    }
]
  1. First, let’s check to see if Observability flagged any recent traces by logging into mParticle and navigating to Observability > Trace Activity.
  2. We click Sort & Filters and select our input feed under Inputs. Under Results we select “Warning”, “Insight”, and “Needs Attention” and click Apply.

  1. We see a trace matching our input and output with “Insight” as the result, which indicates some detected behavior (either intended or not) that we should investigate. We click on the Trace ID to open the details page to learn more.

  1. In the Trace Details page, we scroll through the Timeline View until we see a highlighted span under the section called Transformations. This includes the error message: “Event Batch Filtering: The batch was dropped because all events contained within it were filtered out by event attribute forwarding rules. If this is not expected, check the event attribute rules for this connection.” Now we know our event was dropped due to a forwarding rule.

  1. We navigate to the connection between our custom feed input and our webhook output to view our forwarding rules.
  2. We go to the Forwarding tab and see that we have a Forwarding Rule set to “Only Forward” events if they contain the event attribute plan_type set to basic.

  1. After re-examining our original event batch, our event’s plan_type was set to premium, which explains why it wasn’t forwarded to our output.
  2. We can now either remove our feed filter or adjust it to forward subscription events with either basic or premium plan types.

An event is blocked by a feed filter

Filters provide granular control over exactly which data points are forwarded to a specific output. You can switch OFF certain data points to exclude them from the data you forward, or you can switch ON data points to forward them.

Sometimes, you might mistakenly toggle a filter for a data point that you actually want to send to an output.

For example, consider a scenario where we send the following event to mParticle when a user subscribes to a premium service, but we don’t see the plan_type event attribute appear downstream in our output.

Example event batch

'events': [
    {
        'data': {
            'custom_event_type': 'other',
            'event_name': 'subscription',
            'custom_attributes': {
              'plan_type': 'premium'
            }
        },
        'event_type': 'custom_event'
    }
]
  1. First, let’s check to see if Observability flagged any recent traces by logging into mParticle and navigating to Observability > Trace Activity.
  2. We click Sort & Filters and select our input feed under Inputs. Under Results we select “Warning”, “Insight”, and “Needs Attention” and click Apply.

  1. We see a trace matching our input and output with “Insight” as the result, which indicates some detected behavior (either intended or not) that we should investigate. We click on the Trace ID to open the details page to learn more.

  1. In the Trace Details page, we scroll through the trace timeline until we see a highlighted span under Transformations. If we click on this, we see the error message: “Event Batch Filtering: The batch was dropped because all events contained within it were filtered out by event attribute forwarding rules. If this is not expected, check the event attribute rules for this connection.” Now we know our event was dropped due to a feed filter. Let’s check our filter settings to see if we’re unintentionally removing any event attributes.

  1. To find our feed filter settings, we navigate to Connections > Feed Filters using the left hand navigation, and then we select the Events tab. The column for Webhook (our output that didn’t receive the event) lists each event type that will be forwarded (or filtered).
  2. If we expand the Other event type section, we see our subscription event. If we expand this, we see that the plan_type event attribute is switched OFF. As long as this filter is enabled, mParticle won’t forward the plan_type attribute with subscription events.

  1. Now we know we need to remove the feed filter so the plan_type attribute is always forwarded.

An event is blocked by a data plan

Data plans allow you to describe the extent and the shape of the data you collect using mParticle. Each data plan contains a list of data points which describe the event names, event attributes, user attributes, and user identities that you want mParticle to ingest. If your input sends data that doesn’t match your data plan, it can be either marked as invalid or blocked entirely, depending on your data plan settings.

Sometimes, data plans will block data that you actually want to ingest. We can use Observability to help identify and troubleshoot these instances.

For example, consider a scenario where we send the following event to mParticle when a user subscribes to a service, but we don’t see the language_preference user attribute appear downstream in our output.

Example event batch

{
  'user_attributes' : {
    'language_preference': 'EN'
  },
  'events': [
    {
      'data': {
        'custom_event_type': 'other',
        'event_name': 'subscription',
      },
      'event_type': 'custom_event'
    }
  ],
  'context': {
    'data_plan': {
      'plan_id': 'higgs_data_plan',
      'plan_version': 1
    }
  }
}
  1. First, let’s check to see if Observability flagged any recent traces by logging into mParticle and navigating to Observability > Trace Activity.
  2. We click Sort & Filters and select our input feed under Inputs. Under Results we select “Warning”, “Insight”, and “Needs Attention” and click Apply.

  1. We see a trace matching our input and output with “Insight” as the result, which indicates some detected behavior (either intended or not) that we should investigate. We click on the Trace ID to open the details page to learn more.

  1. In the Trace Details page, we scroll through the trace timeline until we see the highlighted span called “Evaluating Data Plan ‘higgs_data_plan’” under Transformations. If we click on this, we see the error message: “Data Planning: All user attributes in the batch were dropped by the data plan. Not all integrations and use cases support batches with no user attributes.” Now we know our user attribute was blocked by the Higgs Data Plan.

  1. The Setup Details section on the left side of the trace details page gives us a direct link we can click to take us to our Higgs Data Plan.
  2. Once on the Higgs Data Plan settings page, we click Block Volume to view the data plan report.

  1. From the Report tab, make sure to select “Blocked”. Under the list of blocked data points, we see our language preference user attribute.

  1. At this point, we can modify our data plan’s block settings to allow unplanned user attributes, or we can add the language preference attribute to our list of expected data points. Note: if you have a quarantine connection configured for your data plan, you can backfill any blocked data.

Was this page helpful?

    Last Updated: February 27, 2025