📄️ Audio
The audio component utilizes the browser's OfflineAudioContext API to create an audio signal. This amplitude of this signal is then measured with extreme precision at multiple points to create an audio fingerprint.
📄️ Canvas
Canvas fingerprint component works so that the browser is instructed to draw a simple image from instructions. This includes things like a simple gradiant, some text, an overlay etc.
📄️ Fonts
You can ask the browser to render a piece of text with a specific font. If the font doesn't exist, the browser will fall back to a default font.
📄️ Hardware
There are a few things that browser APIs expose about the underlying hardware, namely
📄️ Locales
The more ways you can 'slice' the audience, the more unique the fingerprints become. Locales is one way of slicing the audience in smaller pieces by checking the preferred language of the browser as well as its reported time-zone.
📄️ Math
Surprisingly, computers have slightly different ways of calculating. Some calculations utilize inprecise approximations for certain operations. The Math component uses this and instructs the browser to calculate a handful of numbers.
📄️ Permissions
Browsers have different instructions how to handle different permissions such as the use of a gyroscope or location. By asking the browser for the setting for these permissions, we can add a small bit of entropy to the fingerprinting.
📄️ Plugins
The browser allows you to list the plugins that are installed. This is exactly what this component does.
📄️ Screen
The screen component checks whether your screen is a touch screen, and how many touch points it supports. It also checks the resolution, if it deems the device to be a mobile device. For non-mobile devices, the screen resolution is not used, as it would return a different value on multi-screen setups if the window was moved to a different screen.
📄️ System
The system component checks the client's system details for things such as which operating system it is running on, what browser it is using etc.
📄️ WebGL
The WebGL component works similarly to the canvas component. Thumbmark instructs to render an image using the WebGL API, and its pixels are investigated per channel, resulting in a fairly unique fingerprint.
📄️ Pro components
When you use the API key, ThumbmarkJS will make a call to the backend.