What mParticle traffic looks like
Unlike Segment's one-call-per-event model, mParticle is batch-centric: one request carries one user context plus an events array.
- Endpoint pattern
- Web SDK loads from
jssdks.mparticle.com; events POST to the same host, typicallyjssdks.mparticle.com/v2/JS/<apiKey>/Events; identity resolution is a separate call toidentity.mparticle.com(/v1/identify,/v1/login,/v1/logout,/v1/<mpid>/modify); server-side feeds hits2s.mparticle.comwith the same batch format - Transport
- JSON POSTs keyed by the workspace API key: each batch carries one user context and an
eventsarray - Key parameters
mpidmParticle ID ·user_attributesanduser_identities· device and application info · per event: anevent_typeenum (custom_event,screen_view,commerce_event,session_start,session_end,user_attribute_change, and so on) and adataobject withevent_name,custom_attributes, and timing fields- E-commerce
- Commerce events nest a
product_action(orpromotion_action) with anactionlikepurchaseoradd_to_cartand aproduct_list
A typical batch, as Event Watcher captures it:
{
"mpid": "-8123456…",
"user_identities": { "email": "user@example.dk" },
"events": [
{
"event_type": "commerce_event",
"data": { "product_action": { "action": "purchase", "product_list": [{ "name": "Trail Runner", "price": 499 }] } }
}
]
}
Debugging mParticle with Event Watcher
- The mParticle parser unpacks the batch so each event in the
eventsarray appears individually with a readable name: custom events show theirevent_name, commerce events the action (for exampleCommerce: purchase), screen views the screen name, lifecycle events their type label. - The detail view separates custom attributes from user attributes and identities, and surfaces the
mpidand session data, useful when verifying that identity calls resolved before events were attributed. - Identity requests to
identity.mparticle.comare captured as their own events, so you can see the identify/login sequence in order.
mParticle and consent
Analytics consentThe extension checks mParticle against the analytics consent category. On the wire, verify order and gating: a session_start batch or the initial identity call firing before the CMP resolves shows up as pre-consent and counts toward the violations total.
mParticle carries its own consent model (GDPR and CCPA state stored on the user profile, forwarded to downstream outputs), so correct wiring writes CMP decisions into mParticle consent events rather than just blocking the SDK.
Since mParticle often fans out server-side, anything it captures pre-consent may reach downstream tools with no further client-side evidence.
Common debugging scenarios
- Events attributed to the wrong user. Check whether events fired before the
identity.mparticle.comresponse. Batches sent with a stale or anonymousmpidland on the wrong profile. - A purchase is missing downstream. Find the
commerce_eventbatch in the stream and confirm theproduct_action.actionand product list are populated; if the event never left the browser, the downstream connector is not the problem. - Duplicate session starts. Group by Event Name and look for repeated
session_startevents, usually the SDK initializing twice, which the Script Tree view can attribute to two loaders. - Consent decisions not reaching mParticle. Watch for a
user_attribute_changeor consent-carrying batch after the CMP interaction; if the SDK fires events but no consent state update follows, the CMP-to-mParticle bridge is missing. - Verifying a migration from another CDP. Run both side by side and use Grouped view by Tool to compare event counts and names between the old and new pipelines on the same page.