|  | 
|  | 1 | +--- | 
|  | 2 | +title: Clerk Telemetry | 
|  | 3 | +description: Clerk collects telemetry data from its SDKs about general product and feature usage. | 
|  | 4 | +--- | 
|  | 5 | + | 
|  | 6 | +# Clerk Telemetry | 
|  | 7 | + | 
|  | 8 | +Clerk collects telemetry data from its SDKs about general product and feature usage. Participation in telemetry collection is optional and users of the product can opt-out at any time. | 
|  | 9 | + | 
|  | 10 | +## Why is Clerk collecting telemetry data? | 
|  | 11 | + | 
|  | 12 | +While we actively engage with our users and community to gather feedback and inform our product roadmap, the information collected from these efforts only represents a small subset of our users. | 
|  | 13 | + | 
|  | 14 | +Collecting telemetry data gives us a clearer picture into how our SDKs, components, and authentication helpers are used for a diverse set of problems. This data provides valuable insights to help us prioritize features that are useful and impactful for as many of our users as possible. | 
|  | 15 | + | 
|  | 16 | +## What data is being collected? | 
|  | 17 | + | 
|  | 18 | +We track general usage information about our SDKs, components, and authentication helpers from **development instances only**. While we collect identifiers that allows us to associate events with specific Clerk instances, **we do not collect any information from your users**. | 
|  | 19 | + | 
|  | 20 | +Examples of data we are interested in: | 
|  | 21 | + | 
|  | 22 | +- How often are our different components (`<SignIn />`, `<SignUp />`, `<UserProfile />`) rendered? | 
|  | 23 | +- What props are being used? | 
|  | 24 | +- How are developers utilizing the `appearance` prop on our components? | 
|  | 25 | +- What versions of our SDKs are being used? | 
|  | 26 | +- What associated framework versions are being used? (e.g. what `next` version is being used along with `@clerk/nextjs`) | 
|  | 27 | +- Usage of new features | 
|  | 28 | + | 
|  | 29 | +<Callout type="info"> | 
|  | 30 | +  We regularly audit this list to ensure it is an accurate representation of the data we are collecting. To audit telemetry data sent from our SDKs yourself, you can set a `CLERK_TELEMETRY_DEBUG=1` environment variable in your application. In this mode, telemetry events are only logged to the console and not sent to Clerk. | 
|  | 31 | +</Callout> | 
|  | 32 | + | 
|  | 33 | +An example event looks like this: | 
|  | 34 | + | 
|  | 35 | +```js | 
|  | 36 | +{ | 
|  | 37 | +  event: 'COMPONENT_MOUNTED', | 
|  | 38 | +  cv: '4.62.1', | 
|  | 39 | +  sdk: '@clerk/nextjs', | 
|  | 40 | +  sdkv: '4.25.6', | 
|  | 41 | +  pk: 'pk_test_YmFsYW5jZWQtY293YmlyZC0xNi5jbGVyay5hY2NvdW50cy5kDXyk', | 
|  | 42 | +  payload: { component: 'SignIn', appearanceProp: false }, | 
|  | 43 | +} | 
|  | 44 | +``` | 
|  | 45 | + | 
|  | 46 | +- `event` — A unique identifier for the event type. | 
|  | 47 | +- `cv` — Clerk Version. The version of the core Clerk library in use. | 
|  | 48 | +- `sdk` — SDK. The Clerk SDK that is being used. | 
|  | 49 | +- `sdkv` — SDK Version. The version of the Clerk SDK. | 
|  | 50 | +- `pk` — Publishable Key. The instance's publishable key. | 
|  | 51 | +- `payload` — Each unique event can provide custom data as part of the payload. As seen above, for the `COMPONENT_MOUNTED` event we track the component name and additional data about prop usage. | 
|  | 52 | + | 
|  | 53 | +## What about sensitive data? | 
|  | 54 | + | 
|  | 55 | +We will not collect sensitive data from your application or development environment that is not directly related to your implementation of Clerk's SDKs. Notably, we will not collect: environment variables unrelated to Clerk, any information about your users, file paths, contents of files, logs, git remote information, or raw JavaScript errors. | 
|  | 56 | + | 
|  | 57 | +## How is my data protected? | 
|  | 58 | + | 
|  | 59 | +Clerk takes data privacy and protection seriously. Telemetry data is most useful in aggregate form to gain product insights, and the raw data is only available to a small subset of Clerk employees. | 
|  | 60 | + | 
|  | 61 | +We will never share with or sell telemetry data to third parties. The data is used strictly to help improve the Clerk product. | 
|  | 62 | + | 
|  | 63 | +## How do I opt-out? | 
|  | 64 | + | 
|  | 65 | +### Environment variables | 
|  | 66 | + | 
|  | 67 | +<Callout type="warning"> | 
|  | 68 | +  Note that the variable name might differ between frameworks. See the [framework specific instructions](#framework-specific-instructions) below. | 
|  | 69 | +</Callout> | 
|  | 70 | + | 
|  | 71 | +For meta-framework SDKs, you can opt-out of telemetry collection by setting the environment variable:  | 
|  | 72 | + | 
|  | 73 | +```env filename=".env.local" | 
|  | 74 | +CLERK_TELEMETRY_DISABLED=1 | 
|  | 75 | +```  | 
|  | 76 | + | 
|  | 77 | +### `telemetry` prop | 
|  | 78 | + | 
|  | 79 | +If you are using `@clerk/clerk-react` directly, or using an SDK that doesn't have environment variable support, you can opt out by passing the `telemetry` prop to `<ClerkProvider />`: | 
|  | 80 | + | 
|  | 81 | +```tsx | 
|  | 82 | +<ClerkProvider telemetry={false} /> | 
|  | 83 | +``` | 
|  | 84 | + | 
|  | 85 | +### Framework specific instructions | 
|  | 86 | + | 
|  | 87 | +<CodeBlockTabs options={["Next.js", "React", "Remix", "Gatsby", "JavaScript", "Chrome Extension", "Expo"]}> | 
|  | 88 | +```env filename=".env.local" | 
|  | 89 | +NEXT_PUBLIC_CLERK_TELEMETRY_DISABLED=1 | 
|  | 90 | +``` | 
|  | 91 | + | 
|  | 92 | +```tsx | 
|  | 93 | +<ClerkProvider telemetry={false} /> | 
|  | 94 | +``` | 
|  | 95 | + | 
|  | 96 | +```env filename=".env.local" | 
|  | 97 | +CLERK_TELEMETRY_DISABLED=1 | 
|  | 98 | +``` | 
|  | 99 | + | 
|  | 100 | +```env filename=".env.local" | 
|  | 101 | +GATSBY_CLERK_TELEMETRY_DISABLED=1 | 
|  | 102 | +``` | 
|  | 103 | + | 
|  | 104 | +```js | 
|  | 105 | +const clerk = new Clerk(publishableKey) | 
|  | 106 | +c.load({ telemetry: false }) | 
|  | 107 | +``` | 
|  | 108 | + | 
|  | 109 | +```tsx | 
|  | 110 | +<ClerkProvider telemetry={false} /> | 
|  | 111 | +``` | 
|  | 112 | + | 
|  | 113 | +```tsx | 
|  | 114 | +<ClerkProvider telemetry={false} /> | 
|  | 115 | +``` | 
|  | 116 | +</CodeBlockTabs> | 
0 commit comments