Dateien
Webseite_alt/analytics-events.js
claude-dev b82c1f6590 Archiv: Letzter Stand der Webseite vor Promotion der Vorschau
Vollstaendiger Snapshot des Live-Standes von /opt/v2-Docker/aegis-website/html
am 2026-04-26, kurz bevor die Inhalte aus /vorschau/ in den Root verschoben
und die alte Webseite ausgemustert wurde. Dient als historische Referenz;
nicht fuer aktive Entwicklung gedacht.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:22:12 +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");
}
});
})();