V3 Event Details
Every API method has an associated event. The following API methods log details of the associated telemetry event.
- Interact - This method is used to capture user interactions on a page. For example, search, click, preview, move, resize, configure
- Response - This method is used to capture user responses. For example; response to a poll, calendar event or a question.
- Interrupt - This method is used to capture interrupts triggered during user activity. For example; mobile app sent to background, call on the mobile, etc.
- Share - This method is used to capture everything associated with sharing. For example; Share content, telemetry data, link, file etc.
- Log - This method is used to capture generic logging of events. For example; capturing logs for API calls, service calls, app updates etc.
- Search - This method is used to capture the search state i.e. when search is triggered for content, item, assets etc.
This API is used to log telemetry when users view content or initiate game play
start: function(config, contentId, contentVer, data) { }
Request Arguments:
{
"config": Object, //Config object
"contentId": String, //Required. Id of the content
"contentVer": String, //Required. Version of the content. Defaults to "1.0"
"data": { // Required. event data
"type": String, //Required. app, session, editor, player, workflow, assessment
"mode": "", //Required. mode of preview: preview, edit or play
"stageid": "" //Required. stage id where the play has been initiated
}
}
This API is used to log telemetry when users visit a specific page.
impression: function(data) { }
Request Arguments:
data - Object //Required
{
"type": String, //Required. Impression type (list, detail, view, edit, workflow, search)
"subtype": String, //Optional. Additional subtype. "Paginate", "Scroll"
"pageid": String, //Required. Unique page id
"itype": "", // type of interaction - SWIPE, SCRUB (fast forward using page thumbnails) or AUTO
"stageto": "" // game level, stage of page id to which the navigation was done
}
This API is used to log telemetry of user interactions on the page. For example, search, click, preview, move, resize, configure
interact: function(data) { }
Request Arguments:
data - Object //Required
{
"type": "", // Required. Type of interaction TOUCH,DRAG,DROP,PINCH,ZOOM,SHAKE,ROTATE,SPEAK,LISTEN,WRITE,DRAW,START,ENDCHOOSE,ACTIVATE,SHOW,HIDE,SCROLL,HEARTBEAT,OTHER
"subtype": "", // Optional. Additional types for a global type. For ex: for an audio the type is LISTEN and thesubtype can be one of PLAY,PAUSE,STOP,RESUME,END
"id": "", // Required. Resource (button, screen, page, etc) id on which the interaction happened - use systemidentifiers when reporting device events
"pageid": "", // Optional. Stage or page id on which the event happened
"extra": { // Optional. Extra attributes for an interaction
"pos": [{"x":,"y":,"z":}], // Array of positional attributes. For ex: Drag and Drop has two positional attributes. One where the drag has started and the drop point
"values": [], // Array of values, e.g. for timestamp of audio interactions
"tid": "", // When interaction is between multiple resources, (e.g. drag and drop) - target resource id
"uri": "" // Unique external resource identifier if any (for recorded voice, image, etc.)
}
}
This API is used to log telemetry of assessments that have occured when the user is viewing content
assess: function(data) { }
Request Arguments:
data - Object //Required
{
"item": QUESTION, // Required. Question Data
"pass": "", // Required. Yes, No. This is case-sensitive. default value: No.
"score": , // Required. Evaluated score (Integer or decimal) on answer(between 0 to 1), default is 1 if pass=YES or 0 if pass=NO.
"resvalues": [{"id":"value"}], // Required. Array of key-value pairs that represent child answer (result of this assessment)
"duration": // Required. time taken (decimal number) for this assessment in seconds
}
QUESTION = {
"id": "", // unique assessment question id. its an required property.
"maxscore", // user defined score to this assessment/question.
"exlength": , // expected time (decimal number) in seconds that ideally child should take
"params": [ // Array of parameter tuples
{"id":"value"} // for ex: if var1 is substituted with 5 apples the parameter is {"var1":"5"}
],
"uri": "", // Unique external resource identifier if any (for recorded voice, image, etc.)
"desc": "short description",
"title": "title",
"mmc": [], // User defined missing micros concepts
"mc": [] // micro concepts list
}
This API is used to log telemetry of user response. For example; Responded to assessments.
response: function(data) { }
Request Arguments:
data - Object //Required
{
"target": TARGET, // Required. Target of the response
"qid": "", // Required. Unique assessment/question id
"type": "", // Required. Type of response. CHOOSE, DRAG, SELECT, MATCH, INPUT, SPEAK, WRITE
"values": [{"key":"value"}] // Required. Array of response tuples. For ex: if lhs option1 is matched with rhs optionN - [{"lhs":"option1"}, {"rhs":"optionN"}]
}
TARGET = {
"id": "", // Required. unique id for the target
"ver": "", // Required. version of the target
"type": "", // Required. Type of the target
"parent": {
"id": "", // Optional. parent id of the object
"type": "" // Optional. parent type of the object. Required if parentid is present.
}
}
This API is used to log telemetry for any interruptions that have occurred when a user is viewing content or playing games. For example; screen lock, incoming call, etc.
interrupt: function(data) { }
Request Arguments:
data - Object //Required
{
"type": "", // Required. Type of interuption
"pageid": "", // Optional. Current Stage/Page unique id on which interuption occured
"eventid": "" // Optional. unique event ID
}
This API is used to log telemetry of feedback provided by the user.
// To log content start/play event
feedback: function(data) { }
Request Arguments:
data - Object //Required
{
"contentId": "", // Required. Id of the content
"rating": 3, // Optional. Numeric score (+1 for like, -1 for dislike, or 4.5 stars given in a rating)
"comments": "User entered feedback" // Optional. Text feedback (if any)
}
This API is used to log telemetry when a user shares any content with other users.
// To log content start/play event
share: function(data) { }
Request Arguments:
data - Object //Required
{
"dir": "", // In/Out
"type": "", // File/Link/Message
"items": [{ // Required. array of items shared
"obj": {
"id": "",
"type": "",
"ver": ""
},
"params": [
{"key": "value"}
],
"origin": { // Origin of the share file/link/content
"id": "", // Origin id
"type": "" // Origin type
},
"to": {
"id": "",
"type": ""
}
}]
}
This API is used to log telemetry when an object is changed. This includes life-cycle changes as well.
audit: function(data) { }
Request Arguments:
data - Object //Required
{
"edata": {
"props": [""], // Updated properties
"state": "", // Optional. Current state
"prevstate": "" // Optional. Previous state
}
}
This API is used to log telemetry of any error that has occurred when a user is viewing content or playing games.
error: function(error) { }
Request Arguments:
error - Object //Required
{
"err": "", // Required. Error code
"errtype": "", // Required. Error type classification - "SYSTEM", "MOBILEAPP", "CONTENT"
"stacktrace": "", // Required. Detailed error data/stack trace
}
This API is used to log telemetry for heartbeat event to denote that the process is running.
heartbeat: function(data) { }
Request Arguments:
data - Object //Required
{
{
"edata": {
}
}
This API is used to log telemetry of generic log events. For example; API calls, service calls, app updates, etc.
log: function(data) { }
Request Arguments:
data - Object //Required
{
"type": "", // Required. Type of log (system, process, api_access, api_call, job, app_update etc)
"level": "", // Required. Level of the log. TRACE, DEBUG, INFO, WARN, ERROR, FATAL
"message": "", // Required. Log message
"params": [{"key":"value"}] // Optional. Additional params in the log message
}
This API is used to log telemetry when a user triggers a search for any content, item or asset
search: function(data) { }
Request Arguments:
data - Object - Required
{
"type": "", // Required. content, assessment, asset
"query": "", // Required. Search query string
"filters": {}, // Optional. Additional filters
"sort": {}, // Optional. Additional sort parameters
"correlationid": "", // Optional. Server generated correlation id (for mobile app's telemetry)
"size": 333, // Required. Number of search results
"topn": [{}] // Required. top N (configurable) results with their score
}
This API is used to log telemetry for service business metrics (also accessible via health API).
metrics: function(data) { }
Request Arguments:
data - Object - Required
{
"edata": {
"metric1": Int,
"metric2": Int
/// more metrics, each is a key value
}
}
This API is used to log telemetry summary event
summary: function(data) { }
Request Arguments:
data - Object - Required
{
"edata": {
"type": "", // Required. Type of summary. Free text. "session", "app", "tool" etc
"mode": "", // Optional.
"starttime": Long, // Required. Epoch Timestamp of app start. Retrieved from first event.
"endtime": Long, // Required. Epoch Timestamp of app end. Retrieved from last event.
"timespent": Double, // Required. Total time spent by visitor on app in seconds excluding idle time.
"pageviews": Long, // Required. Total page views per session(count of CP_IMPRESSION)
"interactions": Long, // Required. Count of interact events
"envsummary": [{ // Optional
"env": String, // High level env within the app (content, domain, resources, community)
"timespent": Double, // Time spent per env
"visits": Long // count of times the environment has been visited
}],
"eventssummary": [{ // Optional
"id": String, // event id such as CE_START, CE_END, CP_INTERACT etc.
"count": Long // Count of events.
}],
"pagesummary": [{ // Optional
"id": String, // Page id
"type": String, // type of page - view/edit
"env": String, // env of page
"timespent": Double, // Time taken per page
"visits": Long // Number of times each page was visited
}],
"extra": [{ // Optional. Additional summary data specific to mime type or app. For ex: wordsPerMin
"id": "", // Required. Key for the extra data
"value": "" // Required. Value for the extra data
}]
}
}
This API is used to log telemetry for external data, while playing content
exdata: function(data) { }
Request Arguments:
data - Object - Required
{
type - Free flowing text. For ex: partnerdata, xapi etc
.... Serialized data (can be either encrypted/encoded/stringified)
}
This API is used to log telemetry while the user is closing or exiting the content or game
end: function(data) { }
Request Arguments:
data - Object //Required
{
"contentId": "", // Required. Id of the content
"type": , // Required. app, session, editor, player, workflow, assessment
"duration": , // Required. Total duration from start to end in seconds
"pageid": "", // Optional. Page/Stage id where the end has happened.
"summary": [{"key":"value"}] // Optional. Summary of the actions done between start and end. For ex: "progress" for player session, "nodesModified" for collection editor
}
Last modified 1yr ago