You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/personas/identity-resolution/ecommerce-example.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,11 +9,11 @@ The Personas Identity Resolution feature helps to create a unified view of the u
9
9
10
10
Let's take the example of a sneaker company called SegmentKicks which has an eCommerce app called SegKicks as well as a running app called SegRuns. We'll follow Jane Doe throughout her entire customer journey from an anonymous user to a registered buyer on one app, SegKicks, to her use of the same app on a different device, and finally to her use of a different app belonging to the same company, SegRuns.
11
11
12
-
## Anonymous to Known Identification
12
+
## Anonymous to known identification
13
13
Identity Resolution can connect a user's anonymous behaviors to a user's post-account registration activity.
14
14
15
15
Let's take the following example using the eCommerce app, SegKicks:
16
-
1. Jane Doe downloads the app on her iPhone but does not yet register for an account.
16
+
1. Jane Doe downloads the app on her iPhone but doesn't yet register for an account.
17
17
```js
18
18
{
19
19
"anonymousId":"anon_123",
@@ -29,7 +29,7 @@ Let's take the following example using the eCommerce app, SegKicks:
29
29
}
30
30
```
31
31
32
-
2. She then clicks on a few different types of shoes, ShoeA, ShoeB and ShoeC but does not add to them cart. Because she has not yet registered for an account, all of these events will be sent through with an anonymousID and an ios deviceID.
32
+
2. She then clicks on a few different types of shoes, ShoeA, ShoeB, and ShoeC but doesn't add them to a cart. Because she hasn't yet registered for an account, all of these events will be sent through with an anonymousID and an ios deviceID.
33
33
```js
34
34
{
35
35
"anonymousId":"anon_123",
@@ -61,13 +61,13 @@ Let's take the following example using the eCommerce app, SegKicks:
61
61
"type":"identify"
62
62
}
63
63
```
64
-
By linking the original anonymous events to the her logged-in activity, the app's marketing team can now begin to map out her customer journey on a single app, understand her preferences and retarget her with highly personalized emails about the shoes she didn't complete purchasing.
64
+
By linking the original anonymous events to Jane's logged-in activity, the app's marketing team can now begin to map out her customer journey on a single app, understand her preferences, and retarget her with highly personalized emails about the shoes she didn't complete purchasing.
65
65
66
-
Her identifiers will now contain the original anonymous_id, her email and her user_id:
67
-

66
+
Her identifiers will now contain the original anonymous_id, her email, and her user_id:
67
+

68
68
69
-
## Cross-Device Identification
70
-
Users can have multiple touch points with an app ecosystem through more than one device. For example, users might interact with an eCommerce app through both a native app, a mobile browser and a web browser.
69
+
## Cross-device identification
70
+
Users can have multiple touch points with an app ecosystem through more than one device. For example, users might interact with an eCommerce app through both a native app, a mobile browser, and a web browser.
71
71
72
72
Let's continue with the example of Jane Doe. She now views the same mobile app SegKicks on her Android phone as well.
73
73
@@ -89,9 +89,9 @@ Jane Doe logs into the Android phone with the same email [email protected].
89
89
```
90
90
91
91
Her new User Profile identities will now also contain android.id:
A company's product ecosystem may also spread out across multiple apps. For example, SegmentKicks also has a running app SegRuns.
96
96
97
97
Now let's view what happens when Jane Doe downloads the Android app SegRuns and views a workout:
@@ -112,10 +112,10 @@ Now let's view what happens when Jane Doe downloads the Android app SegRuns and
112
112
```
113
113
114
114
Her final identifiers now have a new anonymous_id from the SegRuns app:
115
-

115
+

116
116
117
117
## Conclusion
118
-
By combining the events throughout Jane's entire customer journey from anonymous to known user, cross-device and cross-app identification, SegKicks and SegRuns can now work together to understand how to give Jane the best customer experience possible while increasing her LTV across the entire SegmentKicks ecosystem.
118
+
By combining the events throughout Jane's entire customer journey from anonymous to known user, cross-device, and cross-app identification, SegKicks and SegRuns can now work together to understand how to give Jane the best customer experience possible while increasing her LTV across the entire SegmentKicks ecosystem.
119
119
120
120
For example, if Jane looked at ShoeC on her iPhone and completed checkout for ShoeC on her Android, SegKicks will now know to exclude her from a cart abandonment email for ShoeC. This wouldn't be possible if SegKicks had only looked at her activity on the iPhone.
> **NOTE:** The steps in this guide pertain to spaces created before September 27th, 2020. For spaces created after September 27th, 2020, please refer to the onboarding guide [here](/docs/personas/identity-resolution/identity-resolution-onboarding/).
7
7
8
-
## Default ExternalIDs
8
+
## Default externalIDs
9
9
10
10
The Identity Graph creates or merges profiles based on externalIDs. ExternalIDs will become the Identities attached to a User Profile in the User Explorer:
11
11
12
-

12
+

13
13
14
14
Segment automatically promotes the following traits and IDs in track and identify calls to externalIDs:
15
15
@@ -29,16 +29,16 @@ Segment automatically promotes the following traits and IDs in track and identif
29
29
| ios.push_token | context.device.token when context.device.type = 'ios' |
30
30
31
31
32
-
## Custom ExternalIDs
32
+
## Custom externalIDs
33
33
34
-
Personas will automatically resolve identity for any other externalIDs that you bind to users - such as a phone number or any custom identifier that you support. As seen in the below example, you can send custom `externalIds` in the `context` object of any call to our API.
34
+
Personas will automatically resolve identity for any other externalIDs that you bind to users - such as a phone number or any custom identifier that you support. As seen in the below example, you can send custom `externalIds` in the `context` object of any call to Segment's API.
35
35
36
36
The four fields below (id, type, collection, encoding) are all required:
Personas will automatically create a user (user_id: `use_123`) with the custom externalId (phone: `123-456-7890`). Then, you query the users phone record by using the external id (phone: `123-456-7890`), or update this profile using that externalId going forward. (Note: externalIDs must be lower-case.)
64
64
65
-
## Viewing Promoted ExternalIDs
65
+
## Viewing promoted externalIDs
66
66
67
67
Users can view which externalIDs are promoted on each event by viewing the raw payload on Events in the User Profile in the "external_ids" object.
68
68
69
69
For example, the following user had anonymous_id and user_id promoted as identifiers from the Course Clicked track call:
70
70
71
-

71
+

72
72
73
73
## Example
74
74
@@ -85,7 +85,7 @@ analytics.page('Pricing', {
85
85
86
86
At this point, the Identity Graph will create a new user with external id (anonymous_id: `anon_123`) and a persistent and globally unique segment_id, in this case: `use_4paotyretuj4Ta2bEYQ0vKOq1e7`.
87
87
88
-

88
+

89
89
90
90
Any new events received with the same external id (anonymous_id: `anon_123`) are appended to same user `use_4paotyretuj4Ta2bEYQ0vKOq1e7`.
> **NOTE:** Workspace owners, Personas administrators, and users with the Identity Admin role can edit Identity Resolution Settings.
13
13
14
-
Segment creates and merges user profiles based on a space's Identity Resolution configuration. Segment searches for identifiers such as `userId`, `anonymousId` and `email` on incoming events and matches them to existing profiles or creates new profiles. These identifiers display in the Identities tab of a User Profile in the User Explorer:
14
+
Segment creates and merges user profiles based on a space's Identity Resolution configuration. Segment searches for identifiers such as `userId`, `anonymousId`, and `email` on incoming events and matches them to existing profiles or creates new profiles. These identifiers display in the Identities tab of a User Profile in the User Explorer:
15
15
16
-

16
+

17
17
18
18
### Flat matching logic
19
19
@@ -25,7 +25,7 @@ Based on the existence of a match, one of three actions can occur:
25
25
When there are no pre-existing profiles that have matching identifiers to the event, Segment creates a new user profile.
26
26
27
27
**2: Add to existing profile**
28
-
When there is one profile that matches all identifiers in an event, Segment attempts to map the traits, identifiers and events on the call to that existing profile. If there is an excess of any identifier on the final profile, Segment defers to the Identity Resolution rules outlined below.
28
+
When there is one profile that matches all identifiers in an event, Segment attempts to map the traits, identifiers, and events on the call to that existing profile. If there is an excess of any identifier on the final profile, Segment defers to the Identity Resolution rules outlined below.
29
29
30
30
**3: Merge existing profiles**
31
31
When there are multiple profiles that match the identifiers in an event, Segment checks the Identity Resolution rules outlined below, and attempts to merge profiles.
@@ -36,17 +36,17 @@ Identity Admins should first configure Identity Resolution Settings to protect t
36
36
37
37
During the space creation process, the first step is to choose an Identity Resolution configuration. If this is your first space, you have the option to choose a Segment-suggested Out-of-the-Box configuration or a custom Identity Resolution setup. All other spaces have a third option of importing settings from a different space.
38
38
39
-

39
+

40
40
41
41
### Out-of-the-Box
42
42
43
43
For most first-time Personas users, Segment recommends that you use the out-of-the-box configuration and answer a short series of questions for a best-fit setup for your use-case.
44
44
45
-
If you have custom unique identifiers or do not have a canonical `user_id`, you are automatically redirected to the Identity Resolution Settings page to complete your setup.
45
+
If you have custom unique identifiers or don't have a canonical `user_id`, you're automatically redirected to the Identity Resolution Settings page to complete your setup.
46
46
47
47
### Custom rules
48
48
49
-
If you are familiar with identity or have custom identifiers, Segment recommends that you select Custom Rules.
49
+
If you're familiar with identity or have custom identifiers, Segment recommends that you select Custom Rules.
50
50
51
51
Segment redirects you to the Identity Resolution Settings page where you can add Default Identifiers or Custom Identifiers.
52
52
@@ -66,9 +66,9 @@ Segment's 11 default are:
66
66
|`ios.idfa`| context.device.advertisingId when context.device.type = 'ios' AND context.device.adTrackingEnabled = true |
67
67
|`ios.push_token`| context.device.token when context.device.type = 'ios' |
68
68
69
-
You can also provide a trait or property key to match on to add custom identifiers. You can preview the locations where Segment looks for the identifier. Segment accepts both camelCase and snake_case for context.traits, traits and properties, but accepts lowercase types for identifiers only in the context.externalIds object.
69
+
You can also provide a trait or property key to match on to add custom identifiers. You can preview the locations where Segment looks for the identifier. Segment accepts both camelCase and snake_case for context.traits, traits, and properties, but accepts lowercase types for identifiers only in the context.externalIds object.
70
70
71
-

71
+

72
72
73
73
#### Blocked values
74
74
@@ -80,19 +80,19 @@ In the past, Segment has seen certain default values that cause large amounts of

89
89
90
90
Before sending data through, Segment also recommends that you add any default hard-coded values that your team uses during the development process, such as `void` or `abc123`.
91
91
92
92
#### Limit
93
93
94
94
Identity Admins can specify the total number of values allowed per identifier type on a profile during a certain period. For example, in the image below, the `anonymous_id` field has a limit of **5 Weekly**.
95
-

95
+

96
96
97
97
This will vary depending on how companies define a user today. In most cases, companies rely on `user_id` to distinguish user profiles and Segment defaults to the following configurations:
98
98
@@ -113,7 +113,7 @@ When you choose the limit on an identifier, ask the following questions about ea
113
113
114
114
1. Is it an immutable ID? An immutable ID, such as `user_id`, should have `1 ever` per user profile.
115
115
2. Is it a constantly changing ID? A constantly changing ID, such as `anonymous_id` or `ga_client_id`, should have a short sliding window, such as **5 weekly** or **5 monthly**, depending on how often your application automatically logs out the user.
116
-
3. Is it an ID that updates on a yearly basis? Most customers will have around 5 emails or devices at any one time, but can update these over time. For identifiers like `email`, `android.id` or `ios.id`, Segment recommends a longer limit like **5 annually**.
116
+
3. Is it an ID that updates on a yearly basis? Most customers will have around five emails or devices at any one time, but can update these over time. For identifiers like `email`, `android.id`, or `ios.id`, Segment recommends a longer limit like **5 annually**.
117
117
118
118
#### Priority
119
119
@@ -133,7 +133,7 @@ If this event maps to this profile, the resulting profile would then contain two
133
133
134
134
At this point, the event searches for any profiles that match just the identifier user_id `abc456`. Now there are no existing profiles with this identifier, so Segment creates a new profile with user_id `abc456`.
135
135
136
-
By default, Segment explicitly orders user_id and email as rank `1` and `2`, respectively. All other identifiers are in alphabetical order beginning from rank `3`. This means that if the identifiers sent with events flowing into personas are user_id, email, anonymous_id and ga_client_id, the rank would be as follows:
136
+
By default, Segment explicitly orders user_id and email as rank `1` and `2`, respectively. All other identifiers are in alphabetical order beginning from rank `3`. This means that if the identifiers sent with events flowing into Personas are user_id, email, anonymous_id, and ga_client_id, the rank would be as follows:
137
137
138
138
| Identifier | Priority |
139
139
| ------------ | -------- |
@@ -154,21 +154,21 @@ If a new android.id identifier appeared without first giving it explicit order,
154
154
155
155
If you require an explicit order for all identifiers, configure this in the Identity Resolution Settings page before sending in events.
When choosing the priority of your identifier, ask the following questions about each of the identifiers you send to Segment:
160
160
161
161
1. Is it an immutable ID? Give immutable IDs, such as user_id, highest priority.
162
162
2. Are they unique IDs? Give Unique IDs such as email higher priority than possibly shared identifiers like android.id or ios.id.
163
-
3. Does it temporarily identify a user? Identifiers such as anonymous_id, ios.idfa, ga_client_id are constantly updated or expired for a user. Generally speaking, rank these lower than identifiers that permanently identify a user.
163
+
3. Does it temporarily identify a user? Identifiers such as anonymous_id, ios.idfa, and ga_client_id are constantly updated or expired for a user. Generally speaking, rank these lower than identifiers that permanently identify a user.
164
164
165
165
### Importing from an existing space
166
166
167
167
This option is available to new spaces after you create an initial Dev space. Segment recommends this option when identity settings are validated as correct in the initial Dev space and should be copied into the Production space.
168
168
169
169
You can review the identifiers, priorities, limits, and blocked values before you complete the import.
170
170
171
-

171
+

172
172
173
173
## Connect a source
174
174
@@ -178,10 +178,10 @@ After you configure Identity Resolution settings, the next step is to connect a
178
178
179
179
After you connect a source, Personas creates user profiles based off of replayed and newly incoming data.
180
180
181
-

181
+

182
182
183
183
The next step, which is important in the Dev space, is to create an audience to ensure that user profiles have populated correctly and that the Identity Resolution settings follow expected business logic.
184
184
185
185
For example, if there should be 100,000 distinct users who have a `user_id`, this would be a great way to validate that the Identity Resolution settings have calculated profiles correctly.
186
186
187
-
For more information about how to create audiences and traits, see [Audiences](/docs/personas/audiences/).
187
+
For more information about how to create audiences and traits, see Segment's [Audiences docs](/docs/personas/audiences/).
0 commit comments