Cookie-Einwilligung für React, direkt in Ihrem Komponentenbaum.
Ein Provider, eine Handvoll typisierter Hooks und zwei ungestylte Komponenten. Die Entscheidung ist State, den Ihre Komponenten lesen und bei dessen Änderung sie neu rendern, der Cookie-Guard wird für Sie eingebunden, und das Banner können Sie umgestalten oder komplett ersetzen.
import { useEffect } from 'react'
import {
KatlaProvider,
CookieBanner,
useKatlaConsent,
} from '@katla.app/sdk/react'
function Analytics() {
const { consent } = useKatlaConsent()
useEffect(() => {
if (consent?.analytics) loadAnalytics()
}, [consent])
return null
}
export default function App() {
return (
<KatlaProvider siteId="your-site-id" googleConsentMode>
<Analytics />
<CookieBanner />
</KatlaProvider>
)
}Einwilligungsstatus und React-State sind dasselbe Problem, zweimal gelöst.
Vier Schritte, ein Provider.
- Installierennpm install @katla.app/sdk. Im Headless-Modus werden etwa 4 KB übertragen.
- App umschließenLegen Sie KatlaProvider mit Ihrer Site-ID um Ihren Baum, und ergänzen Sie googleConsentMode, wenn Sie GA4 oder Google Ads nutzen.
- Tags absichernLesen Sie useKatlaConsent() und laden Sie Analytics- oder Marketing-Skripte erst, wenn ihre Kategorie erlaubt ist.
- Banner ausliefernSetzen Sie CookieBanner ein und gestalten Sie es mit Ihrem eigenen CSS, oder bauen Sie Ihr eigenes mit useConsentManager().
Hooks und Komponenten, und nichts, worum Sie nicht gebeten haben.
So krümelt der Keks. Ihr SEO bitte nicht.
Das Consent-Skript ist der erste Drittanbieter auf der Seite, deshalb taucht es im Bericht zu den Core Web Vitals auf. Der React-Einstiegspunkt überträgt 4 KB, rendert keine Oberfläche, um die Sie nicht gebeten haben, und reserviert keinen Platz im Seitenfluss. Mit initialCookies aus dem Build stellt er überhaupt keine Anfrage.
So funktioniert der Headless-Modus →Unsere eigenen Messungen vom : so wurden sie erhoben.
Was React-Teams fragen
- Soll ich das in Next.js verwenden?
- Verwenden Sie stattdessen @katla.app/sdk/next. KatlaNextProvider trägt die Client-Boundary, damit der Rest Ihres Baums aus Server Components bestehen bleibt, und getCachedCookies() lädt das Inventar vorab auf dem Server. Hooks und Komponenten sind dieselben.
- Muss ich CookieBanner verwenden?
- Nein. Es nimmt ein Render-Prop, das sein Markup vollständig ersetzt, und useConsentManager() gibt Ihnen denselben State ganz ohne Markup. Der Provider selbst rendert kein Banner.
- Welche React-Versionen?
- 18 und 19, als Peer Dependency. Durchgehend Hooks und Funktionskomponenten, daher funktioniert es mit Vite, Create React App oder jedem anderen clientseitigen React-Setup.
- Kann ich die Anfrage beim Laden der Seite vermeiden?
- Ja. katla pull schreibt Cookie-Daten, Richtlinien und guard.js zur Build-Zeit nach .katla/. Übergeben Sie sie dem Provider als initialCookies und guardScript, und beim Laden der Seite wird nichts abgerufen.
Umschließen Sie Ihre App einmal, und die Cookies warten, bis sie an der Reihe sind.
Der kostenlose Tarif scannt Ihre React-Website und erstellt eine Cookie-Richtlinie, ohne Karte.