Telemetry collected by Microsoft MakeCode

Client side telemetry is collected for Microsoft MakeCode websites.

Microsoft MakeCode uses the Application Insights Javascript SDK to collect the telemetry information.

Cookies

There are three types of cookies stored by Microsoft MakeCode website.

  • Language selection cookie (PXT_LANG). This is used to persist the language selection by user across sessions (Examples: English, French or German).
  • Application Insight cookie (ai_user & ai_session) for user behavior tracking. This is used to correlate the data across sessions. No PII information is collected.
  • Identity cookie (x-mkcd-auth-token) if you log into our website where it is supported.

Application Insights SDK Telemetry

Here’s the lifetime of the data tracked by Application Insights:

Name Purpose Domain R/W Expiration Retires
ai_session Session tracking Hosting website R/W 30 minutes End of session
ai_user User tracking Hosting website R/W 365 days Never

Telemetry Details

The following sections contain the information that the Application Insights SDK attempts to collect about the environment and the user.

Device telemetry

This is always set to “Browser” for the web

Property Description
device.type “browser”
device.id “Browser”

User telemetry

Data about the current user. Users are identified by a cookie. This cookie is a randomnly generated hash by the application insights. A single user will get a new hash\cookie, every time the browser cache is cleared or a different browser is used on the same machine. A single person can look like more than one user in the telemetry, if they use different machines or browsers, or delete cookies.

Property Description
user.id Unique, cookie-based user id, automatically assigned.

User Session telemetry

A session represents a series of user actions. A session starts with a user action. Sessions expire when one of these conditions occurs:

  • 30 minutes of inactivity.
  • A session maximum duration of 24 hours, regardless of any measured activity.
Property Description
session.id Automatically assigned id
session.isFirst Boolean. True if this is the first session for this user.

Operation telemetry

Represents the user request. The operation id is used to correlate related events in a diagnostic search.

Property Description
id Unique id
name String


Note: Refer to the Application Insights SDK API Reference documentation for further details.

Microsoft MakeCode custom telemetry

Microsoft MakeCode website’s also sends custom telemetry using AppInsights trackEvent. Each custom telemetry event has the following additional information:

CustomDimensions Description
version Version of the software
target Identifies the target. For example: microbit or adafruit CPX
stage beta, release or alpha
WindowsApp Event originates from Windows App for Microsoft MakeCode
electron Event originates from electron app


These are the custom telemetry events fired by MakeCode editors:

Events Description
Block blocks used, search, collapse, expand, delete, format, screenshot,help, switchjavascript, showjavascript, category, block type
Editor tools Rename, download, save, undo, zoomIn, zoomOut, startStopSimulator, restart, trace, toggleCollapse
Menu Javascript tab, Blocks tab, open, add package, reset, report abuse, gettingstarted, about, high contrast etc
Typescript keep text, discard text, toolbox click, item click, item drag
Projects new porject, rename, import, import url, tutorials
Simulator Start, stop, restart, fullscreen, screen, mute, make, screenshot
Hex files import success\failure,
Share publish, facebook, twitter
Compile Noemit, floating point information
locale change of language
Packages github search, bundled,
Docs doc usage


In addition to the events, exceptions in the editor are sent by AppInsights trackException.