Brave Browser

How to prepare Fingerprint Pro to run smoothly in Brave

Fingerprint Pro supports all versions of Brave Browser. However Brave blocks Fingerprint Pro and you need to make several additional steps to make sure everything works smoothly.

Step 1: Getting the JavaScript agent

We support multiple ways of adding the JavaScript agent to your web application.
You can use Fingerprint CDN or Cloudflare Integration to download the agent script to your page at run time or use our NPM package to bundle the agent during the build stage.
Brave blocks our CDN URL (https://fpjscdn.net), so if you try to use it and load the page in Brave, you'll see a network error in developer tools. This line will not work:
const fpPromise = import('https://fpjscdn.net/v3/<public-key>')

15541554

Example of Brave blocking Fingerprint Pro CDN (https://fpjscdn.net) and the JS agent script cannot be downloaded from there.

For this reason we recommend using the NPM installation method or the Cloudflare integration if your web application runs on Cloudflare. We support multiple framework libraries for both methods.

Step 2: Identifying the browser

Identifying browsers with the JS agent requires first calling load and then get. Load initializes the agent and get makes an API call to Fingerprint Pro server API that gets a visitorId value back. You only need to call load once, but you can call get multiple times whenever you need to get a visitorId value back.
By default, Fingerprint Pro uses our global API endpoint: https://api.fpjs.io.
We don't recommend using this default API endpoint, because Brave blocks it.
If you try to call FingerprintJS.get in Brave using the default configuration, you will see multiple failed attempts to access https://api.fpjs.io.

16101610

Example of Brave blocking our default API endpoint, which causes the JS agent to attempt multiple times.

To fix this issue, you can use either a Custom subdomain or a Cloudflare integration (if your web application runs on Cloudflare). Regardless of the chosen method, you need to configure the agent accordingly so that it makes API calls to the correct new endpoint.
We strongly recommend adding good error handling code to make sure the JS agent errors are processed correctly. You can find more examples here: JS agent error handling.

Brave identification accuracy

If you follow all the techniques from this guide, your Brave identification accuracy will be high and you shouldn't have any issues.

Useful tips

Don't call your scripts fingerprint.js, many browsers have special rules that block scripts with that name.
You should also avoid calling your subdomain fingerprint or fingerprints, for example fingerprintjs.example.com for the same reason. Instead, call it something generic, for example analyze.example.com

If you want to dive deeper into Brave + Fingerprint Pro, we recommend reading these articles:

  1. Why browser anti-fingerprinting techniques are not effective
  2. How the Web Audio API is used for fingerprinting
  3. Can you prevent browser fingerprinting?
  4. How does canvas fingerprinting work?
  5. The top browser fingerprinting techniques explained