@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