Ein Tracking-Hit. Jede Matomo-Site, die ihn braucht.
Verteile einen einzelnen Request serverseitig auf mehrere Site-IDs — ohne doppelte Tracker, Race Conditions oder Adblocker-Anfälligkeit.
Neueste v2.0.2
Ein Tracker statt vieler
Tracke Seitenbereiche mit einem einzigen Request und dem additiven idsites-Parameter in verschiedene Matomo-Sites — der Server übernimmt das Fan-out.
Serverseitige Zuverlässigkeit
Keine client-seitige Tracker-Duplizierung: weniger Requests, gemeinsame Besucher-Identität, immun gegen Adblocker-Eigenheiten.
Voll abwärtskompatibel
Requests ohne idsites verhalten sich exakt wie vorher. Führe es Seite für Seite ein, in deinem Tempo.
Zum Vergrößern klicken
Nur dort, wo du Fan-out willst: häng idsites=3,5 an diese Requests. Alles andere funktioniert unverändert weiter.
Ein DSGVO-Schalter auf der Primär-Site erklärt, dass deren Besucher-Consent alle freigegebenen Sites abdeckt — explizit und nachvollziehbar.
Das Fan-out passiert serverseitig; mit QueuedTracking laufen die Klone unabhängig über die Queue — die Request-Latenz bleibt flach.
-
01
Lade den Feinwerk-Connector herunter und entpacke ihn in das
plugins/-Verzeichnis deines Matomo, dann aktiviere ihn. - 02 Öffne die Einstellungen und trage Marketplace-URL und Instanz-Token ein.
- 03 Öffne den Feinwerk Plugins-Screen, finde TrackingRouter und klicke auf „Install“.
Matomo TrackingRouter
Server-side fan-out of a single tracking hit to multiple Matomo Site IDs.
Use Case
When a single web page has sections that should be tracked in different Matomo profiles (e.g., section A → site 1, section B → site 2, section C → sites 1 + 3), the conventional approach uses multiple client-side Matomo trackers. That approach has request overhead, race conditions, AdBlocker fragility, and cookie-domain conflicts.
This plugin lets the client send one tracker request with an additive parameter idsites=3,5. The server fans it out into one normal request for the primary idsite and one clone per allowed extra site, all sharing the same visitor identity.
Client Wire Format
GET /matomo.php?idsite=1&idsites=3,5&rec=1&_id=<visitorhex>&action_name=…&url=…
idsite=1is Matomo's mandatory primary as today.idsites=3,5is the optional additive extras list. Comma-separated positive integers.- Without
idsites, the request is processed exactly as before — full backward compatibility.
Configuration
In Administration → Websites → Manage → Edit Site → Tracking Router:
| Setting | Default | Purpose |
|---|---|---|
| Allowed extra sites | empty | Multi-select of sites this primary may extend to. Editor must have Admin access to each. |
| Force visitor id across fan-out | on | Derive a cid from primary so all clones share idvisitor |
| Extras share consent domain | off | GDPR gate on the primary — when on, the primary declares that its visitors' consent applies to all sites in its allowlist (single-owner / shared data controller case). When off (default), no clones fire at all. Set once on the primary; receiving sites do not need their own copy of this flag. |
| Forward Ecommerce / Manual Goals / Pings / Custom Dimensions | off | Per-category opt-in to forwarding domain-specific params |
Operational Notes
- Performance: p99 ≈ baseline × (1 + N_extras). With QueuedTracking installed, each clone queues independently. Without queueing, install QueuedTracking once
allowed_extra_sitesaverages > 2. - Multi-node: allowlist changes propagate within
tracker_cache_file_ttl(default 300s) per node. Use shared APCu/Redis backend or./console core:clear-cachesper node. - GDPR: the plugin writes log rows in each allowed site. Receiving sites should share the same data-controller and consent domain. The
extras_share_consent_domainflag on the primary is the explicit operator declaration that this is the case. The default is off — set it on the primary when you are ready for fan-out to start. - CDN: the
matomo.phptracker endpoint must not be CDN-cached. Fan-out happens server-side. - Internal API:
Tracker.newHandleris@ignore-marked in Matomo 5.x. Plugin compatibility is reverified on each Matomo major upgrade.
Composition
- BulkTracking: when a Bulk POST arrives, BulkTracking expands the JSON payload first; this plugin then fans out each inner Request by its own
idsites. - QueuedTracking: clones go into the queue independently. The consumer-side
StalePrimaryGuardisolates race-deleted-site failures.
Limits
MAX_EXTRAS = 10per request (parser hard cap and allowlist save validator).- Single-hop fan-out only (
idsitesis stripped from each clone).
-
v2.0.2 Sep 30, 2026
-
v2.0.1 Sep 26, 2026
-
v2.0.0 Sep 26, 2026
-
v1.1.0 Jul 1, 2026
-
v1.0.13 Jul 1, 2026
-
v1.0.10 Jun 30, 2026
-
v1.0.5 Jun 30, 2026
-
v1.0.4 Jun 30, 2026