@c15t/scripts 3.0.0-alpha.2 → 3.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +129 -63
- package/README.md +8 -29
- package/SKILL.md +33 -0
- package/dist/adobe-analytics.js +2 -0
- package/dist/ahrefs-analytics.js +2 -0
- package/dist/amplitude.js +2 -0
- package/dist/clearbit.js +2 -0
- package/dist/cloudflare-web-analytics.js +2 -0
- package/dist/cloudflare-zaraz.js +2 -0
- package/dist/crisp.js +2 -0
- package/dist/databuddy.js +2 -0
- package/dist/e2e-test-utils.js +2 -139
- package/dist/engine/compile.js +2 -89
- package/dist/engine/runtime.js +2 -448
- package/dist/events.js +2 -218
- package/dist/fathom-analytics.js +2 -0
- package/dist/front-chat.js +2 -0
- package/dist/google-tag-manager.js +2 -0
- package/dist/google-tag.js +2 -0
- package/dist/heap.js +2 -0
- package/dist/hightouch.js +2 -0
- package/dist/hotjar.js +2 -0
- package/dist/intercom.js +2 -0
- package/dist/klaviyo.js +2 -0
- package/dist/linkedin-insights.js +2 -0
- package/dist/logrocket.js +2 -0
- package/dist/matomo-analytics.js +2 -0
- package/dist/meta-pixel.js +2 -0
- package/dist/microsoft-clarity.js +2 -0
- package/dist/microsoft-uet.js +2 -0
- package/dist/mixpanel-analytics.js +2 -0
- package/dist/one-dollar-stats.js +2 -0
- package/dist/openai-pixel.js +2 -0
- package/dist/pinterest-tag.js +2 -0
- package/dist/pirsch.js +2 -0
- package/dist/plausible-analytics.js +2 -0
- package/dist/posthog.js +2 -0
- package/dist/promptwatch.js +2 -0
- package/dist/reddit-pixel.js +2 -0
- package/dist/registry.js +2 -422
- package/dist/resolve.js +2 -33
- package/dist/rudderstack.js +2 -0
- package/dist/rybbit-analytics.js +2 -0
- package/dist/segment.js +2 -0
- package/dist/snapchat-pixel.js +2 -0
- package/dist/tiktok-pixel.js +2 -0
- package/dist/types.js +2 -16
- package/dist/umami-analytics.js +2 -0
- package/dist/vendors/_shared/attributes.js +2 -14
- package/dist/vendors/_shared/google-consent.js +2 -27
- package/dist/vendors/_shared/install-builders.js +2 -21
- package/dist/vendors/_shared/required-id.js +2 -0
- package/dist/vendors/_shared/script-url.js +2 -28
- package/dist/vendors/ads-and-pixels/linkedin-insights.js +2 -48
- package/dist/vendors/ads-and-pixels/meta-pixel.js +2 -153
- package/dist/vendors/ads-and-pixels/microsoft-uet.js +2 -110
- package/dist/vendors/ads-and-pixels/openai-pixel.js +2 -88
- package/dist/vendors/ads-and-pixels/pinterest-tag.js +2 -123
- package/dist/vendors/ads-and-pixels/reddit-pixel.js +2 -107
- package/dist/vendors/ads-and-pixels/snapchat-pixel.js +2 -87
- package/dist/vendors/ads-and-pixels/tiktok-pixel.js +2 -89
- package/dist/vendors/ads-and-pixels/x-pixel.js +2 -48
- package/dist/vendors/analytics/adobe-analytics.js +2 -49
- package/dist/vendors/analytics/ahrefs-analytics.js +2 -27
- package/dist/vendors/analytics/amplitude.js +2 -134
- package/dist/vendors/analytics/clearbit.js +2 -28
- package/dist/vendors/analytics/cloudflare-web-analytics.js +2 -32
- package/dist/vendors/analytics/databuddy.js +2 -103
- package/dist/vendors/analytics/fathom-analytics.js +2 -35
- package/dist/vendors/analytics/google-tag.js +2 -78
- package/dist/vendors/analytics/heap.js +2 -134
- package/dist/vendors/analytics/hightouch.js +2 -109
- package/dist/vendors/analytics/hotjar.js +2 -44
- package/dist/vendors/analytics/logrocket.js +2 -58
- package/dist/vendors/analytics/matomo-analytics.js +2 -191
- package/dist/vendors/analytics/microsoft-clarity.js +2 -100
- package/dist/vendors/analytics/mixpanel-analytics.js +2 -93
- package/dist/vendors/analytics/one-dollar-stats.js +2 -30
- package/dist/vendors/analytics/pirsch.js +2 -67
- package/dist/vendors/analytics/plausible-analytics.js +2 -81
- package/dist/vendors/analytics/posthog.js +2 -200
- package/dist/vendors/analytics/promptwatch.js +2 -29
- package/dist/vendors/analytics/rudderstack.js +2 -183
- package/dist/vendors/analytics/rybbit-analytics.js +2 -63
- package/dist/vendors/analytics/segment.js +2 -65
- package/dist/vendors/analytics/umami-analytics.js +2 -39
- package/dist/vendors/analytics/vercel-analytics.js +2 -53
- package/dist/vendors/email-and-sms/klaviyo.js +2 -0
- package/dist/vendors/functional/crisp.js +2 -100
- package/dist/vendors/functional/front-chat.js +2 -64
- package/dist/vendors/functional/intercom.js +2 -45
- package/dist/vendors/tag-managers/cloudflare-zaraz.js +2 -98
- package/dist/vendors/tag-managers/google-tag-manager.js +2 -73
- package/dist/vercel-analytics.js +2 -0
- package/dist/x-pixel.js +2 -0
- package/dist-types/adobe-analytics.d.ts +2 -0
- package/dist-types/ahrefs-analytics.d.ts +2 -0
- package/dist-types/amplitude.d.ts +2 -0
- package/dist-types/clearbit.d.ts +2 -0
- package/dist-types/cloudflare-web-analytics.d.ts +2 -0
- package/dist-types/cloudflare-zaraz.d.ts +2 -0
- package/dist-types/crisp.d.ts +2 -0
- package/dist-types/databuddy.d.ts +2 -0
- package/dist-types/e2e-test-utils.d.ts +2 -0
- package/dist-types/engine/compile.d.ts +2 -3
- package/dist-types/engine/runtime.d.ts +2 -3
- package/dist-types/events.d.ts +2 -46
- package/dist-types/fathom-analytics.d.ts +2 -0
- package/dist-types/front-chat.d.ts +2 -0
- package/dist-types/google-tag-manager.d.ts +2 -0
- package/dist-types/google-tag.d.ts +2 -0
- package/dist-types/heap.d.ts +2 -0
- package/dist-types/hightouch.d.ts +2 -0
- package/dist-types/hotjar.d.ts +2 -0
- package/dist-types/intercom.d.ts +2 -0
- package/dist-types/klaviyo.d.ts +2 -0
- package/dist-types/linkedin-insights.d.ts +2 -0
- package/dist-types/logrocket.d.ts +2 -0
- package/dist-types/matomo-analytics.d.ts +2 -0
- package/dist-types/meta-pixel.d.ts +2 -0
- package/dist-types/microsoft-clarity.d.ts +2 -0
- package/dist-types/microsoft-uet.d.ts +2 -0
- package/dist-types/mixpanel-analytics.d.ts +2 -0
- package/dist-types/one-dollar-stats.d.ts +2 -0
- package/dist-types/openai-pixel.d.ts +2 -0
- package/dist-types/pinterest-tag.d.ts +2 -0
- package/dist-types/pirsch.d.ts +2 -0
- package/dist-types/plausible-analytics.d.ts +2 -0
- package/dist-types/posthog.d.ts +2 -0
- package/dist-types/promptwatch.d.ts +2 -0
- package/dist-types/reddit-pixel.d.ts +2 -0
- package/dist-types/registry.d.ts +2 -485
- package/dist-types/resolve.d.ts +2 -9
- package/dist-types/rudderstack.d.ts +2 -0
- package/dist-types/rybbit-analytics.d.ts +2 -0
- package/dist-types/segment.d.ts +2 -0
- package/dist-types/snapchat-pixel.d.ts +2 -0
- package/dist-types/tiktok-pixel.d.ts +2 -0
- package/dist-types/types.d.ts +2 -314
- package/dist-types/umami-analytics.d.ts +2 -0
- package/dist-types/vendors/_shared/attributes.d.ts +2 -35
- package/dist-types/vendors/_shared/google-consent.d.ts +2 -47
- package/dist-types/vendors/_shared/install-builders.d.ts +2 -30
- package/dist-types/vendors/_shared/required-id.d.ts +2 -0
- package/dist-types/vendors/_shared/script-url.d.ts +2 -75
- package/dist-types/vendors/ads-and-pixels/linkedin-insights.d.ts +2 -92
- package/dist-types/vendors/ads-and-pixels/meta-pixel.d.ts +2 -289
- package/dist-types/vendors/ads-and-pixels/microsoft-uet.d.ts +2 -105
- package/dist-types/vendors/ads-and-pixels/openai-pixel.d.ts +2 -211
- package/dist-types/vendors/ads-and-pixels/pinterest-tag.d.ts +2 -295
- package/dist-types/vendors/ads-and-pixels/reddit-pixel.d.ts +2 -210
- package/dist-types/vendors/ads-and-pixels/snapchat-pixel.d.ts +2 -171
- package/dist-types/vendors/ads-and-pixels/tiktok-pixel.d.ts +2 -106
- package/dist-types/vendors/ads-and-pixels/x-pixel.d.ts +2 -183
- package/dist-types/vendors/analytics/adobe-analytics.d.ts +2 -75
- package/dist-types/vendors/analytics/ahrefs-analytics.d.ts +2 -62
- package/dist-types/vendors/analytics/amplitude.d.ts +2 -234
- package/dist-types/vendors/analytics/clearbit.d.ts +2 -60
- package/dist-types/vendors/analytics/cloudflare-web-analytics.d.ts +2 -67
- package/dist-types/vendors/analytics/databuddy.d.ts +2 -147
- package/dist-types/vendors/analytics/fathom-analytics.d.ts +2 -90
- package/dist-types/vendors/analytics/google-tag.d.ts +2 -95
- package/dist-types/vendors/analytics/heap.d.ts +2 -316
- package/dist-types/vendors/analytics/hightouch.d.ts +2 -285
- package/dist-types/vendors/analytics/hotjar.d.ts +2 -73
- package/dist-types/vendors/analytics/logrocket.d.ts +2 -101
- package/dist-types/vendors/analytics/matomo-analytics.d.ts +2 -41
- package/dist-types/vendors/analytics/microsoft-clarity.d.ts +2 -97
- package/dist-types/vendors/analytics/mixpanel-analytics.d.ts +2 -113
- package/dist-types/vendors/analytics/one-dollar-stats.d.ts +2 -39
- package/dist-types/vendors/analytics/pirsch.d.ts +2 -96
- package/dist-types/vendors/analytics/plausible-analytics.d.ts +2 -122
- package/dist-types/vendors/analytics/posthog.d.ts +2 -175
- package/dist-types/vendors/analytics/promptwatch.d.ts +2 -36
- package/dist-types/vendors/analytics/rudderstack.d.ts +2 -330
- package/dist-types/vendors/analytics/rybbit-analytics.d.ts +2 -82
- package/dist-types/vendors/analytics/segment.d.ts +2 -164
- package/dist-types/vendors/analytics/umami-analytics.d.ts +2 -93
- package/dist-types/vendors/analytics/vercel-analytics.d.ts +2 -66
- package/dist-types/vendors/email-and-sms/klaviyo.d.ts +2 -0
- package/dist-types/vendors/functional/crisp.d.ts +2 -78
- package/dist-types/vendors/functional/front-chat.d.ts +2 -62
- package/dist-types/vendors/functional/intercom.d.ts +2 -135
- package/dist-types/vendors/tag-managers/cloudflare-zaraz.d.ts +2 -39
- package/dist-types/vendors/tag-managers/google-tag-manager.d.ts +2 -96
- package/dist-types/vercel-analytics.d.ts +2 -0
- package/dist-types/x-pixel.d.ts +2 -0
- package/docs/README.md +129 -63
- package/docs/assets/v3/bottom-bar.png +0 -0
- package/docs/assets/v3/brand-card.png +0 -0
- package/docs/assets/v3/brand-preferences.png +0 -0
- package/docs/assets/v3/choice-wall.png +0 -0
- package/docs/assets/v3/headless-bar-html.png +0 -0
- package/docs/assets/v3/headless-bar-mobile.png +0 -0
- package/docs/assets/v3/headless-bar.png +0 -0
- package/docs/assets/v3/slim-bar.png +0 -0
- package/docs/concepts/choose-your-setup.md +87 -0
- package/docs/concepts/consent-categories.md +84 -0
- package/docs/{guides → concepts}/consent-state.md +89 -105
- package/docs/{guides → concepts}/data-fetching.md +31 -27
- package/docs/concepts/how-consent-works.md +123 -0
- package/docs/concepts/policies.md +71 -0
- package/docs/customization/class-names.md +202 -0
- package/docs/customization/dark-mode.md +157 -0
- package/docs/customization/motion.md +119 -0
- package/docs/customization/overview.md +67 -34
- package/docs/customization/recipes.md +839 -49
- package/docs/customization/slots.md +216 -35
- package/docs/customization/stylesheets.md +147 -0
- package/docs/customization/tailwind.md +842 -0
- package/docs/customization/tokens.md +163 -96
- package/docs/customization/translations.md +60 -3
- package/docs/frameworks/astro/embeds.md +160 -0
- package/docs/frameworks/astro/network-blocker.md +86 -0
- package/docs/frameworks/astro/scripts.md +155 -0
- package/docs/frameworks/html/embeds.md +142 -0
- package/docs/frameworks/html/network-blocker.md +105 -0
- package/docs/frameworks/html/scripts.md +164 -0
- package/docs/frameworks/javascript/scripts.md +137 -0
- package/docs/frameworks/next/embeds.md +90 -0
- package/docs/frameworks/next/network-blocker.md +153 -0
- package/docs/frameworks/next/scripts.md +196 -0
- package/docs/frameworks/nuxt/embeds.md +81 -0
- package/docs/frameworks/nuxt/network-blocker.md +97 -0
- package/docs/frameworks/nuxt/scripts.md +89 -0
- package/docs/frameworks/react/embeds.md +89 -0
- package/docs/frameworks/react/network-blocker.md +140 -0
- package/docs/frameworks/react/scripts.md +115 -0
- package/docs/frameworks/svelte/embeds.md +96 -0
- package/docs/frameworks/svelte/network-blocker.md +141 -0
- package/docs/frameworks/svelte/scripts.md +144 -0
- package/docs/frameworks/sveltekit/embeds.md +103 -0
- package/docs/frameworks/sveltekit/network-blocker.md +159 -0
- package/docs/frameworks/sveltekit/scripts.md +172 -0
- package/docs/frameworks/tanstack-start/embeds.md +96 -0
- package/docs/frameworks/tanstack-start/network-blocker.md +145 -0
- package/docs/frameworks/tanstack-start/scripts.md +103 -0
- package/docs/frameworks/vue/embeds.md +84 -0
- package/docs/frameworks/vue/network-blocker.md +99 -0
- package/docs/frameworks/vue/scripts.md +93 -0
- package/docs/guides/banner-experiments.md +654 -0
- package/docs/guides/troubleshooting.md +120 -47
- package/docs/guides/verify-consent.md +81 -49
- package/docs/integrations/adobe-analytics.md +167 -159
- package/docs/integrations/ahrefs-analytics.md +152 -154
- package/docs/integrations/amplitude.md +162 -156
- package/docs/integrations/building-integrations.md +136 -37
- package/docs/integrations/clearbit.md +154 -154
- package/docs/integrations/cloudflare-web-analytics.md +156 -156
- package/docs/integrations/cloudflare-zaraz.md +209 -261
- package/docs/integrations/crisp.md +164 -158
- package/docs/integrations/databuddy.md +157 -173
- package/docs/integrations/fathom-analytics.md +158 -156
- package/docs/integrations/front-chat.md +167 -167
- package/docs/integrations/google-maps.md +118 -83
- package/docs/integrations/google-tag-manager.md +178 -163
- package/docs/integrations/google-tag.md +163 -160
- package/docs/integrations/heap.md +163 -155
- package/docs/integrations/hightouch.md +161 -157
- package/docs/integrations/hotjar.md +159 -155
- package/docs/integrations/intercom.md +183 -153
- package/docs/integrations/klaviyo.md +486 -0
- package/docs/integrations/linkedin-insights.md +174 -150
- package/docs/integrations/logrocket.md +160 -156
- package/docs/integrations/matomo-analytics.md +188 -178
- package/docs/integrations/meta-pixel.md +188 -150
- package/docs/integrations/microsoft-clarity.md +163 -155
- package/docs/integrations/microsoft-uet.md +148 -154
- package/docs/integrations/mixpanel-analytics.md +155 -160
- package/docs/integrations/one-dollar-stats.md +166 -165
- package/docs/integrations/openai-pixel.md +204 -301
- package/docs/integrations/overview.md +137 -80
- package/docs/integrations/pinterest-tag.md +191 -183
- package/docs/integrations/pirsch.md +169 -159
- package/docs/integrations/plausible-analytics.md +172 -158
- package/docs/integrations/posthog.md +313 -240
- package/docs/integrations/promptwatch.md +154 -154
- package/docs/integrations/reddit-pixel.md +185 -157
- package/docs/integrations/rudderstack.md +201 -186
- package/docs/integrations/rybbit-analytics.md +171 -160
- package/docs/integrations/segment.md +182 -154
- package/docs/integrations/snapchat-pixel.md +186 -156
- package/docs/integrations/tiktok-pixel.md +171 -150
- package/docs/integrations/umami-analytics.md +163 -158
- package/docs/integrations/vercel-analytics.md +166 -157
- package/docs/integrations/x-pixel.md +176 -150
- package/docs/integrations/youtube.md +121 -86
- package/docs/upgrade-v3.md +496 -467
- package/package.json +10 -257
- package/dist-types/__tests__/helpers.d.ts +0 -141
- package/docs/assets/v3/brand-bar.png +0 -0
- package/docs/assets/v3/mobile-card.png +0 -0
- package/docs/assets/v3/preferences.png +0 -0
- package/docs/frameworks/javascript/script-loader.md +0 -100
- package/docs/frameworks/next/script-loader.md +0 -216
- package/docs/frameworks/react/script-loader.md +0 -69
- package/docs/guides/deployment-modes.md +0 -75
- package/docs/guides/shared-consent-controls.md +0 -158
- package/docs/integrations/clear-on-revocation.md +0 -167
- package/docs/integrations/granular-consent.md +0 -210
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
2
|
+
title: Integrations
|
|
3
3
|
description: Find all c15t integrations for analytics, tag managers,
|
|
4
|
-
advertising, chat and embedded content.
|
|
4
|
+
advertising, email and SMS, chat and embedded content.
|
|
5
5
|
group: integrations
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
## Choose an integration
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
Each vendor helper in `@c15t/integrations` returns a script configuration that you
|
|
11
|
+
register with your c15t provider. Importing a helper installs nothing on its
|
|
12
|
+
own. Set up consent with your [framework quickstart](https://c15t.com/docs/frameworks) first,
|
|
13
|
+
then follow the vendor guide.
|
|
14
14
|
|
|
15
|
-
| Package manager | Command
|
|
16
|
-
| :-------------- |
|
|
17
|
-
| npm | `npm install @c15t/
|
|
18
|
-
| pnpm | `pnpm add @c15t/
|
|
19
|
-
| yarn | `yarn add @c15t/
|
|
20
|
-
| bun | `bun add @c15t/
|
|
15
|
+
| Package manager | Command |
|
|
16
|
+
| :-------------- | :------------------------------------- |
|
|
17
|
+
| npm | `npm install @c15t/integrations@alpha` |
|
|
18
|
+
| pnpm | `pnpm add @c15t/integrations@alpha` |
|
|
19
|
+
| yarn | `yarn add @c15t/integrations@alpha` |
|
|
20
|
+
| bun | `bun add @c15t/integrations@alpha` |
|
|
21
21
|
|
|
22
|
-
`@c15t/
|
|
23
|
-
|
|
22
|
+
`@c15t/integrations` is a separate package. Keep importing c15t itself from `c15t`,
|
|
23
|
+
for example `c15t/react` or `c15t/next`.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
wait for
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
The Loading behavior column shows when each helper requests the vendor. Most
|
|
26
|
+
wait for the category to be allowed. A few load on every page and pass the
|
|
27
|
+
permission to the vendor's own consent API, so the browser contacts the vendor
|
|
28
|
+
before a choice.
|
|
29
29
|
|
|
30
30
|
## Embeds
|
|
31
31
|
|
|
@@ -36,46 +36,46 @@ behavior before choosing either approach.
|
|
|
36
36
|
|
|
37
37
|
Both guides include all nine framework examples. React and Svelte use `ConsentGate`;
|
|
38
38
|
Vue conditionally renders the iframe, and Astro and JavaScript use the existing
|
|
39
|
-
kernel to control its DOM lifecycle. Embeds do not require `@c15t/
|
|
39
|
+
kernel to control its DOM lifecycle. Embeds do not require `@c15t/integrations`.
|
|
40
40
|
|
|
41
41
|
## Tag managers
|
|
42
42
|
|
|
43
|
-
| Integration | Helper | Category | Loading behavior
|
|
44
|
-
| --------------------------------------------- | ------------------ | ----------- |
|
|
45
|
-
| [Cloudflare Zaraz](./cloudflare-zaraz.md) | `cloudflareZaraz` | `necessary` |
|
|
46
|
-
| [Google Tag Manager](./google-tag-manager.md) | `googleTagManager` | `necessary` | Always loads; signals Google consent
|
|
43
|
+
| Integration | Helper | Category | Loading behavior |
|
|
44
|
+
| --------------------------------------------- | ------------------ | ----------- | ------------------------------------------------- |
|
|
45
|
+
| [Cloudflare Zaraz](./cloudflare-zaraz.md) | `cloudflareZaraz` | `necessary` | Always runs; syncs purposes, Zaraz runs the tools |
|
|
46
|
+
| [Google Tag Manager](./google-tag-manager.md) | `googleTagManager` | `necessary` | Always loads; signals Google consent |
|
|
47
47
|
|
|
48
48
|
## Analytics
|
|
49
49
|
|
|
50
|
-
| Integration | Helper | Category
|
|
51
|
-
| --------------------------------------------------------- | ------------------------ |
|
|
52
|
-
| [Google Tag](./google-tag.md) | `gtag` | `measurement or marketing` | Always loads; signals Google consent
|
|
53
|
-
| [Ahrefs Analytics](./ahrefs-analytics.md) | `ahrefsAnalytics` | `measurement`
|
|
54
|
-
| [Adobe Analytics](./adobe-analytics.md) | `adobeAnalytics` | `measurement`
|
|
55
|
-
| [Amplitude](./amplitude.md) | `amplitude` | `measurement`
|
|
56
|
-
| [Cloudflare Web Analytics](./cloudflare-web-analytics.md) | `cloudflareWebAnalytics` | `measurement`
|
|
57
|
-
| [Clearbit](./clearbit.md) | `clearbit` | `marketing`
|
|
58
|
-
| [Microsoft Clarity](./microsoft-clarity.md) | `clarity` | `measurement`
|
|
59
|
-
| [Databuddy](./databuddy.md) | `databuddy` | `measurement`
|
|
60
|
-
| [Fathom Analytics](./fathom-analytics.md) | `fathomAnalytics` | `measurement`
|
|
61
|
-
| [Heap](./heap.md) | `heap` | `measurement`
|
|
62
|
-
| [Matomo Analytics](./matomo-analytics.md) | `matomoAnalytics` | `measurement`
|
|
63
|
-
| [Mixpanel](./mixpanel-analytics.md) | `mixpanelAnalytics` | `measurement`
|
|
64
|
-
| [OneDollarStats](./one-dollar-stats.md) | `oneDollarStats` | `measurement`
|
|
65
|
-
| [Hotjar](./hotjar.md) | `hotjar` | `measurement`
|
|
66
|
-
| [Hightouch](./hightouch.md) | `hightouch` | `measurement`
|
|
67
|
-
| [LogRocket](./logrocket.md) | `logRocket` | `measurement`
|
|
68
|
-
| [Plausible Analytics](./plausible-analytics.md) | `plausibleAnalytics` | `measurement`
|
|
69
|
-
| [PostHog](./posthog.md) | `posthog` | `measurement`
|
|
70
|
-
| [Promptwatch](./promptwatch.md) | `promptwatch` | `measurement`
|
|
71
|
-
| [Pirsch](./pirsch.md) | `pirsch` | `measurement`
|
|
72
|
-
| [RudderStack](./rudderstack.md) | `rudderstack` | `measurement`
|
|
73
|
-
| [Segment](./segment.md) | `segment` | `measurement`
|
|
74
|
-
| [Rybbit Analytics](./rybbit-analytics.md) | `rybbitAnalytics` | `measurement`
|
|
75
|
-
| [Umami Analytics](./umami-analytics.md) | `umamiAnalytics` | `measurement`
|
|
76
|
-
| [Vercel Analytics](./vercel-analytics.md) | `vercelAnalytics` | `measurement`
|
|
77
|
-
|
|
78
|
-
##
|
|
50
|
+
| Integration | Helper | Category | Loading behavior |
|
|
51
|
+
| --------------------------------------------------------- | ------------------------ | ---------------------------- | ---------------------------------------------------------------------------- |
|
|
52
|
+
| [Google Tag](./google-tag.md) | `gtag` | `measurement` or `marketing` | Always loads; signals Google consent |
|
|
53
|
+
| [Ahrefs Analytics](./ahrefs-analytics.md) | `ahrefsAnalytics` | `measurement` | Waits for effective permission |
|
|
54
|
+
| [Adobe Analytics](./adobe-analytics.md) | `adobeAnalytics` | `measurement` | Waits for effective permission |
|
|
55
|
+
| [Amplitude](./amplitude.md) | `amplitude` | `measurement` | Waits for effective permission; opts the SDK out on revocation |
|
|
56
|
+
| [Cloudflare Web Analytics](./cloudflare-web-analytics.md) | `cloudflareWebAnalytics` | `measurement` | Waits for effective permission |
|
|
57
|
+
| [Clearbit](./clearbit.md) | `clearbit` | `marketing` | Waits for effective permission |
|
|
58
|
+
| [Microsoft Clarity](./microsoft-clarity.md) | `clarity` | `measurement` | Gated initially; keeps the SDK and signals storage consent |
|
|
59
|
+
| [Databuddy](./databuddy.md) | `databuddy` | `measurement` | Always loads; switches the SDK's disabled flag |
|
|
60
|
+
| [Fathom Analytics](./fathom-analytics.md) | `fathomAnalytics` | `measurement` | Waits for effective permission |
|
|
61
|
+
| [Heap](./heap.md) | `heap` | `measurement` | Waits for effective permission |
|
|
62
|
+
| [Matomo Analytics](./matomo-analytics.md) | `matomoAnalytics` | `measurement` | Gated by default; optional consent mode |
|
|
63
|
+
| [Mixpanel](./mixpanel-analytics.md) | `mixpanelAnalytics` | `measurement` | Always loads; calls opt-in and opt-out APIs |
|
|
64
|
+
| [OneDollarStats](./one-dollar-stats.md) | `oneDollarStats` | `measurement` | Waits for effective permission |
|
|
65
|
+
| [Hotjar](./hotjar.md) | `hotjar` | `measurement` | Waits for effective permission |
|
|
66
|
+
| [Hightouch](./hightouch.md) | `hightouch` | `measurement` | Waits for effective permission |
|
|
67
|
+
| [LogRocket](./logrocket.md) | `logRocket` | `measurement` | Waits for effective permission |
|
|
68
|
+
| [Plausible Analytics](./plausible-analytics.md) | `plausibleAnalytics` | `measurement` | Waits for effective permission |
|
|
69
|
+
| [PostHog](./posthog.md) | `posthog` | `measurement` | Configurable; defaults to always loading and calling opt-in and opt-out APIs |
|
|
70
|
+
| [Promptwatch](./promptwatch.md) | `promptwatch` | `measurement` | Waits for effective permission |
|
|
71
|
+
| [Pirsch](./pirsch.md) | `pirsch` | `measurement` | Waits for effective permission |
|
|
72
|
+
| [RudderStack](./rudderstack.md) | `rudderstack` | `measurement` | Gated by default; optional destination consent mode |
|
|
73
|
+
| [Segment](./segment.md) | `segment` | `measurement` | Waits for effective permission |
|
|
74
|
+
| [Rybbit Analytics](./rybbit-analytics.md) | `rybbitAnalytics` | `measurement` | Waits for effective permission |
|
|
75
|
+
| [Umami Analytics](./umami-analytics.md) | `umamiAnalytics` | `measurement` | Waits for effective permission |
|
|
76
|
+
| [Vercel Analytics](./vercel-analytics.md) | `vercelAnalytics` | `measurement` | Waits for effective permission |
|
|
77
|
+
|
|
78
|
+
## Chat and support
|
|
79
79
|
|
|
80
80
|
| Integration | Helper | Category | Loading behavior |
|
|
81
81
|
| ----------------------------- | ----------- | --------------- | ------------------------------ |
|
|
@@ -83,33 +83,90 @@ kernel to control its DOM lifecycle. Embeds do not require `@c15t/scripts`.
|
|
|
83
83
|
| [Front Chat](./front-chat.md) | `frontChat` | `functionality` | Waits for effective permission |
|
|
84
84
|
| [Intercom](./intercom.md) | `intercom` | `functionality` | Waits for effective permission |
|
|
85
85
|
|
|
86
|
+
## Email and SMS
|
|
87
|
+
|
|
88
|
+
| Integration | Helper | Category | Loading behavior |
|
|
89
|
+
| ----------------------- | --------- | ----------------------------- | ---------------------------------------------------------- |
|
|
90
|
+
| [Klaviyo](./klaviyo.md) | `klaviyo` | `marketing` and `measurement` | Waits for both; optional forms-only mode needs `marketing` |
|
|
91
|
+
|
|
86
92
|
## Ads and pixels
|
|
87
93
|
|
|
88
|
-
| Integration | Helper | Category | Loading behavior
|
|
89
|
-
| ---------------------------------------------- | ------------------ | ----------- |
|
|
90
|
-
| [Meta Pixel](./meta-pixel.md) | `metaPixel` | `marketing` |
|
|
91
|
-
| [OpenAI Pixel](./openai-pixel.md) | `openaiPixel` | `marketing` | Gated initially;
|
|
92
|
-
| [Pinterest Tag](./pinterest-tag.md) | `pinterestTag` | `marketing` | Gated initially;
|
|
93
|
-
| [Reddit Pixel](./reddit-pixel.md) | `redditPixel` | `marketing` | Gated initially;
|
|
94
|
-
| [TikTok Pixel](./tiktok-pixel.md) | `tiktokPixel` | `marketing` | Gated initially;
|
|
95
|
-
| [LinkedIn Insight Tag](./linkedin-insights.md) | `linkedinInsights` | `marketing` | Waits for effective permission
|
|
96
|
-
| [Microsoft UET](./microsoft-uet.md) | `microsoftUet` | `marketing` | Always loads; signals ad storage consent
|
|
97
|
-
| [Snapchat Pixel](./snapchat-pixel.md) | `snapchatPixel` | `marketing` | Waits for effective permission
|
|
98
|
-
| [X Pixel](./x-pixel.md) | `xPixel` | `marketing` | Waits for effective permission
|
|
99
|
-
|
|
100
|
-
##
|
|
101
|
-
|
|
102
|
-
Remove
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
94
|
+
| Integration | Helper | Category | Loading behavior |
|
|
95
|
+
| ---------------------------------------------- | ------------------ | ----------- | ---------------------------------------------------------------- |
|
|
96
|
+
| [Meta Pixel](./meta-pixel.md) | `metaPixel` | `marketing` | Gated initially; keeps the SDK and signals consent |
|
|
97
|
+
| [OpenAI Pixel](./openai-pixel.md) | `openaiPixel` | `marketing` | Gated initially; keeps the SDK and signals consent |
|
|
98
|
+
| [Pinterest Tag](./pinterest-tag.md) | `pinterestTag` | `marketing` | Gated initially; keeps the tag and signals consent |
|
|
99
|
+
| [Reddit Pixel](./reddit-pixel.md) | `redditPixel` | `marketing` | Gated initially; keeps the pixel and toggles first-party cookies |
|
|
100
|
+
| [TikTok Pixel](./tiktok-pixel.md) | `tiktokPixel` | `marketing` | Gated initially; keeps the SDK and signals consent |
|
|
101
|
+
| [LinkedIn Insight Tag](./linkedin-insights.md) | `linkedinInsights` | `marketing` | Waits for effective permission |
|
|
102
|
+
| [Microsoft UET](./microsoft-uet.md) | `microsoftUet` | `marketing` | Always loads; signals ad storage consent |
|
|
103
|
+
| [Snapchat Pixel](./snapchat-pixel.md) | `snapchatPixel` | `marketing` | Waits for effective permission |
|
|
104
|
+
| [X Pixel](./x-pixel.md) | `xPixel` | `marketing` | Waits for effective permission |
|
|
105
|
+
|
|
106
|
+
## Load each vendor once
|
|
107
|
+
|
|
108
|
+
Remove the vendor's own snippet, tracking image, framework plugin or tag
|
|
109
|
+
manager entry before adding its helper. c15t cannot gate a copy it did not
|
|
110
|
+
load. Tag managers and data pipelines such as Segment can load further
|
|
111
|
+
destinations, which need consent settings of their own.
|
|
112
|
+
|
|
113
|
+
When a visitor turns off a category they had allowed, c15t reloads the page so
|
|
114
|
+
that code which already ran stops. Each vendor guide lists what its helper does
|
|
115
|
+
on revocation and how to check it.
|
|
116
|
+
|
|
117
|
+
## Vendor switches and cookie cleanup
|
|
118
|
+
|
|
119
|
+
Every helper sets a `vendor` slug, so once you declare that vendor a visitor
|
|
120
|
+
can allow its category and still switch the vendor off. Gating also leaves
|
|
121
|
+
behind the cookies a vendor already wrote; `clearOnRevocation` deletes them
|
|
122
|
+
when their category is denied. Each framework documents both in its Scripts
|
|
123
|
+
and embeds group:
|
|
124
|
+
|
|
125
|
+
| Framework | Vendor consent | Clear on revocation |
|
|
126
|
+
| -------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
|
|
127
|
+
| Next.js | [Vendor consent](https://c15t.com/docs/frameworks/next/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/next/clear-on-revocation) |
|
|
128
|
+
| TanStack Start | [Vendor consent](https://c15t.com/docs/frameworks/tanstack-start/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/tanstack-start/clear-on-revocation) |
|
|
129
|
+
| React | [Vendor consent](https://c15t.com/docs/frameworks/react/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/react/clear-on-revocation) |
|
|
130
|
+
| Nuxt | [Vendor consent](https://c15t.com/docs/frameworks/nuxt/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/nuxt/clear-on-revocation) |
|
|
131
|
+
| Vue | [Vendor consent](https://c15t.com/docs/frameworks/vue/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/vue/clear-on-revocation) |
|
|
132
|
+
| Astro | [Vendor consent](https://c15t.com/docs/frameworks/astro/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/astro/clear-on-revocation) |
|
|
133
|
+
| Svelte | [Vendor consent](https://c15t.com/docs/frameworks/svelte/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/svelte/clear-on-revocation) |
|
|
134
|
+
| SvelteKit | [Vendor consent](https://c15t.com/docs/frameworks/sveltekit/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/sveltekit/clear-on-revocation) |
|
|
135
|
+
| HTML | [Vendor consent](https://c15t.com/docs/frameworks/html/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/html/clear-on-revocation) |
|
|
136
|
+
| JavaScript | [Vendor consent](https://c15t.com/docs/frameworks/javascript/vendor-consent) | [Clear on revocation](https://c15t.com/docs/frameworks/javascript/clear-on-revocation) |
|
|
137
|
+
|
|
138
|
+
## Send events only to allowed integrations
|
|
139
|
+
|
|
140
|
+
`createEventDispatcher` from `@c15t/integrations/events` sends one named event to
|
|
141
|
+
every registered integration that has an event API and is allowed right now.
|
|
142
|
+
It drops events while measurement is denied, and one vendor's error does not
|
|
143
|
+
stop delivery to the others:
|
|
144
|
+
|
|
145
|
+
```ts
|
|
146
|
+
import { createEventDispatcher } from '@c15t/integrations/events';
|
|
147
|
+
|
|
148
|
+
const events = createEventDispatcher({
|
|
149
|
+
scripts,
|
|
150
|
+
getSnapshot: () => runtime.kernel.getSnapshot(),
|
|
151
|
+
pageviews: ['segment'],
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
events.track('docs_search', { resultCount: 4 });
|
|
155
|
+
events.pageview(location.pathname);
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Pass the same `scripts` you registered and a function that returns the live
|
|
159
|
+
consent snapshot. `track` supports Google Tag Manager, Google Tag, PostHog,
|
|
160
|
+
Mixpanel, Segment, Hightouch, Heap, Amplitude, LogRocket, Adobe Analytics,
|
|
161
|
+
Databuddy, Plausible, Fathom, Pirsch, Microsoft Clarity, Hotjar, Vercel
|
|
162
|
+
Analytics, OneDollarStats, Umami, Rybbit, RudderStack and Matomo.
|
|
163
|
+
`pageview` sends single-page-app page views only to the integrations named in
|
|
164
|
+
`pageviews`: PostHog, Segment or Hightouch. Call it from your router's
|
|
165
|
+
navigation hook. The first call records the path without sending, and repeated
|
|
166
|
+
paths or hash-only changes are skipped.
|
|
167
|
+
|
|
168
|
+
## Add a vendor without a helper
|
|
169
|
+
|
|
170
|
+
Use [custom integrations](./building-integrations.md) for a
|
|
171
|
+
vendor without a helper, or an SDK your app already loads. Test every
|
|
172
|
+
integration with the [consent verification guide](../guides/verify-consent.md).
|