Skip to content
Notifications
Clear all

Guide: setting up identity resolution in mParticle vs Tealium in under an hour

3 Posts
3 Users
0 Reactions
0 Views
(@hannahj)
Trusted Member
Joined: 1 week ago
Posts: 59
Topic starter   [#4593]

While comprehensive platform evaluations are essential, the initial setup for a core function like identity resolution can be a significant time sink. This guide provides a procedural comparison for establishing a baseline deterministic identity graph in both mParticle and Tealium, focusing on the developer workflow to achieve a functional state within an hour. The assumption is a web environment with authenticated users.

The primary architectural difference lies in the initial identity stitching strategy. mParticle employs a `logical` user model where you explicitly set the `MPID` via the SDK after a user is identified, whereas Tealium uses a `Visitor Stitch` which is triggered by passing a common key (like `customer_id`) within the data layer.

### mParticle: SDK-Centric Identity Merge
The process hinges on calling `setUserIdentity` and subsequently `identity.login` with the same identifier. The SDK handles merging server-side.

1. **Initialization & Configuration**
First, load the Web SDK with your workspace key.
```javascript
// mParticle Web SDK Snippet
window.mParticle = {
config: {
identityCallback: function(result) {
console.log("Identity callbacks:", result);
},
// ... other config
}
};
(function(){/* snippet code */})();
```

2. **Identifying the User**
Upon user authentication, call `setUserIdentity` and then `identity.login`. This is the critical step for merging anonymous and known user activity.
```javascript
// Executed post-login
mParticle.setUserIdentity("user@domain.com", mParticle.IdentityType.Email);
mParticle.identity.login({
userIdentities: {
email: "user@domain.com",
customerid: "12345"
}
});
```
The previous anonymous profile (and its associated events) will merge into the identified user profile based on the provided `Email` identity.

### Tealium: Data Layer-Driven Visitor Stitch
Tealium's identity resolution is configured primarily in the TIQ (Tealium iQ) interface, but it is activated by the data you send.

1. **Create a Visitor Stitch Key**
* In your Tealium data layer object (`utag_data`), ensure you have a consistent key for the authenticated user ID (e.g., `customer_id`).
* Within the TIQ interface, navigate to the Visitor Stitch tool and create a new stitch key. Select the `customer_id` variable (or equivalent).

2. **Triggering the Stitch**
The stitch occurs automatically when events are fired containing the stitch key. The crucial point is to update the data layer *before* the tag fires.
```javascript
// Update the data layer with the authenticated ID
utag_data["customer_id"] = "12345";
utag_data["email"] = "user@domain.com";
utag_data["event_name"] = "user_login"; // or a similar event

// Then fire the view/event tag
utag.view();
```
Upon processing, Tealium will associate all data with the new, stitched visitor ID, linking past and future activity.

### Key Comparison Points
* **Control Flow:** mParticle requires explicit SDK method calls (`identity.login()`), offering a programmatic, event-driven control. Tealium's method is declarative, relying on the presence of a key in the data stream, which can be simpler but less explicit.
* **Profile Merge Timing:** In mParticle, the merge is triggered immediately by the `login` call. In Tealium, the stitch is processed asynchronously on data receipt; there may be a slight latency before the unified profile is available for audience activation.
* **Initial Setup Overhead:** Both require initial UI-based configuration (mParticle: creating inputs/setting identity types; Tealium: defining the stitch key). The actual code implementation for a basic case is similarly minimal.

For a proof-of-concept implementation, both platforms can indeed be configured within the stated timeframe. The choice often reduces to whether your team prefers an SDK-driven or a data-layer-driven paradigm for identity management. For more complex, multi-key or probabilistic stitching, the configuration UI in both tools becomes the dominant time investment.

— hannah


Data is the new oil – but only if refined


   
Quote
(@martech_curious)
Eminent Member
Joined: 3 months ago
Posts: 30
 

We're a mid-market B2C retailer with a hybrid stack (Shopify plus some custom services). I've run both mParticle and Tealium iQ in production for identity resolution across web and mobile.

**Core Comparison**
1. **Costs at Scale:** mParticle charges on monthly tracked users (MTUs). Our bill jumped from about $1.5k to over $4k/month when we scaled a campaign. Tealium's iQ is a flat annual license; we pay roughly $50k/year regardless of volume, which is predictable but a higher upfront commitment.
2. **Initial Setup Speed:** Tealium's visitor stitch is faster to a first-merge if your data layer is already clean. You just map the `customer_id` in the UI and it's live. mParticle's SDK-first approach took us about 90 minutes for the first successful merge because we had to audit our `identity.login` calls.
3. **Real-Time Edge Cases:** mParticle's server-side merge is cleaner for high-velocity users. We saw Tealium's client-side stitch occasionally create duplicate "merged" visitor profiles for users who logged in across multiple tabs simultaneously. It resolved itself, but skewed real-time dashboards.
4. **Post-Merge Data Access:** mParticle wins for analytics integrations. Merged user profiles and their complete event history are available immediately in tools like Braze and Amplitude. With Tealium, some downstream tools (like our legacy Mixpanel) only received the new, post-stitch ID, losing some session context.

**My Pick**
I'd recommend Tealium if you need a predictable cost and your primary goal is stitching IDs for a web-focused analytics stack quickly. Choose mParticle if you're heavily multi-channel (mobile app + web) and need perfectly merged user timelines for real-time personalization. To decide, tell us your monthly user volume and which downstream tool needs the stitched data most.



   
ReplyQuote
(@data_skeptic_ray)
Estimable Member
Joined: 4 months ago
Posts: 127
 

You lost me at "functional state within an hour." A functional state for whom, exactly? The marketer who sees a green light in the UI, or the engineer who needs to trust the merged output for a downstream system?

Calling setUserIdentity is one line of code. What you're not showing is the 45 minutes of verifying that your anonymous-to-known transition events are firing in the right order and not creating duplicate profiles. That's where the real time goes, and it's completely absent from this "procedural comparison."


Data skeptic, not a data cynic.


   
ReplyQuote