User-Identifiers

Overview

This page provides guidance on how to declare User Identifiers in common tracking examples (see Why should I declare User Identifiers?):

In this page

What are User Identifiers?

User identifiers allow you to declare some kind of unique identifier for a give user. For example, you may wish to declare your own identifier for a user using wt.dcsvid or perhaps the user’s SHA-256 hashed email address using wt.email_sha256. Please see below for guidance:

List of User Identifiers

Parameter Name Syntax Sample Value Notes
wt.dcsvid External Visitor Parameter* {YOUR EXTERNAL-LEVEL IDENTIFIER} wt.dcsvid=MYCUSTOMERID123 -
wt.email_sha256 SHA-256 Hashed Email Address {SHA-256 HASHED EMAIL ADDRESS} wt.email_sha256=588833DBA4CCAE4E7A33ADFA7F3F965073A4F3E4D05B5C2935BD642D22107247 -

*External Visitor Parameters can be set for any identifier (for example, your customer ID).

You also declare identifiers using any parameter name you wish (for example, you could declare an MD5-hashed email as wt.email_md5).

Example - Sign In

You can declare User Identifiers within any tracking you wish. Please see below for an example of user identifiers being declared upon sign in by a user:

Description

Upon successful login of a user.

Sample Usage

Parameter Name Syntax Sample Value Notes
wt.ev Event Type $SignIn wt.ev=$SignIn - Required for Sign In within Behaviors
wt.dcsvid External Visitor Parameter* {YOUR EXTERNAL-LEVEL IDENTIFIER} wt.dcsvid=MYCUSTOMERID123 -
wt.email_sha256 SHA-256 Hashed Email Address {SHA-256 HASHED EMAIL ADDRESS} wt.email_sha256=588833DBA4CCAE4E7A33ADFA7F3F965073A4F3E4D05B5C2935BD642D22107247 -

*External Visitor Parameters can be set for any identifier (for example, your customer ID).

Example Implementation

Oracle CX Tag implementation

Please see below for an example implementation using the Oracle CX Tag:

<script>
(function(){
  // Send Data
  var cxDataObject = {     
    "wt.ev":"$SignIn", // Required for behavior
    "wt.tx_i":"132432ASP34",
    "wt.email_sha256":"588833DBA4CCAE4E7A33ADFA7F3F965073A4F3E4D05B5C2935BD642D22107247",
    "wt.dcsvid":"MYCUSTOMERID123"
  };
 
  // DO NOT EDIT BELOW THIS LINE - ORA.view() (you may also use ORA.click() depending on your scenario)
  window.ORA = window.ORA || {productReady: []};
  ORA.productReady.push(['analytics', function(cxDataObject) {return function() {return ORA.view({"data": cxDataObject})}}(cxDataObject)]);
})();
</script>

Data Collection API Implementation

Please see below for an example implementation using the Data Collection API (why would I use this?) on a webpage (ensuring you persist the visitor ID as wt.co_f in your API calls):

<script>
(function() {
  var xmlhttp = new XMLHttpRequest();
  var url = "https://dc.oracleinfinity.io/v3/ACCOUNTGUID" // where ACCOUNTGUID is your account GUID
 
  var payload = {
    "static": {
      "wt.co_f": "d19aabf1-f402-4854-b890-be077afa1b89" // Visitor ID : Take value of 'id' from ORA_FPC cookie
    },
    "events": [{
      "wt.dl": "0", // Denotes Page View (or "1" for a click)
      "dcsuri": document.location.pathname, // pathname
      "domain": document.domain, // domain           
      "wt.ti": document.title, // page title
      "wt.es": document.domain + document.location.pathname, // URL
      "wt.ssl": (document.location.protocol === "https:") ? "1" : "0", // Secure/non-secure
      "wt.ev": "$SignIn", // Required for behavior
      "wt.email_sha256": "588833DBA4CCAE4E7A33ADFA7F3F965073A4F3E4D05B5C2935BD642D22107247",
      "wt.dcsvid": "MYCUSTOMERID123"
    }]
  };
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      window.console.log("post was successful, response was " + this.response);
    } else if (this.readyState == 4 && this.status != 200) {
      window.console.log("post was not successful, response was " + this.response);
    }
  };
  xmlhttp.open("POST", url);
  xmlhttp.setRequestHeader("Content-Type", "application/json");
  xmlhttp.send(JSON.stringify(payload));
})();
</script>

Frequently Asked Questions

Why should I declare User Identifiers?

Declaring User Identifiers ensures that you can leverage this identifier within your Actions to target users in your Connections.

For example, you may wish to send emails to user who abandon their shopping cart using Oracle Responsys - to do this you will need to send an identifier which Responsys can accept (typically EMAIL_SHA256_HASH_ or CUSTOMER_ID_).

You can declare any identifier you would like in wt.dcsvid . For example, you could populate this with a SHA256 hashed email address or your own identifier for this user. Please see External Visitor Parameters for more details.

Which user identifiers should I declare?

It is best-practice to ensure you declare at least one User Identifier for known users on your website. Specifically, you should ensure that you are declaring at least the identifiers the Connections you wish to work with require.

Can I declare my own Parameters?

Yes, you can declare any parameters you like (for example, wt.mycustomparam=myvalue). Please see Parameters and Parameter Syntax.

Can I declare User Identifiers as User Attributes?

IQ Customers Only
User Attributes are only available for users with an Infinity IQ licence.

Yes, you can declare user-level identifiers as user attributes (if you wish to persist a parameter in a user’s profile for future user). For example, you may wish to declare a user’s SHA-256 hashed email in a profile - you can declare it as wt.email_sha256 and/or user.email_sha256:

When you declare a User Attribute (e.g. user.email_sha256), it will be persisted in the user’s profile for use in future events/sessions.

Sample Sign In - CX Tag tracking code for web

<script>
(function(){
  // Send Data
  var cxDataObject = {     
    "wt.ev":"$SignIn", // Required for behavior
    "wt.tx_i":"132432ASP34",
    "wt.email_sha256":"588833DBA4CCAE4E7A33ADFA7F3F965073A4F3E4D05B5C2935BD642D22107247", // Standard Parameter
    "user.email_sha256":"588833DBA4CCAE4E7A33ADFA7F3F965073A4F3E4D05B5C2935BD642D22107247", // User Attribute (will persist in the user's profile)
    "wt.dcsvid":"MYCUSTOMERID123"
  };
 
  // DO NOT EDIT BELOW THIS LINE - ORA.view() (you may also use ORA.click() depending on your scenario)
  window.ORA = window.ORA || {productReady: []};
  ORA.productReady.push(['analytics', function(cxDataObject) {return function() {return ORA.view({"data": cxDataObject})}}(cxDataObject)]);
})();
</script>

What do all of the parameters mean?

Please see Full Parameter Reference for full definitions per parameter.

Learn more

Common Tracking Examples - Browse common tracking situations with their respective Infinity parameters..

Full Parameter Reference - View the full list of default Oracle Infinity parameter.

Oracle CX Tag - Implementation - Learn how to create tracking calls using the Oracle CX Tag.

Data Collection API - Learn how to send data into Oracle Infinity by API.

Oracle CX Mobile SDK - Behavior Tracking (Android) - Learn how to send data to Oracle Infinity using the Oracle CX Mobile SDK Infinity Module for Android.

Oracle CX Mobile SDK - Behavior Tracking (iOS) - Learn how to send data to Oracle Infinity using the Oracle CX Mobile SDK Infinity Module for iOS.