Emarsys does not identify or link users across customer databases and apps using parameters tracked by the SDK or in other ways.
It is your responsibility to ensure that you always obtain the necessary consent for that data from your consumers (i.e: a natural person such as a customer, contact, or account).
Renaming the hardwareID parameter to clientID
We will be renaming the hardwareID parameter in our SDK to clientID.
The hardwareID, to be renamed clientID, is an 8-character alphanumeric string generated when the SDK is first initialized.
It does not contain any personal information, it does not identify individuals and is used only to provide SDK functionalities and session management.
IOS
- The hardwareID is stored in the Keychain as a local value and does not sync with iCloud.
- Different apps using our SDK generate a distinct hardwareID on the same device.
- Stays consistent between sessions unless the device is reset to factory settings, or the OS is reinstalled.
Android
- A new hardwareID is generated each time the app is downloaded.
No immediate action is needed as functionality remains the same. We will announce the renaming timeline and give you time to prepare.
Make sure that you review any dependencies you may have on hardwareID.
Table: Automatically tracked data by the SDK
The following data is automatically tracked by the SDK:
Automatically tracked data by the SDK | ||
Refresh contact token | refreshToken - String | |
Anonymous contact creation | ||
DeviceInfo |
platform - String | |
applicationVersion - String | ||
deviceModel - String | ||
osVersion - String | ||
sdkVersion - String | ||
language - String | ||
timezone - String | ||
notificationSettings - Dictionary<String, Any> | ||
hwid - String | ||
channelSettings - Dictionary<String, Any> | ||
Events |
AppStart | |
Geofence enter | ||
push: open and action button click events | ||
in-app: view and action button click events | ||
trackDeepLink events but only in case your Activity has no onNewIntent overridden | ||
With every event
tracking |
Clicks - Array |
campaignId - String |
buttonId - String | ||
Timestamp - String | ||
viewedMessages -
Array |
campaignId - String | |
Timestamp - String | ||
With every in-app message | viewIds - Array | |
Clicks - Array |
campaignId - String | |
buttonId - String | ||
Timestamp - String |
Table: Manually tracked data
The following data is manually tracked:
Manually tracked data | ||
Contact
identification |
Anonymous - false | |
contactFieldId - Number | ||
contactFieldValue - String | ||
Set push token | pushToken - String | |
Events |
dnd(Do not disturb) - Boolean | |
Events - Array |
Type - String | |
Name - String | ||
Timestamp - String | ||
Attributes - Map<Any<String, String>> | ||
Inline in-apps |
/v3/apps/:app_code/messages/:message_id | |
Signature - String | ||
Lang - String | ||
Expires - Number | ||
With every call |
X-Client-Id - String | |
X-Contact-Token - String (on event endpoints) | ||
X-Client-State - String | ||
X-Request-Order - string | ||
Predict |
predict_item_category_view | category path |
predict_item_view | itemId | |
predict_cart | cartItems <Array> - itemId - Price - Quantity |
|
predict_search_term | searchTerm | |
predict_purchase |
orderId | |
Items <Array> - itemId - Price - Quantity | ||
predict_tag | tag | |
predict_item_view | product - productId - title - linkUrl - customFields <String, Any> - feature - cohort - imageUrl - zoomImageUrl - categoryPath - available - productDescription - price - msrp - album - actor - artist - author - brand - year |