Attributionsmodelle
Jeder Besucher in Zenovay trägt zwei Attributionsdaten: seinen First-Touch-Kanal (wie er Sie zum ersten Mal fand) und seinen Last-Touch-Kanal (Kanal der konvertierenden bzw. letzten Sitzung). Beide werden unabhängig gespeichert — First-Touch wird bei der allerersten Beobachtung gesetzt und nie überschrieben.
Warum zwei Snapshots
Marketing-Attribution ist eine Frage des Credits. Wenn ein Besucher zuerst über organische Google-Suche kommt, drei Wochen später per LinkedIn-Anzeige zurückkehrt und schließlich direkt konvertiert:
- Last-Touch schreibt direct zu. (Unterschätzt Marketing oft.)
- First-Touch schreibt organic search zu. (Überschätzt SEO oft.)
- Linear / Position-Based / Time-Decay Modelle teilen den Credit auf jeden Kanal der Besucher-Journey auf — auswählbar im Revenue-Tab (siehe unten).
Zenovay startet einfach: First- und Last-Touch werden gespeichert, das Dashboard erlaubt das Umschalten.
Was First-Touch erfasst
Bei der allerersten Beobachtung füllt Zenovay diese Spalten der Besucherzeile:
| Spalte | Bedeutung |
|---|---|
first_touch_channel | Kanal-Bucket — organic, direct, referral, social, email, paid, ai |
first_touch_utm_source | UTM-Quelle aus der URL, falls vorhanden |
first_touch_utm_medium | UTM-Medium |
first_touch_utm_campaign | UTM-Kampagne |
first_touch_utm_content | UTM-Content |
first_touch_utm_term | UTM-Begriff |
first_touch_referrer | Document-Referrer-URL |
first_touch_landing_page | Erste besuchte Seiten-URL |
first_touch_at | Zeitstempel der ersten Beobachtung |
Diese werden bei späteren Sitzungen nie überschrieben. Die nicht-präfixierten Spalten (channel, utm_*, referrer, landing_page) werden bei jeder Sitzung aktualisiert und stellen Last-Touch dar.
Besucher, die vor dem 30.04.2026 beobachtet wurden, haben NULL als First-Touch-Werte. Die Historie wurde nicht nachgefüllt.
Kanal-Klassifizierung
Kanäle werden in dieser Priorität klassifiziert:
- Click-IDs (
gclid,fbclid,ttclid,msclkid) — immer paid. utm_medium—cpc/ppc/paid/display/banner/cpm→ paid;email→ email;social→ social;referral/affiliate→ referral;organic→ organic.utm_sourcewird gegen kuratierte Listen geprüft.- Referrer-Hostname — Suchmaschinen → organic; Social-Plattformen → social; Webmail-Clients → email; sonst → referral.
- In-App-Browser (Discord, Facebook, Instagram, …) — social.
- Kein Referrer + kein UTM → direct.
Ein Besucher, den Zenovays AI-Heuristik als Bot kennzeichnet, erhält Channel ai unabhängig vom UTM.
E-Mail-Traffic — der Empty-Referrer-Fix
E-Mail-Links haben in der Regel keinen Referrer-Header. Ohne UTMs wurde dieser Traffic früher als direct fehlklassifiziert.
Zenovay fängt das in zwei Wegen ab:
utm_medium=email→ Channel ist email, unabhängig vom Referrer.- Kein Referrer +
utm_sourcepassend zu bekanntem ESP (Mailchimp, Klaviyo, HubSpot, ActiveCampaign, Brevo, ConvertKit, MailerLite, Beehiiv, Customer.io, GetResponse, Omnisend, Substack, Drip, Intercom, Postscript, Attentive, Iterable, Braze, Resend, Loops, Marketo, Pardot u. a.) → Channel ist email.
Die vollständige ESP-Liste lebt in api-zenovay/src/constants/domains.ts (EMAIL_UTM_SOURCES). Damit Ihre E-Mail-Kampagnen korrekt klassifizieren:
<!-- Empfohlene UTM-Konvention für alle E-Mail-Links -->
<a href="https://your-site.com/?utm_source=mailchimp&utm_medium=email&utm_campaign=launch">
Mehr lesen
</a>
Entweder utm_medium=email oder ein erkannter utm_source reicht — Sie brauchen nicht beides.
Attribution im Dashboard lesen
Sources-Tab und Besucherdetail-Karte erlauben jetzt direkt im UI zwischen First-Touch und Last-Touch zu wechseln — kein direkter Datenbankzugriff mehr nötig.
Sources-Tab
Die Sources-Karte im Analytics-Dashboard hat einen First touch | Last touch-Umschalter im Header. Die Auswahl wird in der URL gespeichert (?attribution=first oder ?attribution=last) und überdauert Reload sowie Vor/Zurück-Navigation. Standardwert ist Last-Touch (entspricht dem bisherigen Verhalten).
Die Karte hat vier Top-Level-Ansichten:
| Tab | Standard-Attribution | Was angezeigt wird |
|---|---|---|
| Channel | Toggle-bewusst | Besucher in 9 Buckets: Direct, Organic Search, Organic Social, Referral, Paid Search, Paid Social, Email, Affiliate, Display |
| Referrer | Toggle-bewusst | Top-Verweisdomains mit Favicons; In-App-Browser (ChatGPT, Snapchat etc.) per utm_source-Fallback klassifiziert |
| UTMs | Toggle-bewusst | Fünf Sub-Tabs: Source, Medium, Campaign, Content, Term. Ein (none)-Bucket zählt Besucher ohne diese Dimension |
| Keyword | Immer Last-Touch | Aus deiner Google-Search-Console-Verbindung; First-Touch-Toggle gilt nicht |
Beim Umschalten auf First touch wechseln Channel-/Referrer-/UTM-Ansichten zu den zuerst beobachteten Werten des Besuchers. Importierte Analytics (Plausible-CSV-Importe) sind nur Last-Touch — diese Zeilen werden in der First-Touch-Ansicht übersprungen, um das Modell sauber zu halten.
Öffentliche Dashboards zeigen immer Last-Touch-Attribution. Der Umschalter ist in V1 Owner-only; ein Server-seitiger Default pro Share folgt.
Besucherdetail-Karte
Beim Klick auf ein Besucherprofil zeigt die Sidebar ein kompaktes Attribution-Panel: First-Touch (channel + utm_source + Landing-Page + First-Seen-Datum) links, Last-Touch (channel + utm_source + Referrer + Landing-Page) rechts. Das Panel blendet sich für Pre-FND-B-Besucher (≈2 % der Historie) aus, damit keine Reihe von Bindestrichen erscheint.
Revenue-Tab
Die Attribution-Karte im Revenue-Tab hat einen Selektor mit fünf Modellen — Last-Touch (Standard), First-Touch, Linear, Position-Based und Time-Decay. Die Auswahl wird in der URL gespeichert (?model=), sodass Reload sowie Vor/Zurück-Navigation das gewählte Modell beibehalten. Standard ist Last-Touch.
Die fünf Attributionsmodelle
Jedes Modell beantwortet die Frage „Welcher Kanal erhält den Credit für diese Conversion?" auf andere Weise:
| Modell | Was es zuschreibt | Wann verwenden |
|---|---|---|
| Last-Touch | 100 % dem letzten Kanal vor der Conversion | Sie wollen wissen, was Abschlüsse erzielt |
| First-Touch | 100 % dem Kanal, der den Besucher zuerst brachte | Sie wollen wissen, was Entdeckung antreibt |
| Linear | Gleichmäßig auf jeden Kanal der Journey aufgeteilt | Sie wollen eine ausgewogene, neutrale Sicht |
| Position-Based | 40 % erster, 40 % letzter, 20 % auf die Mitte verteilt | Sie wollen Entdeckung UND Abschluss würdigen |
| Time-Decay | Mehr Credit für Kanäle näher an der Conversion | Sie haben kürzere Verkaufszyklen |
Time-Decay verwendet eine 7-Tage-Halbwertszeit: Ein Touch 7 Tage vor der Conversion erhält das halbe Gewicht eines Touches zum Conversion-Zeitpunkt, und die Gewichtung halbiert sich für jede weiteren 7 Tage erneut.
Hinweis zur Datenhistorie
Wenn die meisten Conversions in einem Zeitraum aus einer einzigen Sitzung stammen, sehen die Multi-Touch-Modelle (Linear, Position-Based, Time-Decay) sehr ähnlich wie Last-Touch aus — es gibt nur einen Kanal, auf den sich der Credit verteilen lässt. Das ist erwartetes Verhalten, kein Fehler, und löst sich von selbst, sobald mehr Multi-Session-Journeys auflaufen.
Wie jedes Modell Ihre Daten liest
Die fünf Modelle greifen nicht alle auf dieselbe Quelle zurück:
- Last-Touch und First-Touch verwenden jeweils einen einzigen Snapshot. Last-Touch schreibt dem Kanal der konvertierenden Sitzung den Credit zu; First-Touch schreibt ihn dem Kanal der allerersten aufgezeichneten Sitzung des Besuchers zu. Eine Journey-Rekonstruktion ist nicht erforderlich.
- Linear, Position-Based und Time-Decay rekonstruieren die vollständige Multi-Session-Journey des Besuchers, indem sie jeden aufgezeichneten Besuch vor der Conversion berücksichtigen und den Credit auf alle gefundenen Sitzungen verteilen.
Eine Folge dieses Unterschieds: Bei denselben Rohdaten können die Modelle vollständig übereinstimmen oder deutlich abweichen — je nachdem, wie viele unterschiedliche Sitzungen und Kanäle ein Besucher vor der Conversion durchlaufen hat. Ein Besucher mit einer einzigen Sitzung liefert bei allen Modellen dasselbe Ergebnis. Ein Besucher mit fünf Sitzungen über drei Kanäle erzeugt bei jedem Modell messbar unterschiedliche Ausgaben.
Warum Ihre Modelle fast identisch aussehen können
Wenn Sie zwischen Attributionsmodellen wechseln und sich die Kanalaufschlüsselung kaum verändert, verhält sich die Datenlage korrekt — das ist kein Darstellungsproblem.
Wenn die meisten Conversions von Besuchern stammen, die nur eine einzige Sitzung hatten (oder die vor der Conversion immer denselben Kanal nutzten), vergibt jedes Modell mathematisch 100 % des Credits an diesen Kanal. Last-Touch, First-Touch, Linear, Position-Based und Time-Decay kommen zum gleichen Ergebnis, weil es nichts anders zu verteilen gibt. Wenn Ihr Publikum wächst und mehr Besucher mehrere Kanäle über mehrere Sitzungen hinweg berühren, werden die Modelle stärker voneinander abweichen und der Vergleich wird aufschlussreicher.
Einige weitere Punkte, die beim Modellvergleich zu beachten sind:
- AI-Traffic wird unter jedem Attributionsmodell immer dem dedizierten ai-Kanal zugeschrieben. Die KI-Erkennung hat Vorrang vor dem Touch-Pfad, sodass die AI-Zeile beim Modellwechsel konstant bleibt.
- Eine Conversion ohne Geldwert zählt trotzdem für die Conversion-Attribution. Umsatzgewichtete Vergleiche erfordern, dass dem Ziel ein Geldwert zugeordnet ist — andernfalls erscheinen diese Conversions in den Zählungen, tragen jedoch nichts zu den von jedem Modell ausgewiesenen Umsatzsummen bei.
Leere UTM-Dimensionen
Die meisten Besucher tragen nicht alle UTM-Parameter. In aktuellen Zenovay-Daten ist utm_term ≈100 % null und utm_content ≈99,99 % null. Der Sources-Tab zeigt für diese Ansichten einen Empty-State mit kopierbarem Hinweis (?utm_term=...) statt eines einzelnen 100-%-Balkens (none).