Data Types

Numbers

In order to be able to work with your attributes as numbers (e.g. do mathematical operations with them in reports), you need to pass these arguments in following format:

exponea.track('event_name',{
  'numberValue':11.3,
});

Strings

Bloomreach Engagement will handle all quoted attribute as String. Only exception is when you quote a number.

exponea.track('event_name',{
  'stringValue1':'hello world!',
  'stringValue2':'11,4',
  'stringValue3':'[2,3,4]'
});

Booleans

Bloomreach Engagement handles true/false as the format of a Boolean value.

exponea.track('event_name',{
  test1:true,
  test2:false
});

Objects

In order to create an Object, you need to pass the attributes as follows:

exponea.track('event_name',{
  'object1':{
    'string':'hello world!',
    'number':12
  }
});

Tip: Do not worry if you see [Object object] in Bloomreach Engagement App, you are able to access this object via Jinja in the personalization of email, weblayers, etc.

Arrays

If you need to track iterable array of any data types, you need to pass it followingly:

exponea.track('event_name',{
  'array':['hello world!',2,{'num':11}]
  //make sure to pass array as an Object, NOT as a JSON String
});

Dates

🚧

FOR CATALOGS ONLY :

The ISO 8601 (string) Dates format are working for Imports but not for updates via API. See the API documentation for catalog item and partial catalog item updates. Please use the UNIX timestamp format for these updates.

If you want to use an attribute as a Date in your reports, you need to send it in UNIX timestamp format.

exponea.track('event_name',{
  'now':Math.round(new Date().getTime()/1000),
  '1st Dec 2017':Math.round(new Date('2017-12-01').getTime()/1000),
  '2st Dec 2017':Math.round(new Date('2017-12-02').getTime()/1000)
});

In addition, you can also use the ISO 8601 format, as it is partially supported in Bloomreach Engagement (offset is not supported). To illustrate, this will work:

2018-8-5 12:20:25
2018-8-5t12:20:25Z
2018-8-5 12:20:25Z
2018-8-5 12:20:25.555Z
2018-8-5t12:20:25.555Z

However, this will not work:
2018-8-5T12:20:25+1200
2018-8-5T12:20:25-12:00

All digits used are taken into consideration as there is no rounding to seconds. Milliseconds and even microseconds are taken into account. For example, if you track for event timestamps 2021-08-16T13:03:00.000001Z, it will get to our system correctly with all 6 decimal places.