@props([ 'gtmId' => config('cookie-consent.gtm_id'), 'enabled' => config('cookie-consent.enabled', true), 'cookieName' => config('cookie-consent.cookie_name', 'cookie_consent'), ]) {{-- Google Tag Manager (noscript) Komponente Diese Komponente muss direkt nach dem öffnenden Tag eingefügt werden: ... Der noscript-Teil wird nur angezeigt, wenn: 1. GTM aktiviert ist (gtm_id gesetzt) 2. Der Cookie-Consent bereits erteilt wurde (analytics: true) Hinweis: Bei JavaScript-deaktivierten Browsern funktioniert GTM ohnehin nicht vollständig, aber der noscript-iframe ermöglicht grundlegendes Tracking. --}} @if ($enabled && $gtmId) {{-- Alpine.js Wrapper für dynamische Anzeige basierend auf Cookie-Consent Der noscript-Teil wird erst nach Zustimmung in den DOM eingefügt --}}
{{-- GTM noscript iframe - wird nur bei Consent angezeigt --}}
{{-- Fallback für Server-Side Rendering: Wenn der Cookie bereits existiert und Analytics erlaubt, können wir den noscript-Teil direkt rendern --}} @php $cookieValue = request()->cookie($cookieName); $serverSideConsent = false; if ($cookieValue) { try { $decoded = json_decode($cookieValue, true); $serverSideConsent = isset($decoded['analytics']) && $decoded['analytics'] === true; } catch (\Exception $e) { $serverSideConsent = false; } } @endphp @if ($serverSideConsent) @endif @endif