Wohin das Geld ging und wer dafür kam
Cloud-Dienste für Attribution rechnen nach Ereignisvolumen ab und verlangen, das gesamte Verhalten der eigenen Kunden in eine fremde Datenbank zu schieben. Allzweck-Dashboards zeichnen alles, aber das Attributionsmodell baut man dort jedes Mal von Hand.
Grain kennt Werbung und Menschen gleichzeitig. Ausgaben aus den Werbekonten, Produktereignisse und die Attribution dazwischen — auf einem Bildschirm, den man sich aus Panels nach eigener Gewohnheit zusammenstellt. Zwölf Millionen Ereignisse antworten in weniger als einer Zehntelsekunde, denn darunter liegt ein spaltenorientiertes DuckDB und kein Zeilenspeicher.
Was drinsteckt
Attribution in drei Modellen
Erster Kontakt, letzter Kontakt, linear — mit einem Fenster von 30 Tagen. Berechnet mit Fensterfunktionen zur Laufzeit: ein Modellwechsel rechnet den ganzen Zeitraum neu.
Ein Arbeitstisch aus Panels
Panels lassen sich verschieben, in der Größe ändern und werden gespeichert. Nach dem Ändern rendert der Server das Panel neu, damit das Diagramm die echte Breite bekommt.
Jede Zahl vergleicht
Jede Kennzahl trägt ihre Veränderung zur Vorperiode durch Vorzeichen, Pfeil und Farbe. Bei Ausgaben und CAC ist ein Anstieg schlecht, beim Umsatz gut — der Bildschirm kennt den Unterschied.
Vom Kanal bis zur Person
Kanal, Kampagne, Liste von Menschen, der Weg einer Person: jeder Werbekontakt und jedes Ereignis auf einer Zeitleiste.
Eigene Diagramme
Linien, Balken, Trichter und die Kohorten-Heatmap entstehen als SVG auf dem Server — ohne Diagrammbibliothek und ohne Frontend-Framework.
Zwölf Millionen Zeilen
Eingebettetes DuckDB: Aggregate in 26–109 ms, das Demo-Lager in fünf Sekunden direkt in SQL erzeugt. CSV- und Parquet-Import ist ein einziges INSERT ... SELECT.