---
title: Identity Service
slug: poc-mmt-cja/identity-service
docTags: 
createdAt: 2025-07-02T08:35:38.466Z
---

## Learning Objectives&#x20;

- Understand how identity namespaces and values join to form a graph
- Understand how identity linking rules prevent graphs from merging when customers share a device&#x20;

## Visualise the Identity Graph

In this exercise you'll learn how to see which identities are currently linked in the identity graph. &#x20;

Open Adobe Experience Platform and navigate to **Customers -> Identities**&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/XNHYblrvk9fTO-dET5OOK_image.png)

The Overview tab provides some insights into the number of identities that have been ingested and how they are trending over time.   Click to view the **Namespaces** tab.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/6UMMIevTN3l8baAb_Mciq_image.png)

The namespace classifies the type of identity, for example ECID is a cookie id while Email is considered a cross device identity type because it can represent a person.   Adobe provides a number of out of the box namespaces but you can create custom namespaces to suit your purpose.   We created a number of custom namespaces for MMT but are using only the MMT\_HASH\_MOBILE and MMT\_HASH\_EMAIL as our Cross Device Id's for the POC.   These will be joined to ECID cookie id's representing either mobile app SDK ids or web SDK ids.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/HdGKnvhSAGxHSf80r5e0M_image.png)

Notice that the **MMT\_HASH\_MOBILE** namespace has been configured as having top priority and is must be **Unique per graph.   &#x20;**&#x54;his configuration prevents two users logging in on the same device from collapsing their graphs. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/LS04sDeSKdblpUqrtLTUF_image.png)

Click to the **Graph Viewer&#x20;**&#x74;ab.  &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/hYzk7JRoLmz64iBycsnKq_image.png)

Select the **MMT\_HASH\_MOBILE** id namespace and enter **KYOQOZMDS** into the value field.  Then click **View.**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/xGVsePoEodBIvPYpZCwRG_image.png)

You can see that this hashed mobile number is directly connected to 1 ECID, that ECID is connected to Hashed Email which is also connected to another ECID.   You can use the slider to view how the graph connected over time. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/9XAFCuTUDJT8y_dYvB5TV_image.png)

Select one of the Id's and you'll see on the right hand side which dataset or datasets the identity has been seen in. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/jtZWemOTTdRureijr8wMI_image.png)



## Use the Identity Graph Simulator&#x20;

Graph linking rules prevent identity graph collapse, ie. the graphs from two separate people merging.   This can happen in many ways, most commonly when two people share a device. &#x20;

The graph simulator tool lets you simulate how the graph will behave when configured with different linking rule settings.    It is a helpful tool to understand how the graph behaves during different circumstances. &#x20;

Click to open the **Graph Simulation** tab.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/G9NugZZaVR9iqOONsrvYr_image.png)

To give you an idea, we'll load a simple example first.   Click on the **Load example** button. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/2YC_JFheNTiN80rMA8fiy_image.png)

Select the **Shared Device&#x20;**&#x65;xample. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/c6LpGfY2ibc77mmx5b0p2_image.png)

The lower half shows the Graph settings to be used in the simulation.  You can see they have 3 identity namespaces considered for this example.   **Email**, **Hashed Email** and **ECID**.  Email has highest priority but both email and hashed email should remain unique per graph. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/Kn1uwi4st7X_76FVjo-Mn_image.png)

The top half shows the activity that will be loaded for the simulation.  These are events / records being sent to the identity service - only events with more than 1 identity involved will have any impact on the graph.  &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/1W1yGS8ZpuyY2d4-gjWbB_image.png)

In this case, the first 2 activity records establish the link between email and hashed email for 2 people.   John and Jane. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/8rV9xFCmG5eWrUUMg-7vc_image.png)

The third activity record shows John authenticating on a device with ECID 111.   &#x20;

The fourth activity record shows Jane authenticated on the same device with ECID 111. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/kBSRJgbsu21HXWyTIWuQZ_image.png)

Click on **Simulate&#x20;**&#x74;o run the simulatio&#x6E;**.&#x20;**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/yEI2bIy97yRrAjYLNeaXp_image.png)

You can see on the right, that while there was a link between ECID 111 and John (3), this has been **removed&#x20;**&#x77;hen a new link (4) is established between Jane and ECID 111.  &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/63KZnNKhX6axQlXS77jnj_image.png)

This shows how the graph linking rules are applied to ensure that Hashed Email and Email are always UNIQUE per graph.  If a second value is ingested for the unique namespace the identity service removes the previous links to ensure the graph does not collapse. &#x20;

Use the timeline slider at the top of the graph to see how each activity impacts the graph.  You can see after the first two activities, how john and jane had separate graphs.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/u-2rIuwtAEaI3jozgspjp_image.png)

Then after activity 3, John was connected to the ECID.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/4ZIUYCBaQCD5SbJOol_6I_image.png)

And eventually after activity 4 we see the final result with the ECID 111 belonging to Jane not John. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/h6P5-8Qo9s1GHpaYkgccC_image.png)

This tool is super helpful to understand how the graph settings chosen for your organisation will impact graphs in different situations.  &#x20;

Now let's try an example using the configuration set for the POC.   Click to another tab and back to clear the current simulation, then add config settings for MMT\_HASH\_MOBILE - priority 1 unique.  MMT\_HASH\_EMAIL - priority 2.   &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/SOEAVZV1d-axy5bE2xQ-w_image.png)

Change the Activity panel from **Default** to **Text (advanced users)**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/vEtZ5on55bl5FQZnXzLz6_image.png)

You can now test out any sequence of events using synthetic values and see how the graph will react.   Paste the following list of activities into the panel and click to simulate. &#x20;

HASHMOB: KYOQOZMES, HASHEM: EMAIL1
HASHMOB: KYOQOZMDS, ECID: 123
HASHMOB: KYOQOZMES, ECID: 123
HASHEM: EMAIL1, ECID: 123
HASHEM: EMAIL1, ECID: 345
HASHMOB: KYOQOZMDS, ECID: 345


![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/jGUSRbC0xGQKfNf5F4dl2_image.png)

In this scenario:

- User 1 is loaded with Mobile and Email is loaded.&#x20;
- User 1 authenticates on device ECID 123.&#x20;
- Then User 2 authenticates with a different mobile number on the same device.&#x20;
- User 1 then authenticates using Email (MyBiz) on the device&#x20;
- User 1 then authenticates using Email (MyBiz) on a different device&#x20;
- User 1 then authenticates using Mobile (B2C) on the same device. &#x20;

In the end, each device is connected to the last authenticated user only. &#x20;
