TrackingRouter · kostenpflichtig

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

Was es für dich tut
01

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.

02

Serverseitige Zuverlässigkeit

Keine client-seitige Tracker-Duplizierung: weniger Requests, gemeinsame Besucher-Identität, immun gegen Adblocker-Eigenheiten.

03

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

Preise
Monatlich
49 € pro Monat
Jetzt kaufen
Jährlich Beliebt
490 € pro Jahr

spare 17 % ggü. monatlich

Jetzt kaufen
2 Jahre
784 € für 2 Jahre

spare 33 % ggü. monatlich

Jetzt kaufen
Keine Zahlungsdaten nötig — die Testlizenz landet direkt in deinem Konto.
Häufige Fragen

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.

Installation über den Feinwerk-Connector
  1. 01 Lade den Feinwerk-Connector herunter und entpacke ihn in das plugins/-Verzeichnis deines Matomo, dann aktiviere ihn.
  2. 02 Öffne die Einstellungen und trage Marketplace-URL und Instanz-Token ein.
  3. 03 Öffne den Feinwerk Plugins-Screen, finde TrackingRouter und klicke auf „Install“.
Connector-Plugin herunterladen
Für Technik-Interessierte

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=1 is Matomo's mandatory primary as today.
  • idsites=3,5 is 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_sites averages > 2.
  • Multi-node: allowlist changes propagate within tracker_cache_file_ttl (default 300s) per node. Use shared APCu/Redis backend or ./console core:clear-caches per 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_domain flag 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.php tracker endpoint must not be CDN-cached. Fan-out happens server-side.
  • Internal API: Tracker.newHandler is @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 StalePrimaryGuard isolates race-deleted-site failures.

Limits

  • MAX_EXTRAS = 10 per request (parser hard cap and allowlist save validator).
  • Single-hop fan-out only (idsites is stripped from each clone).