fastmon Docs
Konzepte

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_hash steht in der Script-URL (/s/{source_hash}.js) und wählt das Bundle.
  • collector_hash steht 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: ein collector_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"> oder page-type. Soft-Pageviews lesen es, sobald deine App es neu setzt.

Der Collector nimmt die erste Quelle, die einen Page-Type liefert:

  1. Den Header Server-Timing: pageType.
  2. Das Page-Type-Meta-Tag.
  3. Deine eigenen Body-Klassen, danach deine URL-Regeln.
  4. Das Ruleset der Plattform, danach die Shopify-Routen oder den OXID-Controller cl.
  5. Die Checkout-Stufe: cart auf einem Warenkorb-Pfad, checkout auf 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 automatic gibt eine geänderte sampling_rate 422 zurück, außer derselbe Body setzt sampling_mode auf manual.
  • Änderungen: sampling_rate_changed_at und der Audit-Log-Eintrag application.sampling_rate_changed halten jeden Schritt fest. Zurück auf manual bleibt 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

EinstellungDefaultWirkung
event_trackinganNimmt die eigenen Events eines Shops an. fastmon schaltet es auf Anfrage ab. Die Checkout-Schritte des Shopify-Pixels bleiben.
collection.ga4_ecommerceausLiest die sieben GA4-E-Commerce-Pushes mit Wert, Währung und Artikeln. Dashboard: GA4-E-Commerce-Events lesen.
collection.data_layerausLiest jeden dataLayer-Push mit Event-Namen, ohne Properties. Dashboard: Alle dataLayer-Events lesen.
collection.data_layer_prop_keysleerBis zu 30 Top-Level-Keys, die data_layer-Events als Properties behalten. Dashboard: Keys als Properties übernehmen.
collection.data_layer_modeblockblock verwirft die gelisteten Namen, allow behält nur sie. Dashboard: Nach Namen filtern.
collection.data_layer_namesleerBis 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.

FeldTypHinweise
idUUID v7Stabiler Identifier.
organization_idUUID v7Die besitzende Organisation.
namestringAnzeigename.
environmentenumprod oder dev. Default prod.
platformobject · nullableShopsystem oder CMS: key, source, detected_via, detected_at.
shop.activebool · nullableOb das ein Shop ist. null folgt der Plattform.
spaboolSingle-Page-App. Von Hand gesetzt, Default false.
collection.*bool · enumDie Preset-Flags: Sessions, Fetch/XHR, Fehlermessages und -Frames, Query-Keys und -Werte, session_consent, template_url_ids. Siehe Presets.
collection.sampling_ratenumberAnteil der gespeicherten Besucher, 0.01 bis 1.0, Default 1.0. Siehe Traffic-Sampling.
collection.sampling_modeenummanual (Default) oder automatic. Siehe Automatisches Sampling.
collection.sampling_rate_changed_attimestamp · nullableWann fastmon die Rate zuletzt verschoben hat.
collection.ga4_ecommerce, collection.data_layer*bool · list · enumDie dataLayer-Brücke. Siehe Events.
collection.fetch_xhr_sampling_ratenumberAnteil der Besucher mit gespeicherten Fetch/XHR-Aufrufen. Siehe Fetch- und XHR-Sampling.
page_type.body_classboolPage-Type aus der <body>-Klasse lesen. Default aus.
page_type.ruleslist · nullableDeine eigenen Body-Klassen, auf Page-Types abgebildet. Wird vor der Ruleset gelesen.
page_type.url_ruleslist · nullableDeine eigenen URL-Muster, auf Page-Types abgebildet. Wird nach deinen Body-Klassen gelesen.
shop.checkout.trackingboolCheckout-Funnel an (true, der Default) oder aus. Siehe Checkout-Funnel.
shop.checkout.*_pathslist · nullableURL-Muster pro Funnel-Stufe. null erbt die eingebauten Muster; eine Liste ersetzt sie.
collector.modeenumdefault / relative / custom.
collector.endpointstring · nullableEigener Collector-Host (nur bei custom).
collector.proxy_secretobjectDas gemeinsame Secret für einen First-Party-Proxy.
script.source_hashstringGlobal eindeutig, steht in der Script-URL.
script.collector_hashstringGlobal eindeutig, steht in der Ingest-URL.
script.source_versionstringGepinnte Beacon-Template-Version (v1).
site_defaults.*int · bool · enumdata_retention_days, store_stitch, count_visitors_by. Gilt für alle Sites.
site_policyenumopen / auto / strict. Umgang mit unbekannten Hostnamen.
is_activeboolBei 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.

Auf dieser Seite