Applications
Eine Application ist ein Tracking-Snippet: ihre Hashes, Erfassungs-Config und die Sites (Domains), die sie bedient.
Eine Application ist der Tracking-Embed: Ihr gehören das Snippet und die komplette Erfassungs-Config. Sie bedient eine oder mehrere Domains, jede davon eine Site mit eigenem Dashboard.
Die zwei Hashes
Beide Hashes findest du auf der Karte der Application unter ··· → IDs & Hashes.
source_hashsteht in der Script-URL (/s/{source_hash}.js) und wählt das Bundle.collector_hashsteht in der Ingest-URL (/c/{collector_hash}) und sagt, zu welcher Application ein Beacon gehört.
Rotieren erzeugt beide neu, invalidiert das ausgelieferte Script und macht ein eingefügtes Shopify-Pixel kaputt.
Was erfasst wird: Presets
Ein Preset (minimal / standard / full, Default
standard) setzt die einzelnen Flags, die ins ausgelieferte Bundle
gebacken werden.
Wohin die Beacons gehen: der Collector
collector_mode bestimmt den Host im Snippet:
default: fastmons geteilter Collector (fastmon.site), Third-Party.relative: hostlose/s/- und/c/-Pfade über deinen Reverse-Proxy, First-Party.custom: eincollector_endpoint-Host, den du kontrollierst.
Er wird beim Anlegen gesetzt. Siehe Implementierung.
Unbekannte Domains: site_policy
Kommt ein Beacon von einem Hostnamen, der keine registrierte Site
ist, entscheidet die site_policy:
open(Default, „Vorschlagen“): Der Beacon wird verworfen, der Hostname landet als vorgeschlagene Domain in der Liste. Du übernimmst sie mit einem Klick.auto: Für den Hostnamen wird eine Site angelegt, ihr Traffic bleibt.strict: Der Beacon wird ohne Vorschlag verworfen.
Das gilt auch für eine Application mit nur einer Site. Ein www.-Host neben
der Apex-Domain oder ein eigener Checkout-Host braucht eine eigene Site.
Environment
environment markiert eine Application als prod oder dev
(Default prod). Nutze dev, um Staging und Preview aus deinem
Produktions-Traffic herauszuhalten.
Plattform, Shop und SPA
platform nennt das Shopsystem oder CMS, auf dem die Application
läuft, etwa shopware6, shopify oder prestashop. Eine selbst
gesetzte Plattform ist manual und wird von späterer Erkennung nicht
überschrieben.
shop.active sagt, ob die Application ein Shop ist, dazu
shop.source für die Herkunft. Ohne Einstellung folgt der Wert der
Plattform; bei unbekannter Plattform bleibt er null. spa setzt du von Hand.
Eine Shopify-Application liefert zusätzlich das Checkout-Event-Pixel aus.
Page-Type-Detection
page_type.body_class liest den Page-Type (Home, Product, Cart, Checkout)
mit dem Ruleset der Plattform aus der <body>-Klasse. Die Plattform allein
schaltet das nicht ein, und Shopify und PrestaShop haben kein Ruleset.
pagetype_rules: bis zu 24 Klassennamen deines eigenen Themes, jeder auf einen Page-Type abgebildet.page_type.url_rules: bis zu 10 URL-Muster in der Mustersyntax, das erste passende gewinnt.- Meta-Tag:
<meta name="fm-page-type" content="product">oderpage-type. Soft-Pageviews lesen es, sobald deine App es neu setzt.
Der Collector nimmt die erste Quelle, die einen Page-Type liefert:
- Den Header
Server-Timing: pageType. - Das Page-Type-Meta-Tag.
- Deine eigenen Body-Klassen, danach deine URL-Regeln.
- Das Ruleset der Plattform, danach die Shopify-Routen oder den OXID-Controller
cl. - Die Checkout-Stufe:
cartauf einem Warenkorb-Pfad,checkoutauf einem Checkout- oder Erfolgs-Pfad.
page-type-sources
listet diese Quellen in genau dieser Reihenfolge.
detect-pagetype
nennt das Shop-System,
pagetype/discover
schlägt Klassennamen vor. Beide schreiben nichts. Siehe
Tracker → pagetype_rules.
Checkout-Funnel
Standardmäßig an, unter shop.checkout. Der Collector markiert jeden
Pageview, dessen URL auf ein Warenkorb-, Checkout- oder Abschluss-Muster
passt, und erfasst Warenkorb-Requests aus Fetch/XHR. Die drei Pfadlisten
erben die eingebauten Muster (null) oder ersetzen sie. Die Markierung
wirkt nur vorwärts, und Besucher pro Stufe brauchen store_stitch. Siehe
Checkout-Funnel.
Traffic-Sampling
collection.sampling_rate speichert nur einen Teil deiner Besucher statt
aller. Der Default ist 1.0, eine Rate unter 0.01 lehnt die API ab. Die Edge
behält oder verwirft die Pageviews eines Besuchers gemeinsam, und eine
neue Rate greift nach etwa einer Minute.
Pageviews, Besucher und Fehlerzahlen werden hochgerechnet. Perzentile,
Anteile, Mindeststichproben, der Beacon-Explorer und Histogramme rechnen mit
den gespeicherten Zeilen. Gesampelt wird nur eine Application, die stitch
speichert, und jede Analytics-Antwort nennt die Einstellung in
meta.sampling.
Checkout-Schritte und Käufe sind bei jeder Rate exakt, weil sie
Stage-Events zählen. Auch die Live-Ansicht
zählt jeden Besucher. meta.sampling.estimated_metrics nennt die Felder einer
Antwort, die hochgerechnet sind, und das Dashboard markiert sie mit ~.
PATCH /applications/{app_id}
{ "collection": { "sampling_rate": 0.5 } }Im Dashboard heißt die Rate Erfasster Besucheranteil unter Besucher & Sampling.
Automatisches Sampling
collection.sampling_mode legt fest, wer die Rate setzt: du (manual, der
Default) oder fastmon anhand deiner gebuchten Pageviews (automatic). Im
Dashboard ist das Anteil automatisch festlegen unter Besucher & Sampling.
- Stufen: eine feste Leiter von 100 % bis 1 %, höchstens eine Stufe pro Tag.
- Geltung: Produktions-Applications einer Organisation mit festem Pageview-Kontingent. Free, Enterprise, Partner-Tarife, voll abgedeckte Kunden und Trials bleiben unberührt.
- Kontingent: Manuelle Applications bekommen ihren Teil zuerst, die automatischen teilen sich den Rest nach Traffic.
- Rate schreiben: Im Modus
automaticgibt eine geändertesampling_rate422 zurück, außer derselbe Body setztsampling_modeaufmanual. - Änderungen:
sampling_rate_changed_atund der Audit-Log-Eintragapplication.sampling_rate_changedhalten jeden Schritt fest. Zurück aufmanualbleibt die letzte Stufe.
Fetch- und XHR-Sampling
collection.fetch_xhr_sampling_rate behält die Fetch- und XHR-Aufrufe nur für
einen Teil der gespeicherten Besucher. Der Rest des Pageviews wird vollständig
gespeichert. Eine neue Application startet mit 0.25, und die Rate greift nie
über sampling_rate hinaus.
Aufrufe und Fehler werden hochgerechnet. Perzentile und die gelisteten Aufrufe beruhen nur auf den behaltenen Aufrufen. Warenkorb-Interaktionen zählen mit der Pageview-Rate. Im Dashboard heißt das Feld Besucheranteil mit Fetch/XHR.
Empfohlene Rate
GET /applications/{app_id}/sampling-recommendation empfiehlt die Rate, die
über die letzten sieben vollen Tage etwa 20.000 Pageviews am Tag behält. Sie
rundet auf die nächsten 0.05 auf, geht nie unter 0.2 und ändert nichts.
Das Dashboard zeigt sie unter dem Feld, Übernehmen trägt sie ein.
Events
| Einstellung | Default | Wirkung |
|---|---|---|
event_tracking | an | Nimmt die eigenen Events eines Shops an. fastmon schaltet es auf Anfrage ab. Die Checkout-Schritte des Shopify-Pixels bleiben. |
collection.ga4_ecommerce | aus | Liest die sieben GA4-E-Commerce-Pushes mit Wert, Währung und Artikeln. Dashboard: GA4-E-Commerce-Events lesen. |
collection.data_layer | aus | Liest jeden dataLayer-Push mit Event-Namen, ohne Properties. Dashboard: Alle dataLayer-Events lesen. |
collection.data_layer_prop_keys | leer | Bis zu 30 Top-Level-Keys, die data_layer-Events als Properties behalten. Dashboard: Keys als Properties übernehmen. |
collection.data_layer_mode | block | block verwirft die gelisteten Namen, allow behält nur sie. Dashboard: Nach Namen filtern. |
collection.data_layer_names | leer | Bis zu 50 Namen für den Modus, prefix* erlaubt. Greift im Collector binnen fünf Minuten. |
Die dataLayer-Einstellungen findest du unter Events aus dem dataLayer im Tab Shop. Siehe Eigene Events → dataLayer.
Datenschutz-Einstellungen für alle Sites
site_defaults enthält drei Einstellungen, die für jede Site der
Application gelten: data_retention_days (Default 90), store_stitch und
count_visitors_by. Eine Site kann sie nicht überschreiben. Braucht eine
Domain andere Werte, gehört sie in eine eigene Application.
Was eine Application hat
Die Response gruppiert ihre Felder in page_type, shop, collection,
collector, script und site_defaults. Create und Update nehmen dieselben
Gruppen als Teilobjekte und lehnen jeden unbekannten Key ab.
| Feld | Typ | Hinweise |
|---|---|---|
id | UUID v7 | Stabiler Identifier. |
organization_id | UUID v7 | Die besitzende Organisation. |
name | string | Anzeigename. |
environment | enum | prod oder dev. Default prod. |
platform | object · nullable | Shopsystem oder CMS: key, source, detected_via, detected_at. |
shop.active | bool · nullable | Ob das ein Shop ist. null folgt der Plattform. |
spa | bool | Single-Page-App. Von Hand gesetzt, Default false. |
collection.* | bool · enum | Die Preset-Flags: Sessions, Fetch/XHR, Fehlermessages und -Frames, Query-Keys und -Werte, session_consent, template_url_ids. Siehe Presets. |
collection.sampling_rate | number | Anteil der gespeicherten Besucher, 0.01 bis 1.0, Default 1.0. Siehe Traffic-Sampling. |
collection.sampling_mode | enum | manual (Default) oder automatic. Siehe Automatisches Sampling. |
collection.sampling_rate_changed_at | timestamp · nullable | Wann fastmon die Rate zuletzt verschoben hat. |
collection.ga4_ecommerce, collection.data_layer* | bool · list · enum | Die dataLayer-Brücke. Siehe Events. |
collection.fetch_xhr_sampling_rate | number | Anteil der Besucher mit gespeicherten Fetch/XHR-Aufrufen. Siehe Fetch- und XHR-Sampling. |
page_type.body_class | bool | Page-Type aus der <body>-Klasse lesen. Default aus. |
page_type.rules | list · nullable | Deine eigenen Body-Klassen, auf Page-Types abgebildet. Wird vor der Ruleset gelesen. |
page_type.url_rules | list · nullable | Deine eigenen URL-Muster, auf Page-Types abgebildet. Wird nach deinen Body-Klassen gelesen. |
shop.checkout.tracking | bool | Checkout-Funnel an (true, der Default) oder aus. Siehe Checkout-Funnel. |
shop.checkout.*_paths | list · nullable | URL-Muster pro Funnel-Stufe. null erbt die eingebauten Muster; eine Liste ersetzt sie. |
collector.mode | enum | default / relative / custom. |
collector.endpoint | string · nullable | Eigener Collector-Host (nur bei custom). |
collector.proxy_secret | object | Das gemeinsame Secret für einen First-Party-Proxy. |
script.source_hash | string | Global eindeutig, steht in der Script-URL. |
script.collector_hash | string | Global eindeutig, steht in der Ingest-URL. |
script.source_version | string | Gepinnte Beacon-Template-Version (v1). |
site_defaults.* | int · bool · enum | data_retention_days, store_stitch, count_visitors_by. Gilt für alle Sites. |
site_policy | enum | open / auto / strict. Umgang mit unbekannten Hostnamen. |
is_active | bool | Bei false werden Beacons angenommen, aber nicht geschrieben. |
Sechs Felder bleiben für das Shopware-Plugin flach: source_hash,
collector_hash, proxy_secret, collector_mode, collector_endpoint
und pagetype_ruleset.