Loading

Overview

Sessions over time

Top pages

    Where visitors come from

      Devices and places

        What stands out

          Site health

          Realtime

          Who is on your site right now. The last 30 minutes, whatever the time range above.

          0
          visitors right now
          Visitors per minute
          30 min agonow

          Where they are

          Visitors in the last 30 minutesNo visitorsLocation comes from the visitor's timezone, or from your CDN's country header when there is one.

          Pages being viewed

            Countries

              Event feed Waiting for events
              No events yet. Events appear here as soon as a page with the script is open.

              Sessions

              Sessions

              No session selected

              Pick a session from the list to watch it.

              Flow

              How visitors move from page to page, and where they leave.

              Visitor journeys

              Each box is a page. Hover a box or a band for details.
              Visitors moving to the next page Visitors who left the site here Rage clicks on the page JavaScript errors Went on to convert

              Where visitors land

              first page of a visit

                Where visitors leave

                last page of a visit

                  Most common journeys

                  first three pages of a visit
                  JourneyVisitsConverted

                  Funnel

                  How many visitors get through the steps you care about, in order.

                  No data yet

                  Steps

                  A visitor counts for a step only after doing every step before it, in the same visit. Page paths and element selectors can end with * to match everything that starts the same way, like /blog/*.

                  Breakage

                  Where visitors get stuck: clicks that do nothing, clicks made in frustration, and errors.

                  Rage clicks

                  three or more clicks on the same spot within a second or two
                  What they clickedPageClicksSessionsLast seen

                  Dead clicks

                  clicks on things that are not links or buttons
                  What they clickedPageClicksSessionsLast seen

                  JavaScript errors

                  uncaught errors and failed promises, grouped by message
                  ErrorPageTimesSessionsLast seen

                  Pages

                  Every page visitors saw: how long they stayed, how far they scrolled, where they left and how fast it loaded.

                  Pages

                  PageViewsVisitsTime on pageScrolledLeft hereConvertedBreakageLoadStabilityResponse

                  Referring sites

                  where visits started
                  SourceVisitsShareConvertedConversion rate

                  Install

                  Four steps, each with a test. The first visit shows up in the dashboard a few seconds after step 2.

                  Lock the server down

                  Set these two values in the environment of the server running Hotspot, in .env.hotspot for the full stack or next to the standalone command. The key goes in the script tag in step 2, so only your site can send data. The password protects this dashboard.

                  Both values were generated in this browser just now and exist nowhere else. Restart the server after setting them, then press Test.

                  Script options
                  data-api-key
                  The key sent with every event. Required.
                  data-api-host
                  Where events are sent. Defaults to the host the script came from.
                  data-autocapture="false"
                  Turn off click and form capture.
                  data-capture-errors="false"
                  Turn off JavaScript error capture.
                  data-capture-pageview="false"
                  Turn off automatic page views.
                  data-replay="false"
                  Turn off the session recording. The event timeline still works.
                  data-mask-inputs="all"
                  Mask every typed value in the recording. Password and payment fields are always masked.
                  data-mask-text="true"
                  Mask all text on the page in the recording.
                  data-capture-console="false"
                  Leave console output out of the recording.
                  data-capture-network="false"
                  Leave network requests out of the recording.
                  data-capture-web-vitals="false"
                  Turn off web vitals.
                  data-debug="true"
                  Log every captured event to the browser console.
                  data-debug-hud="true"
                  Show an on-page overlay of your own clicks. Toggle it with Alt+H, or add ?hotspot_debug_hud=1 to a URL.
                  data-hotspot-mask
                  On any element: mask its text and typed values in the recording.
                  data-hotspot-block
                  On any element: replace it with an empty box of the same size in the recording.
                  JavaScript API (window.hotspot)
                  • capture(name, props)Record a custom event
                  • identify(id, { email, name, company })Attach a person to the visitor
                  • setPersonProperties(props)Update person properties
                  • register(props)Send these properties with every event
                  • reset()Forget the visitor and start a new session
                  • optOut() optIn() hasOptedOut()Visitor consent
                  • startSessionRecording() stopSessionRecording()Replay on and off, for consent flows
                  • getDistinctId() getSessionId()Current ids
                  • on(eventName, callback)Run code when an event is captured
                  • flush()Send queued events now
                  • debug.show() debug.hide()Toggle the on-page overlay
                  This server