Concepts & Architecture
EXP Events
17min
introduction exp events provide detailed tracking and insights into user interactions within the nwexp environment from nw sdk by leveraging these events, developers can gain valuable analytics and enhance their application’s functionality these events cover a range of actions, including playback controls, camera and audio switches, synchronization processes, and menu interactions with this data, developers can monitor user behavior track which features users interact with most frequently, such as specific cameras or audio options analyze event outcomes assess the success or failure of actions like camera switches or seeks to fine tune the application's performance and reliability integrate with analytics tools feed this event data into analytics platforms to generate reports, identify trends, and make data driven decisions these events are part of our experimental features and are subject to change the naming conventions and functionalities may be updated in future releases this comprehensive event tracking allows for a deeper understanding of user engagement, enabling improvements and customization based on real usage patterns exp events implementation android intigrate exp events ios intigrate exp events web tba exp event types and payloads tracked/manifest loaded description this event signals that the nwexp is ready to watch it includes information about available cameras and global audio options json example { "type" "tracked/manifest loaded", "payload" { "cameras" \[ { "id" "camera id", "name" "camera name" } ], "global audios" \[ { "id" "global audio id", "name" "global audio name" } ] } } payload explanation cameras a list of available cameras id the unique identifier for the camera name the display name of the camera it can be null global audios a list of available global audio options it can be null if there is no global audio in the manifest id the unique identifier for the global audio name the display name of the global audio it can be null tracked/controls visibility changed description this event is triggered when the visibility of an overlay changes json example { "type" "tracked/overlay visibility", "payload" { "value" true } } payload explanation value a boolean indicating whether the overlay is visible (true) or not (false) tracked/sync request, tracked/sync failed, tracked/sync success description these events relate to synchronization processes in the application, indicating a request for sync, a failed sync attempt, or a successful sync json example { "type" "tracked/sync request | tracked/sync failed | tracked/sync success", "payload" {} } payload explanation these events do not require any additional details in the payload, and it can be an empty object tracked/play, tracked/pause, tracked/replay description these events are triggered by playback controls such as play, pause, and replay json example { "type" "tracked/play | tracked/pause | tracked/replay", "payload" {} } payload explanation similar to the sync events, these playback events do not require any additional details in the payload, and it can be an empty object tracked/camera switch request, tracked/camera switch success, tracked/camera switch failed description these events are triggered when a camera is switched, and they indicate whether the switch was successful or failed json example { "type" "tracked/camera switch request | tracked/camera switch success | tracked/camera switch failed", "payload" { "selected id" "camera id" } } payload explanation selected id the id of the camera that was selected tracked/audio switch request, tracked/audio switch success, tracked/audio switch failed description these events are triggered when an audio (global audio) source is switched, and they indicate whether the switch was successful or failed json example { "type" "tracked/audio switch request | tracked/audio switch success | tracked/audio switch failed", "payload" { "selected id" "audio id" } } payload explanation selected id the id of the audio source that was selected tracked/seek request, tracked/seek success, tracked/seek failed description these events are triggered when a seek action is performed on the playback display timeline, and they indicate whether the seek was successful or failed json example { "type" "tracked/seek request", "payload" { "position" 120 0 } } { "type" "tracked/seek success | tracked/seek failed", "payload" {} } payload explanation position the position on the playback timeline (in seconds or timestamp) to which the user has sought tracked/jump request, tracked/jump success, tracked/jump failed description these events are triggered when a jump action is performed in the media playback (e g , skipping forward or backward), and they indicate whether the jump was successful or failed json example { "type" "tracked/jump request", "payload" { "value" 10 | 10 } } { "type" "tracked/jump success | tracked/jump failed", "payload" {} } payload explanation value the number of seconds to jump forward (positive value) or backward (negative value) tracked/menu shown description this event is triggered when an item from the menu is selected json example for main menu { "type" "tracked/menu shown", "payload" { "selected id" "cameras", "name" "camera", "parent" null } } json example for sub menu { "type" "tracked/menu shown", "payload" { "selected id" "lineup", "name" "lineup", "parent" "analytics" } } payload explanation selected id the id of the selected menu item name the name of the selected menu item parent indicates whether the main menu of that sub menu if it’s the main menu, parent will be null tracked/moment selected description this event is triggered when a specific moment (play by play or match events), such as a highlight or key event, is selected json example { "type" "tracked/moment selected", "payload" { "position" 450, "name" "goal highlight" } } payload explanation position the position on the playback timeline (in seconds or timestamp) to which the user has sought name the name of the selected moment tracked/exp exit description this event signals that the user has exited the nwexp json example { "type" "tracked/exp exit", "payload" {} } payload explanation this event does not require any additional details in the payload, and it can be an empty object