Each unique unknown visitor of which RPI Realtime becomes aware is by default assigned a GUID identifier, which is used to key their visitor profile. The visitor ID is stored in a cookie to ensure its maintenance across sessions.
When a visitor makes her- or himself know to RPI (via one of the mechanisms listed above), the GUID is replaced with one of a configurable set of IDs. These are defined using the following RPI Realtime appsettings.json configuration settings:
• MasterKeyName: this setting facilitates the definition of the name of the principal key to be used to identify known visitors’ profiles.
For example, when ‘CustomerKey’ is defined as the master key, navigating to ‘http://mylandingpage.com?CustomerKey=12345’ will result in the visitor’s profile being keyed on CustomerKey, with value ‘12345’.
• MasterKeyAliases: this setting facilitates the definition of an array of alternative names for the master key. For example, a ‘CustomerKey’ master key might be referenced as ‘CK’ in a querystring (e.g. ‘http://mylandingpage.com?CK=12345’.
• AlternativeKeys: this setting provides the ability to specify alternative keys that can be used to identify a visitor. The link between the master key and alternative keys can be established by:
o A querystring’s containing both sets of name/value pairs.
o Populating the realtime cache using either a cached attribute list or realtime cache offer containing both the master and additional keys.
If a previously-unknown visitor already has a visitor profile, and is identified using one of the keys listed above, the existing profile is updated with the new visitor ID. In addition, if contents of the unknown visitor profile are merged with any existing known visitor profile, to create a single, unified visitor profile per visitor.
When two profiles are merged, details of the same stored in visitor profile to which merged; e.g.:
"Merge":[{"fid":"c371b2e2-fb6b-4788-b274-376ae57dca80","tid":"11000","dir":"MergeFrom","mst":"True","mDate":"2021-03-30T08:35:30.7518212+01:00"}].
In addition, if appsettings property EnableProfileMergeEvents is set to true, a ProfileMerge event is raised. If TrackProfileMergeInSourceProfile is set to true, the profile from which merged is updated with the merge details.
A HashVisitorID appsettings property can be used to obfuscate visitor IDs as returned in calls from the RPI Realtime API.