Dateien
Website/analytics-events.js
Claude Code 816d2a3a30 refactor: Lagebild nach /lagen/iran-konflikt/ verschoben + Vorschau-Seite
- /lagebild/ -> 301 Redirect -> /lagen/iran-konflikt/
- Relative Pfade auf absolute umgestellt (Tiefe 2)
- Sync-Script + Analytics auf neuen Pfad aktualisiert
- /vorschau/ mit Passwort-Gate fuer neue Hauptseite
- CLAUDE.md aktualisiert
- .gitignore: Lagen-Datenverzeichnisse ausgeschlossen

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 17:20:21 +02:00

74 Zeilen
2.8 KiB
JavaScript

/**
* AegisSight Analytics - Custom Events
* Trackt wichtige Nutzerinteraktionen via Umami
*/
(function() {
"use strict";
// Nur tracken wenn umami geladen ist
function track(name, data) {
if (typeof umami !== "undefined" && umami.track) {
umami.track(name, data);
}
}
document.addEventListener("DOMContentLoaded", function() {
// 1. Produkt-Tab geklickt
document.querySelectorAll("[data-translate]").forEach(function(el) {
if (el.closest(".products-section, .product-card, .tab-button")) {
el.addEventListener("click", function() {
var text = el.textContent.trim().substring(0, 50);
track("Produkt-Interesse", { element: text });
});
}
});
// 2. About-Tabs (Unternehmen, Mission, Kernkompetenzen, Versprechen)
document.querySelectorAll(".about-tab, .tab-btn, [data-tab]").forEach(function(el) {
el.addEventListener("click", function() {
var tab = el.getAttribute("data-tab") || el.textContent.trim().substring(0, 30);
track("About-Tab", { tab: tab });
});
});
// 3. Kontaktbereich erreicht (Scroll)
var contactTracked = false;
var observer = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) {
if (entry.isIntersecting && !contactTracked) {
contactTracked = true;
track("Kontakt-Bereich-erreicht");
}
});
}, { threshold: 0.5 });
var footer = document.querySelector("footer, .contact-section, #kontakt, #contact");
if (footer) observer.observe(footer);
// 4. Sprachenwechsel
document.querySelectorAll(".lang-switch, .language-btn, [data-lang]").forEach(function(el) {
el.addEventListener("click", function() {
var lang = el.getAttribute("data-lang") || el.textContent.trim();
track("Sprachenwechsel", { sprache: lang });
});
});
// 5. Lagebild-Seite: Tab gewechselt
if (window.location.pathname.indexOf("lagen") > -1) {
document.querySelectorAll(".tab-button, [data-tab]").forEach(function(el) {
el.addEventListener("click", function() {
var tab = el.getAttribute("data-tab") || el.textContent.trim().substring(0, 30);
track("Lagebild-Tab", { tab: tab });
});
});
track("Lagebild-Besuch");
}
// 6. AccountForger Video aufgerufen
if (window.location.pathname.indexOf("accountforger") > -1) {
track("AccountForger-Video-Aufruf");
}
});
})();