Integrations & SDKs

SDK Analytics

hotmic provides a variety of events available for your team via our sdk this allows you to get insights into how your users are interacting with our sdk inside your application not all users of the sdk will use the same features, so some of these events or screens may not be applicable to your usecase we have analytic events for each of the following categories of events screen shown events these trigger when a screen or panel/panel is displayed video events these trigger whenever a video is played (from host or creator) joining a stream analytics events these trigger in relation to when a user attempts to join a stream poll events these trigger when a viewer sees or acts on polls follow/share events these trigger when a viewer takes action related to following or sharing sync events for tv syncing events for syncronizing the timing with another screen chat events for events relating to chats tip events for events relating to tipping error events for any errors that we can catch and report on screen shown analytics events this following events trigger when a screen/panel is shown to the user "unknown" if for some reason the screen can't be inferred, it will show "unknown" "player" the main screen of the sdk, which has the stream and other content "broadcaster profile" the profile screen for the creator "user profile" user profile screen shown on tapping any user thumbnail in the chat panel "guest user profile" user profile screen shown on tapping any user thumbnail in people section from the player screen "sync panel" the panel to complete tv sync "player options panel" the options panel for settings in the viewer app "tips panel" the panel that displays when a user opts to tip "chat panel" this panel contains all the users chat, typically below the video in portrait mode "chat options panel panel displaying options (delete, block, make moderator, etc ) "expanded chat" this popup is for when a user taps a comment to react to it, they see reaction options such as 👍 "people panel" this panel shows when you tap the "people" icon in the bottom left next to chat it typically lists the number of people in the stream video analytics events video events whenever a video has ended for a viewer i the videos that this affect are the creator's streamed video or if a viewer is sending their video (using a guest call in feature) this event will trigger when the video is over, which includes when a viewer closes the app or leaves the stream video started this occurs any time we start playing video this can occur when a user taps play on a video (vod or live), or when a user enters a stream with a video that automatically plays, when the user resumes a paused stream, or when there is an issue that causes the player to stop and then restart it is possible in some cases for the "video played" event to trigger without the user having started the video, if they left before playing a video video played video id string the id of the video in the stream video title string video state string "scheduled" scheduled to start streaming at a future time "live" currently streaming "vod" ended and available for recorded viewing (vod) "ended" ended and not available for vod reason string reasons can be "unknown" if reason cannot be inferred (e g app crash) "user" user closed the player "ended" stream has ended "deleted" stream has been deleted "switched" user has switched the video to something other video "signout" user has signed out or has been logged out duration double the number of seconds a particular viewer was viewing a video that was playing duration starts incrementing when the user starts watching any video in the stream stops incrementing when they are no longer watching video (for example, if they paused the video) will resume incrementing if the video is started again while in the same session is not cumulative between sessions if they leave and come back, when they come back duration will count again from 0 increments regardless if the video is in a vod or live state example so if a user comes into a stream, waits for 10s for the video to start, watches the video for 20s, then leaves duration should return 20s if they come back to the stream and watch another 50s, it should return 50s if they come back the next day and watch 4000s of vod, it should return 4000 0s joining a stream analytics events for some users of the sdk, your users may be able to join the stream with video or audio different apps may call it different things, like "guest call in" or "cameo" the below listed events all relate to that feature if a viewer is joining with video, you can expect video events to fire in close proximity to the "join stream" events if they are using "audio only", then the video events will not trigger join stream shown video id string the id of the video in the stream stream type string "broadcast" is the only option at this time source string "auto" panel auto launched by the player screen either on player init or pubnub update "state change" panel already open, but refreshes due to status change state string this is the "viewer's guest call in state", meaning if they have asked to join the stream to contribute by audio or video "not requested" the viewer has not requested to call in "pending" the viewer has requested to call in but has not been approved "approved" the viewer has been approved to call in and is in the stream by audio or video "disabled" the viewer's call in status has been removed by a creator or producer host id string host id of this stream join stream action tapped when the user taps the action or cancel button on the join stream panel video id string the id of the video in the stream stream type string "broadcast" is the only option at this time state string this is the "viewer's guest call in state", meaning if they have asked to join the stream to contribute by audio or video "not requested" the viewer has not requested to call in "pending" the viewer has requested to call in but has not been approved "approved" the viewer has been approved to call in and is in the stream by audio or video "disabled" the viewer's call in status has been removed by a creator or producer host id string host id of this stream action string "request" when a user requests to join a stream "cancel" when a user cancels a request to join a stream "purchase" when a user has purchased the ability to join a stream "go live" when a user actually joins a live stream join stream action success if the requested action, for a given stage, was successfully completed stream type string "broadcast" is the only option at this time host id string host id of this stream action string "request" when a user requests to join a stream "cancel" when a user cancels a request to join a stream "purchase" when a user has purchased the ability to join a stream "go live" when a user actually joins a live stream join stream action error on encountering error while performing the action video id string the id of the video in the stream stream type string "broadcast" is the only option at this time host id string host id of this stream action string "request" when a user requests to join a stream "cancel" when a user cancels a request to join a stream "purchase" when a user has purchased the ability to join a stream "go live" when a user actually joins a live stream stage string "request" "cancel" "purchase" "verify" "consume" error code string this will return the error code with a message details string any additional data that can help debug this error can be the server message, billing error message or any other platform param that should be logged join stream leave on user leaving a join stream session the leave can be triggered by the user manually or due to the host deleting the user from the portal video id string the id of the video in the stream stream type string "broadcast" is the only option at this time source string "manual" user tapped on the leave option "host ended" host has removed the user from the live guest video publish init on request of any video video id string the id of the video in the stream stream type string "broadcast" is the only option at this time join state string "not requested" | "pending" | "approved" | "live" | "disabled" mic enabled boolean true means that the user has enabled their microphone from within the os and provided access to the sdk (via your application) to use camera enabled boolean true means that the user has enabled their camera from within the os and provided access to the sdk (via your application) to use video publish connected on publisher connected successfully video id string the id of the video in the stream stream type string "broadcast" is the only option at this time join state string this is the "viewer's guest call in state", meaning if they have asked to join the stream to contribute by audio or video "not requested" the viewer has not requested to call in "pending" the viewer has requested to call in but has not been approved "approved" the viewer has been approved to call in and is in the stream by audio or video "disabled" the viewer's call in status has been removed by a creator or producer mic enabled boolean true means that the user has enabled their microphone from within the os and provided access to the sdk (via your application) to use camera enabled boolean true means that the user has enabled their camera from within the os and provided access to the sdk (via your application) to use video publish end on ending the video publishing this should be whenever a stream video id string the id of the video in the stream stream type string "broadcast" is the only option at this time join state string this is the "viewer's guest call in state", meaning if they have asked to join the stream to contribute by audio or video "not requested" the viewer has not requested to call in "pending" the viewer has requested to call in but has not been approved "approved" the viewer has been approved to call in and is in the stream by audio or video "disabled" the viewer's call in status has been removed by a creator or producer poll analytics events these trigger when a viewer sees or acts on polls poll shown on user tapping a poll in the chat video id string the id of the video in the stream stream type string "broadcast" is the only option at this time type string "contest"|"poll"|"leaderboard"|"winner" poll option tapped on user tapping a poll in the chat video id string the id of the video in the stream stream type string "broadcast" is the only option at this time poll submit success video id string the id of the video in the stream stream type string "broadcast" is the only option at this time poll id string the hotmic generated uuid for the poll option id string xxxx poll logo tapped on tapping the logo in the poll panel video id string the id of the video in the stream stream type string "broadcast" is the only option at this time link string sponsor url source string "contest" the poll logo tapped from the tab introducing the contest "poll" the poll logo tapped from the tab showing the poll "winner" the poll logo tapped from the tab showing the winner follow/share analytics events these trigger when a viewer takes action related to following or sharing follow tapped follow boolean "true" | "false" true means the user attempted to follow broadcaster id string broadcaster name string screen string screen name refer the screen events to see the list of possible screens share tapped share tapped is logged any time a button is tapped which brings up the share sheet video id string the id of the video in the stream video title string the title of the stream created by the creator when setting up the stream share app selected share app selected is logged when the user successfully shares eg they tapped messages and sent that share text to someone the app parameter tells you which app they shared it to video id string the id of the video in the stream video title string the title of the stream created by the creator when setting up the stream app string identifier of the app selected by the user for sharing sync analytics events sync successful video id string the id of the video in the stream video title string the title of the stream created by the creator when setting up the stream stream type string "broadcast" is the only option at this time offset double sync offset in seconds source string where the sync was triggerred from refer values sheet sync failed video id string the id of the video in the stream video title string the title of the stream created by the creator when setting up the stream stream type string "broadcast" is the only option at this time offset double sync offset in seconds sync error double sync error in seconds source string where the sync was triggerred from refer values sheet reason string why sync failed refer values sheet chat analytics events chat sent when a chat message is sent video id string the id of the video in the stream video title string the title of the stream created by the creator when setting up the stream chat reacted on choosing a reaction in the chat video id string the id of the video in the stream video title string the title of the stream created by the creator when setting up the stream value string like | fire | laugh | anger | sadness type string add | delete chat actions id string the id of the stream action string make moderator | block | delete | report tip analytics events tip tapped on tapping the tip option video id string the id of the video in the stream video title string the title of the stream created by the creator when setting up the stream tip given on paying the tip video id string the id of the video in the stream video title string the title of the stream created by the creator when setting up the stream amount double currency string international currency abbrev (like usd, gbp, etc ) error analytics events non fatal any error/event that the client wishes to log the error/event is not going to cause any anr or crash, however the occurence of the event might indicate issues type string "pubnub"|"opentok"|"exoplayer"|"branch"|"notifications"|"api"|"general"|"acr"|"other" title string e g "error in parsing pubnub presence" details string data which helps to debug the issue undocumented analytics events and properties there may be analytics events that are not included in this list, or properties not listed for a given analytics event these are experimental analytics by hotmic, and are not ready for production use if you do see such an event that you believe would be useful, please contact hotmic