Next.js bietet genau einen guten Ort für eine Consent-Runtime: ein next/script-Tag mit strategy="beforeInteractive". Skripte mit dieser Strategie werden ins initiale HTML eingefügt und laufen vor jeder Hydration, dem einzigen Zeitpunkt, der früh genug ist. afterInteractive (der Standard) läuft nach der Hydration, wenn ein mit derselben Strategie eingefügter Tag-Manager womöglich schon gefeuert hat. lazyOnload ist noch schlechter.
Im App Router kommt das Tag in app/layout.tsx, das jede Route umschließt. Im Pages Router kommt es in pages/_document.tsx. Die CLI erkennt, welchen Sie nutzen, und gibt das passende Snippet aus; @cookiecrumbs/next verpackt das Tag als Komponente und ergänzt Server-Helfer, sodass eine Server Component oder ein Route Handler das Einwilligungs-Cookie lesen und entscheiden kann, was gerendert wird, bevor der Client läuft.
Von da an ist das Sperren eine Frage der Kategorie. Ein Dritt-Tag wird zu type="text/plain" mit data-cc-category; ein React-Teilbaum, der einen Tracker lädt, kommt in ConsentGate. Die Runtime gibt beide frei, wenn die Kategorie erlaubt wird, in Dokumentreihenfolge, sodass ein GTM-Container, der auf Statistik wartet, genau so läuft wie sonst, nur später. Alles, was der Scan auf Ihrer Produktions-Domain gefunden hat, wird beim Veröffentlichen in eine Block-Map kompiliert, sodass auch ungetaggte Skripte mit bekanntem Host an Ort und Stelle neutralisiert werden.