Event-based Data Capture refers to the real-time reception of data as it occurs. The specific configuration for enabling this capability may differ across platforms; however, the reported objects will generally contain similar content in both platforms.
These are the different data objects.
| Property Name | Unit | Type | Description | Platform | |
|---|---|---|---|---|---|
| language | name | string | Current language that the user is typing in. ISO 639-1 - ISO 3166-1 representation. Ex: en-US | Both | |
| languageVersion | name | string | Current version for the dictionary language that we are using. | Both | |
| layout | name | string | Current layout used for the keyboard, which depend on the language and user preferences. Example: QWERTY, AZERTY, .. | Both | |
| textFieldType | name | enum | Current Textfield where the user is writting. | Both | |
| appContext | name | string | Current package name of the app where the keyboard is shown. From iOS16 this is not possible, so it might be empty. | Both | |
| schemaVersion | name | string | JSON schema version the captured data complies to following semver standard | Both | |
| timeZone | hours | number | Current Timezone referenced to GMT | Both | |
| startTimestamp | ms | number | Timestamp for session start time | Both | |
| endTimestamp | ms | number | Timestamp for session end time. If the sesssion is still active, this value will be zero. | Both | |
| keyboardAreaWidth | pixels | number | Keyboard width positioned inside the screen in pixels | Both | |
| keyboardAreaHeight | pixels | number | Keyboard height positioned inside the screen in pixels | Both | |
| screenWidthMm | mm | number | Screen width of the phone/tablet in mm | Both | |
| screenHeightMm | mm | number | Screen height of the phone/tablet in mm | Both | |
| screenWidthPx | pixels | number | Screen width of the phone/table in pixels, total number of pixels | Both | |
| screenHeightPx | pixels | number | Screen height of the phone/table in pixels, total number of pixels | Both | |
| sessionText | text | string | Transcription of the final text input content by the end of the session. | Both |
Current Textfield where the user wrote. There might be different values depending on the platform.
This object contains the following values for Android:
- Text: Regular Text field
- Password: Password text field
- URL: URL text field
- Email_Address: Email text field
- Numbers: Numbers text field
- Twitter: Twitter text field, used in Twitter/Slack / …
- Websearch: Websearch textfield
- User_AC_OFF: Regular text field without Autocorrection
- No_Suggestions: Regular text field without suggestions
- Twitter_AC_OFF: Twitter text field without AC
- Phone: Phone text field for adding a phone number
- Undefined: None of the above
This object contains the following values for iOS:
- regularText: Regular Text field
- url: URL text field
- emailAddress: Email text field
- numbers: Numbers text field
- twitter: Twitter text field, used in Twitter/Slack / …
- websearch: Websearch textfield
- undefined: None of the above
sessionText is the accumulated text collected during the session. Value will be filled/available upon session’s termination (last sessionUpdate event within a session).
We have special characters to distinguish different behaviours:
\n |
When the end-user presses enter we mark this as \n in the reporting |
<probable>probable text</probable> |
We mark text as <probable> when the keyboard is not able to distinguish if that text is present or not. There are two specific cases when this behaviour can be experienced: 1. When the whole text in the textfield is cut. 2. When the whole text in the textfield is selected and the text is committed, e.g. using send button in the Messages app. This is a new parameter introduced in these versions: iOS 4.14.2 and Android 4.4.21 |
The keystroke object is generated when the end-user taps any key.
| Property Name | Unit | Type | Description | Platform | |
|---|---|---|---|---|---|
| pressTime | ms | number | Time relative to the startUnixTime reported in the SessionUpdate object. | Both | |
| releaseTime | ms | number | Time relative to the startUnixTime reported in the SessionUpdate object. | Both | |
| keyPressBegin | points | (x,y) | - | Both | |
| keyPressEnd | points | (x,y) | - | Both | |
| keyCenter | pixels | (x,y) | Center of the key that we are pressing reference to the screen area in pixels | Both | |
| keyRectangle | pixels | (x,y,width,height) | Dimension of the key that we are pressing reference to the screen area in pixels | Both | |
| keyType | - | Key type indicating character family | Both | ||
| keyCode | number | number | Keystroke character equivalent UTF8 Unicode in Decimal. First characters its equivalent to ASCII32. | Both | |
| keyArea | - | number | Description of the area where the user has pressed. Values from 0 to 5 | Both | |
| keyText | string | text | Current text pressed, which could be a character, an emoji. | Both |
Key type indicating character family.
This object contains the following values:
alphanumeric: Alphanumericpunctuation: Symbols and punctuationspacebar: Space barbackspace: Backspaceenter: EntermodifierKey: Modifier keyshift: ShiftautoShift: Automatic shiftautoToggleNumbers: Automatic numberstoggleEmojis: Emoji button / keyboard from emoji (Note: This value was “em” in the sdk versions iOS 3.X.X and Android 3.X.X)prediction: Prediction from the topbarsuggestion: Suggestion from the topbarother: Others
Keystroke character equivalent UTF8 Unicode in Decimal. First characters its equivalent to ASCII32.
Note:
- Number 000 makes reference to actions.
- Number 900 makes reference to emoji. The transcription of this emoji it is in the array of emojis, by order.
- Number 901 makes reference to a prediction.
Description of the area where the user has pressed. This is a keyArea enum:
This object contains the following values:
undefinedQWASZERDFXCTYGVUIHJBNOPKLMsuggestionBar(Note: Versions previous of iOS 4.8.4 and Android 4.2.3 was “9”)
Information related to each of the words.
| Property Name | Type | Description |
|---|---|---|
| originalWord | string | Original word written (in case of AC, Prediction or swipe) |
| word | string | Word recorded |
| isAutoCorrectedWord | number | It comes from an autocorrection if 1. |
| isPredictedWord | number | It comes from a prediction if 1. |
| isSwipeWord | number | It comes from a swipe typing if 1. |
| autocorrectionType | enum | Type of autocorrection in case of autocorrection true. |
| autocorrectionValue | number | Value related to autocorrectionType |
| timestamp | number | Time from the start of the session |
| uniP | number | Unigram log probability of this word |
Values:missedSpace – in this case value is number of words splitted into misstypedSpace – Miss an space eliminated – Characters deleted transpositioning – Value of characters changed missingTap – Value of missed taps in the word none – empty in case of no type
Collection of all data related to a trace on top of the keyboard to detect a word.
| Property Name | Type | Description |
|---|---|---|
| layout | string | Specific keyboard layout for swipe. Example: QWERTY, AZERTY, .. |
| context | string | Previous word of the swipe |
| word | string | Final written word |
| selectedSuggestion | string | This is empty unless the user presses one of the suggestions of the topbar. |
| feature | <Array> of <Features> |
- |
| candidates | <Array> of <Candidates> |
Array of candidates proposed based on the features. |
| timestamp | number | Time from the start of the session. |
| Property Name | Type | Description |
|---|---|---|
| point | (x,y) | Point for each of the features |
| label | string | Letter detected |
| timestamp | number | Path point timestamp from start of the session |
| Property Name | Type | Description |
|---|---|---|
| candidate | string | Word |
| shapeProb | number | Shape log probability |
| finalProb | number | Final log probability |
Delete object with the data related to the delete action.
| Property Name | Type | Description |
|---|---|---|
| word | string | Word being delete before applying the delete action |
| deleteCharacter | string | Character to delete |
| typeDelete | number | Type of delete deleteCharacter – Delete a Character deleteSpace – Delete a Space undoAC – Delete action that undo previous AC |
| timestamp | number | Time from the start of the session |
Key plane object is the representation of all the different keys drawn in the screen.
| Property Name | Object | Description |
|---|---|---|
| keyPlaneId | KeyboardPlaneType | |
| keys | Array of Key |
It holds all different type of keyboard planes:
qwertyLower / qwertyUpper / qwertyAC_OffLower / qwertyAC_OffUppernumbers / numberPad / numberPadSymbols / number_iOS / numbersMinisymbols / symbols_iOSshift1 / shift2 / shift3phonePad / phonePadSymbolsemojistwitterLower / twitterUpper / urlLower / urlUpper / emailLower / emailUppertempinvalid| Property Name | Type | Description |
|---|---|---|
| label | string | Label associated with key if any |
| center | (x,y) | Center of the key |
| rectangle | (x,y,width,height) | Rectangle space of the whole key. |
When we have the capability of stress enabled we will be able to receive this object too.
| Property Name | Type | Description |
|---|---|---|
| stress | Stress | Which level of stress is detecting the system. |
| regime | Regime | It represents the current status of the system: training or not. |
| Property Name | Type | Description |
|---|---|---|
| Status | enum | Values: stressDetected / stressNotDetected / Undefined |
| Property Name | Type | Description |
|---|---|---|
| regime | enum | Returns if the system is in training mode or `inference mode. |