# Identifier Ranks

### About this export

| Field | Value |
| --- | --- |
| **content_type** | lesson |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/data-insights-data-ingestion-profile-construction/data-insights-course-3--identifier-ranks |
| **course_slug** | data-insights-data-ingestion-profile-construction |
| **lesson_slug** | data-insights-course-3--identifier-ranks |
| **markdown_file_url** | /academy/md/courses/data-insights-data-ingestion-profile-construction/data-insights-course-3--identifier-ranks.md |
| **generated_at** | 2026-04-28T06:55:44.155Z |

> Part of **[Data Ingestion & Profile Construction](https://www.contentstack.com/academy/courses/data-insights-data-ingestion-profile-construction)** on Contentstack Academy. **Academy MD v3** — structured for retrieval; no quiz or assessment keys.

<!-- ai_metadata: {"lesson_id":"09","type":"video","duration_seconds":253,"video_url":"https://cdn.jwplayer.com/previews/FFIRINGI","thumbnail_url":"https://cdn.jwplayer.com/v2/media/FFIRINGI/poster.jpg?width=720","topics":["Identifier","Ranks"]} -->

#### Video details

#### At a glance

- **Title:** 17-data-insights-working-with-ranks
- **Duration:** 4m 13s
- **Media link:** https://cdn.jwplayer.com/previews/FFIRINGI
- **Publish date (unix):** 1752877181

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113666 kbps
- video/mp4 · 180p · 180p · 141064 kbps
- video/mp4 · 270p · 270p · 157856 kbps
- video/mp4 · 360p · 360p · 171996 kbps
- video/mp4 · 406p · 406p · 182307 kbps
- video/mp4 · 540p · 540p · 217867 kbps
- video/mp4 · 720p · 720p · 276684 kbps
- video/mp4 · 1080p · 1080p · 443311 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/FFIRINGI-120.vtt`

#### Transcript

I'm coming back real quick, just because I don't want to skip over it. So if I were to go in and create a field, so we'll just like do it example one, like let's say this was, you know, Mark's school ID, and I want to make it a string. And in this case, I want to make it an identity key. I'll let Eric talk through so there's one setting for all identity keys, that's really important and ultimately how we resolve those identity called ranks. So it's managed over here in the ranks section, I'll back out of here, but you'll see all the different identifiers that are in this particular account. So there's an email, there's a UID, there's a chat user ID, external ID, et cetera, et cetera, in kind of a priority order. So I'll kick it over to Eric for a moment to talk about the importance of ranks and how they actually impact the merging and building of profiles. Yeah, so if you think about identity, there's lots and lots of identities that represent us as real, real, real people. If you ask a marketer, they'll always tell you that, well, no, there's just Eric, like there's just Eric. But if you think about it, if you start to think about it, like I have four or five email addresses, so that's not really a good identifier for me, but it's better than all the cookies that I probably have. I probably have thousands of cookies on the web. And so there's this concept of ID, identifiers being stronger and stronger as you get to certain identifiers to the point where maybe the strongest is a customer ID. And so at my bank, my account, my social security number, my government ID is probably my strongest identifier. And so without establishing rank and identifiers, if we just had a graph with no ranking structure, we would never have this concept of a canonical ID. And all marketers really want this concept of what we call a canonical ID, which is that they can just call Eric, Eric, and they're always targeting Eric. And if Eric opts out, they know that Eric's opted out and that kind of thing. And they don't want my identifier to churn and change all the time. So the rank statements allow us to say, this identifier has a higher precedence. And what we do is when we generate what we call the Lytx ID, which is this canonical ID that marketers can use as like a key in databases and things like that, is we look at these ranks and we always choose the highest ranked identifier out of the list of all the identifiers that we know about a user. So there's the Lytx ID and that profile. And that one is actually derived from, if you look at the identifiers that are on this profile, it's derived from the highest ranking ID. This one's a bad one, because it only has- It's only got a UID. Well, if there's an email on here, if there was an email on here, it would be derived from emails. So externally, that's the primary use case for it, for the concept of ranks. Internally, we use it a lot to optimize graphs. And that's maybe at the very end, when we get into some more architecture discussions, I'll start to talk about how we maintain graph health and optimize graph lookups. And we have this concept of identifiers aging out and expiring, and all of that is related to ranks as well, but we'll get to that one in the last session.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:19.760
I'm coming back real quick, just because I don't want to skip over it.

2
00:00:19.760 --> 00:00:25.440
So if I were to go in and create a field, so we'll just like do it example one, like

3
00:00:25.440 --> 00:00:33.920
let's say this was, you know, Mark's school ID, and I want to make it a string.

4
00:00:33.920 --> 00:00:36.720
And in this case, I want to make it an identity key.

5
00:00:36.720 --> 00:00:41.480
I'll let Eric talk through so there's one setting for all identity keys, that's really

6
00:00:41.480 --> 00:00:45.080
important and ultimately how we resolve those identity called ranks.

7
00:00:45.080 --> 00:00:48.760
So it's managed over here in the ranks section, I'll back out of here, but you'll see all

8
00:00:48.760 --> 00:00:51.360
the different identifiers that are in this particular account.

9
00:00:51.360 --> 00:00:55.600
So there's an email, there's a UID, there's a chat user ID, external ID, et cetera, et

10
00:00:55.600 --> 00:00:57.600
cetera, in kind of a priority order.

11
00:00:57.600 --> 00:01:01.120
So I'll kick it over to Eric for a moment to talk about the importance of ranks and

12
00:01:01.120 --> 00:01:04.920
how they actually impact the merging and building of profiles.

13
00:01:04.920 --> 00:01:11.760
Yeah, so if you think about identity, there's lots and lots of identities that represent

14
00:01:11.760 --> 00:01:15.480
us as real, real, real people.

15
00:01:15.480 --> 00:01:19.760
If you ask a marketer, they'll always tell you that, well, no, there's just Eric, like

16
00:01:19.760 --> 00:01:21.260
there's just Eric.

17
00:01:21.260 --> 00:01:24.980
But if you think about it, if you start to think about it, like I have four or five email

18
00:01:24.980 --> 00:01:30.740
addresses, so that's not really a good identifier for me, but it's better than all the cookies

19
00:01:30.740 --> 00:01:31.740
that I probably have.

20
00:01:31.740 --> 00:01:33.960
I probably have thousands of cookies on the web.

21
00:01:33.960 --> 00:01:39.140
And so there's this concept of ID, identifiers being stronger and stronger as you get to

22
00:01:39.140 --> 00:01:44.180
certain identifiers to the point where maybe the strongest is a customer ID.

23
00:01:44.180 --> 00:01:52.300
And so at my bank, my account, my social security number, my government ID is probably

24
00:01:52.300 --> 00:01:55.940
my strongest identifier.

25
00:01:55.940 --> 00:02:06.900
And so without establishing rank and identifiers, if we just had a graph with no ranking structure,

26
00:02:06.900 --> 00:02:09.340
we would never have this concept of a canonical ID.

27
00:02:09.340 --> 00:02:15.300
And all marketers really want this concept of what we call a canonical ID, which is that

28
00:02:15.300 --> 00:02:18.140
they can just call Eric, Eric, and they're always targeting Eric.

29
00:02:18.140 --> 00:02:24.260
And if Eric opts out, they know that Eric's opted out and that kind of thing.

30
00:02:24.260 --> 00:02:29.020
And they don't want my identifier to churn and change all the time.

31
00:02:29.020 --> 00:02:36.500
So the rank statements allow us to say, this identifier has a higher precedence.

32
00:02:36.500 --> 00:02:42.820
And what we do is when we generate what we call the Lytx ID, which is this canonical

33
00:02:42.820 --> 00:02:49.340
ID that marketers can use as like a key in databases and things like that, is we look

34
00:02:49.340 --> 00:02:55.380
at these ranks and we always choose the highest ranked identifier out of the list of all the

35
00:02:55.380 --> 00:02:57.960
identifiers that we know about a user.

36
00:02:57.960 --> 00:03:03.780
So there's the Lytx ID and that profile.

37
00:03:03.780 --> 00:03:09.900
And that one is actually derived from, if you look at the identifiers that are on this

38
00:03:09.900 --> 00:03:17.340
profile, it's derived from the highest ranking ID.

39
00:03:17.340 --> 00:03:18.580
This one's a bad one, because it only has-

40
00:03:18.580 --> 00:03:19.580
It's only got a UID.

41
00:03:19.580 --> 00:03:25.820
Well, if there's an email on here, if there was an email on here, it would be derived

42
00:03:25.820 --> 00:03:27.860
from emails.

43
00:03:27.860 --> 00:03:33.620
So externally, that's the primary use case for it, for the concept of ranks.

44
00:03:33.620 --> 00:03:38.740
Internally, we use it a lot to optimize graphs.

45
00:03:38.740 --> 00:03:44.660
And that's maybe at the very end, when we get into some more architecture discussions,

46
00:03:44.660 --> 00:03:51.420
I'll start to talk about how we maintain graph health and optimize graph lookups.

47
00:03:51.420 --> 00:03:58.500
And we have this concept of identifiers aging out and expiring, and all of that is related

48
00:03:58.500 --> 00:04:03.820
to ranks as well, but we'll get to that one in the last session.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] I'm coming back real quick, just because I don't want to skip over it.
[00:19] So if I were to go in and create a field, so we'll just like do it example one, like
[00:25] let's say this was, you know, Mark's school ID, and I want to make it a string.
[00:33] And in this case, I want to make it an identity key.
[00:36] I'll let Eric talk through so there's one setting for all identity keys, that's really
[00:41] important and ultimately how we resolve those identity called ranks.
[00:45] So it's managed over here in the ranks section, I'll back out of here, but you'll see all
[00:48] the different identifiers that are in this particular account.
[00:51] So there's an email, there's a UID, there's a chat user ID, external ID, et cetera, et
[00:55] cetera, in kind of a priority order.
[00:57] So I'll kick it over to Eric for a moment to talk about the importance of ranks and
[01:01] how they actually impact the merging and building of profiles.
[01:04] Yeah, so if you think about identity, there's lots and lots of identities that represent
[01:11] us as real, real, real people.
[01:15] If you ask a marketer, they'll always tell you that, well, no, there's just Eric, like
[01:19] there's just Eric.
[01:21] But if you think about it, if you start to think about it, like I have four or five email
[01:24] addresses, so that's not really a good identifier for me, but it's better than all the cookies
[01:30] that I probably have.
[01:31] I probably have thousands of cookies on the web.
[01:33] And so there's this concept of ID, identifiers being stronger and stronger as you get to
[01:39] certain identifiers to the point where maybe the strongest is a customer ID.
[01:44] And so at my bank, my account, my social security number, my government ID is probably
[01:52] my strongest identifier.
[01:55] And so without establishing rank and identifiers, if we just had a graph with no ranking structure,
[02:06] we would never have this concept of a canonical ID.
[02:09] And all marketers really want this concept of what we call a canonical ID, which is that
[02:15] they can just call Eric, Eric, and they're always targeting Eric.
[02:18] And if Eric opts out, they know that Eric's opted out and that kind of thing.
[02:24] And they don't want my identifier to churn and change all the time.
[02:29] So the rank statements allow us to say, this identifier has a higher precedence.
[02:36] And what we do is when we generate what we call the Lytx ID, which is this canonical
[02:42] ID that marketers can use as like a key in databases and things like that, is we look
[02:49] at these ranks and we always choose the highest ranked identifier out of the list of all the
[02:55] identifiers that we know about a user.
[02:57] So there's the Lytx ID and that profile.
[03:03] And that one is actually derived from, if you look at the identifiers that are on this
[03:09] profile, it's derived from the highest ranking ID.
[03:17] This one's a bad one, because it only has-
[03:18] It's only got a UID.
[03:19] Well, if there's an email on here, if there was an email on here, it would be derived
[03:25] from emails.
[03:27] So externally, that's the primary use case for it, for the concept of ranks.
[03:33] Internally, we use it a lot to optimize graphs.
[03:38] And that's maybe at the very end, when we get into some more architecture discussions,
[03:44] I'll start to talk about how we maintain graph health and optimize graph lookups.
[03:51] And we have this concept of identifiers aging out and expiring, and all of that is related
[03:58] to ranks as well, but we'll get to that one in the last session.
```

#### Key takeaways

- Connect **Identifier Ranks** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

## Supplement for indexing

### Content summary

Identifier Ranks. Identifier Ranks in Data Ingestion & Profile Construction (data-insights-data-ingestion-profile-construction).

### Retrieval tags

- Identifier
- Ranks
- data-insights-data-ingestion-profile-construction
- lesson 09
- Identifier Ranks
- data-insights-data-ingestion-profile-construction lesson

### Indexing notes

Index this lesson as a primary chunk tagged with lesson_id "09" and topics: [Identifier, Ranks].
Parent course slug: data-insights-data-ingestion-profile-construction. Use asset_references URLs as thumbnail hints in search results when present.
Never surface LMS quiz content or assessment answers from this file.

### Asset references

| Label | URL |
| --- | --- |
| Video thumbnail: Identifier Ranks | `https://cdn.jwplayer.com/v2/media/FFIRINGI/poster.jpg?width=720` |

### External links

| Label | URL |
| --- | --- |
| Contentstack Academy home | `https://www.contentstack.com/academy/` |
| Training instance setup | `https://www.contentstack.com/academy/training-instance` |
| Academy playground (GitHub) | `https://github.com/contentstack/contentstack-academy-playground` |
| Contentstack documentation | `https://www.contentstack.com/docs/` |
