Service catalog
The services libconsent already knows, and how to add one it doesn't.
These services need nothing but their id:
<CookieService id="hotjar">
<HotjarSnippet />
</CookieService>The category, the label in the preferences dialog and the other names consent platforms use for that service all come with the id.
essential
| id | Shown as | Also matches |
|---|---|---|
recaptcha | Google reCAPTCHA | Google reCAPTCHA, Google Recaptcha, reCAPTCHA v3 |
sentry | Sentry | — |
stripe | Stripe | Stripe.com |
functional
| id | Shown as | Also matches |
|---|---|---|
google-maps | Google Maps | — |
google-fonts | Google Fonts | — |
intercom | Intercom | — |
analytics
| id | Shown as | Also matches |
|---|---|---|
google-analytics | Google Analytics | Google Analytics 4, GA4, gtag, Universal Analytics |
google-tag-manager | Google Tag Manager | GTM |
hotjar | Hotjar | HotJar.com |
clarity | Microsoft Clarity | Clarity |
matomo | Matomo | Piwik |
plausible | Plausible Analytics | — |
posthog | PostHog | — |
mixpanel | Mixpanel | — |
segment | Segment | Segment.io |
marketing
| id | Shown as | Also matches |
|---|---|---|
google-ads | Google Ads | Google AdWords, Google Advertising Products, DoubleClick |
youtube | YouTube | YouTube Video, YouTube Embed |
vimeo | Vimeo | Vimeo Player |
meta-pixel | Meta Pixel | Facebook Pixel, Facebook (Meta), Meta Platforms |
linkedin-insight | LinkedIn Insight Tag | LinkedIn, LinkedIn Ads |
tiktok-pixel | TikTok Pixel | TikTok, TikTok Ads |
microsoft-ads | Microsoft Advertising | Bing Ads, Microsoft UET |
hubspot | HubSpot | HubSpot CRM |
Overriding an entry
Anything you pass yourself wins — a different category, a different label, or an extra name your platform happens to use:
<CookieService id="youtube" category="functional" name="Video player">
<YouTubeEmbed />
</CookieService><CookieService id="google-analytics" aliases={["Google Analytics (GA4)"]}>
<GoogleAnalytics gaId="G-XXXXXXX" />
</CookieService>Services that aren't listed
Describe it inline. id is yours to choose, name is what the preferences
dialog shows, and category decides what gates it.
<CookieService id="acme-chat" name="Acme Chat" category="functional">
<AcmeChat />
</CookieService>If your consent platform calls it something else, add that as an alias — then the platform's own answer for that service is used instead of the category:
<CookieService
id="acme-chat"
name="Acme Chat"
category="functional"
aliases={["Acme Live Chat"]}
>
<AcmeChat />
</CookieService>Repeating that in several places gets old, so pull it out:
export const acmeChat = {
id: "acme-chat",
name: "Acme Chat",
category: "functional",
aliases: ["Acme Live Chat"],
} as const;<CookieService {...acmeChat}>
<AcmeChat />
</CookieService>Missing something common? The catalog is one object entry per service in
packages/core/src/services.ts — pull requests
welcome.