User identifiers
It is important to distinguish the nodes representing a user identifier and the nodes describing content on the user.
Every activity or import that'll have one of those properties set will automatically be related to the correct user point.
Any activity using an identifier that doesn't already exist in the datamart will trigger the creation of a new user point.
You can bulk associate, dissociate or delete user identifiers using the bulk import feature.
There are three different types of user identifiers :

User accounts

User accounts identify a user registered on your different systems, like your CRM, a loyalty program or any authentication system. have the following properties:
property
type
description
user_account_id
String
Usually the same as the ID as the source, like your CRM.
compartment_id
String
Compartment associated with the user account
creation_ts
Timestamp
Account's creation timestamp
Always use the user_account_id in correlation with a compartment_id to identify a user by its account. If you don't specify a compartment_id, then the default compartment will be used.

User emails

Users can have multiple emails registered on the platform. They have the following properties:
property
type
description
hash
ID
Hashed user email. Always use the same hashing function (ex: SHA-256) in your datamart and all its integrations to allow proper matching between data flows.
email
String
Optional. User's email, not hashed.
creation_ts
Timestamp
When the email was registered on the platform
Use the email hash to identify a user by its email, usually with an email_hash field on requests.

User agents

User agents identify a user by its device. Users can have multiple registered user agents, and each agent has the following properties:
property
type
description
vector_id
String
Unique ID generated by mediarithmics and associated with each agent
device
Object
Device pieces of information such as operating system and browser
creation_ts
Timestamp
When the user agent was registered on the platform
mappings
Array
Additional identifiers called the device mappings. They are cookie-based identifiers or mobile application identifiers associated with the agent.
Two web browsers on the same desktop PC are considered as two distinct agents. For example, your Chrome browser on your Windows laptop is a different device than your Firefox browser on the same laptop. On smartphones, the web browser and the phone itself are considered as two distinct agents.
Agent-based operations like visiting a website or seeing an ad will generally automatically leverage the user agent to identify the user. You can use an agent to identify a user, usually with a user_agent_id field in the requests.

Vector identifier

This unique identifier is automatically generated by mediarithmics and associated with each agent. It is built with a number and the syntax is vec:number. For example vec:89998434 .
They identify a web browser agents using cookies and are stored in the mappings field of the agent. Their values can be defined:
  • Inside a custom web domain. It then has the format web:domainId:identifier where domainId is the web domain ID of client-domain.com and identifier is the value of the identifier inside the client-domain.com
  • By an Ad Exchange. It then has the format tech:provider:identifier, for example tech:apx:1234567654 for an AppNexus user identifier.

Mobile application identifiers

They identify a mobile application using its advertising identifier, managed by the mobile operating system. They are stored in the mappings field of the agent.
Here are the different names of the advertising identifiers depending on the operating system :
  • The Google Advertising Identifier (GAID) or the Android ID (ADID) for Android
  • The Apple Identifier (IDFA) for Advertisers on iOS
  • The Windows Advertising Identifier on Windows Phone
The structure of a mobile application identifier is mob:operating system key:encoding:value.
operating system key could be :
  • and for Android
  • ios for iOS
  • wip for Windows Phonee
The encoding field describes how the value is encoded. Available values are:
  • raw for no encoding
  • sha1 for SHA1
  • md5 for MD5
The value field contains the string value in lower case, after the optional encoding.

Examples

1
// Browser based agent
2
{
3
"vector_id": "vec:12345654321",
4
"device": {
5
"form_factor": "SMARTPHONE",
6
"os_family": "IOS",
7
"browser_family": "SAFARI",
8
"browser_version": null,
9
"brand": null,
10
"model": null,
11
"os_version": null,
12
"carrier": null,
13
"raw_value": null,
14
"agent_type": "WEB_BROWSER"
15
},
16
"creation_ts": 1591712194234,
17
"mappings": [
18
{
19
"user_agent_id": "tech:goo:Cazrazrkazeeza-azeree9-azezrze",
20
"realm_name": "GOOGLE_OPERATOR"
21
},
22
{
23
"user_agent_id": "tech:apx:12345654321654321",
24
"realm_name": "APP_NEXUS_OPERATOR"
25
}
26
]
27
}
28
29
// Mobile application agent
30
{
31
"vector_id": "vec:12345654321",
32
"device": {
33
"form_factor": "OTHER",
34
"os_family": "OTHER",
35
"browser_family": null,
36
"browser_version": null,
37
"brand": null,
38
"model": null,
39
"os_version": null,
40
"carrier": null,
41
"raw_value": null,
42
"agent_type": null
43
},
44
"creation_ts": 1573405364473,
45
"mappings": [
46
{
47
48
// IDFA user agent id with raw encoding: mob:ios:raw:6d92078a-8246-4ba4-ae5b-76104861e7dc
49
// IDFA user agent id with SHA1 encoding: mob:ios:sha1:d520a80c026be39edeb9c6e3f37c01f2da5f5e97
50
// ADID user agent id with raw encoding: mob:and:raw:97987bca-ae59-4c7d-94ba-ee4f19ab8c21
51
// ADID user agent id with MD5 encoding: mob:and:md5:ba06c008973b8a1bff6e087c6149227f
52
"user_agent_id": "mob:ios:raw:12345654-8246-1234-ae5b-123456454654",
53
}
54
]
55
},
Copied!