Predictive Automation mit Verhaltenssegmenten

Kurz gesagt

Niveau: Fortgeschritten

Reaktive Automation wartet auf den Kauf. Predictive Automation handelt, solange Menschen noch überlegen.

  • Schreib jedes Verhaltenssegment als geplante Abfrage und zähl, wie oft es zu einem Kauf führt, gemessen an der Grundrate.
  • Ersetz Punktescores durch logistische Regression, die eine echte Wahrscheinlichkeit liefert, und beurteile sie an einem Monat, den sie nie gesehen hat.
  • Schick Nachrichten an die Menschen, bei denen sie etwas ändern, nicht an die wahrscheinlichsten Käufer, und behalte eine zufällige Kontrollgruppe als Beweis.
  • Profiling ist in Grenzen erlaubt: Widersprüche umsetzen, Scores von Preisen fernhalten und für Tracking zu Werbezwecken eine Einwilligung einholen.

Die meiste Automation wartet, bis sich jemand anmeldet, einen Warenkorb stehen lässt oder kauft, und verpasst alle, die sich noch entscheiden. Am Beispiel eines erfundenen Fahrradshops in Köln zeige ich, wie du diese Menschen mit Verhaltenssegmenten findest, sie mit einer prüfbaren Wahrscheinlichkeit bewertest, entscheidest, wem eine Nachricht wirklich hilft, und dabei auf der richtigen Seite des deutschen Datenschutzrechts bleibst.

Automation, die auf den Kauf wartet, kommt zu spät

Die meiste Marketing Automation denkt in der Vergangenheitsform. Jemand hat sich angemeldet, also bekommt er eine Willkommensmail. Jemand hat einen Warenkorb stehen lassen, also kommt eine Erinnerung. Jemand hat gekauft, also gibt es ein Dankeschön und die Bitte um eine Bewertung. Das ist alles nützlich, und alles wartet darauf, dass die Kundin zuerst etwas tut.

Wen das nie erreicht, sind die Leute, die noch überlegen. Sie haben sich drei Räder angesehen, die Größentabelle zweimal gelesen, sind am Donnerstagabend wiedergekommen und haben noch nichts in den Warenkorb gelegt. Für eine reaktive Automation gibt es sie nicht. Predictive Automation geht davon aus, dass das, was Menschen vor dem Kauf tun, etwas darüber verrät, ob sie kaufen werden, und dass du darauf reagieren kannst, solange sie sich noch entscheiden.

Eine Glaskugel brauchst du dafür nicht. Du brauchst ein Segment, das als Regel aufgeschrieben ist, eine Wahrscheinlichkeit, einen Test, der zeigt, dass diese Wahrscheinlichkeit ehrlich ist, und eine Entscheidung darüber, wem eine Nachricht wirklich hilft. Danach kommen die fertigen Lösungen der Tools und das deutsche Recht zum Profiling.

Durch den ganzen Artikel begleitet mich ein erfundenes Unternehmen. Falkenrad ist ein Onlineshop für Fahrräder in Köln. Maja führt ihn und verkauft Räder, Teile und Ausrüstung unter falkenrad.example. In vier typischen Wochen hat der Shop 40.000 Besucher und 600 Bestellungen, also kaufen 1,5 % der Besucher. Niemand davon ist echt, und jede Zahl ist ausgedacht, damit ich jeden Schritt zeigen kann.

Rechenbeispiel: die Käufer, mit denen niemand spricht

Majas Automation verschickt eine Willkommensmail, eine Warenkorberinnerung und nach der Lieferung die Bitte um eine Bewertung. Letzten Monat haben sich 2.400 Besucher drei oder mehr Räder angesehen, ohne etwas in den Warenkorb zu legen. Keiner von ihnen hat eine Nachricht bekommen, weil keiner eines der drei Dinge getan hat, auf die die Automation hört. 168 von ihnen haben trotzdem innerhalb von zwei Wochen gekauft. Der Rest ist verschwunden, manche davon zu einem anderen Shop. Um genau diese Lücke geht es hier.

Ein Verhaltenssegment ist eine Regel darüber, was Menschen getan haben

Ein Segment ist eine Gruppe von Menschen, die du anders behandelst als die übrigen. Ein Verhaltenssegment zieht die Grenze danach, was jemand getan hat, nicht danach, wer jemand ist: angesehene Seiten, Besuche, angefangene Warenkörbe, Bestellungen und wie lange das jeweils her ist. Für diese Aufgabe ziehe ich Verhalten der Demografie vor, weil es näher an der Entscheidung liegt. Dass jemand 45 Jahre alt ist und in Köln Lindenthal wohnt, sagt dir kaum, ob er diese Woche ein Rad kauft. Drei Besuche beim selben Gravelbike sagen dir eine ganze Menge. Warum ich so denke, erkläre ich ausführlicher in Segmentierung: Strategie vor Algorithmen.

Die Forschung stützt dieses Gefühl. Fader, Hardie und Lee haben gezeigt, dass ein Modell, das nur Aktualität, Häufigkeit und Geldwert der Käufe kennt, den künftigen Wert jedes einzelnen Kunden hochrechnen kann.1 Meine Erfahrung ist dieselbe: Was jemand getan hat, wie oft und wie kürzlich, trägt den größten Teil des Signals.

In der Praxis ist ein Verhaltenssegment eine Abfrage. Sie läuft nach Zeitplan im Warehouse, schreibt jeden Morgen eine Tabelle neu, und aus dieser Tabelle lesen das E Mail Tool und die Werbeplattformen. Wie dieser Kreislauf funktioniert und wie die Erlaubnis in jeder Abfrage geprüft wird, zeige ich in Data Warehousing für smarte Marketing Automation. Hier geht es nur um das Segment selbst.

Rechenbeispiel: die Vergleicher bei Falkenrad

Majas Daten liegen in BigQuery, mit einer Zeile pro Besuch auf der Website: der Besucher, das Datum, wie viele Produktseiten er angesehen hat und ob er etwas in den Warenkorb gelegt hat. Ihr erstes Segment heißt "Vergleicher": Besucher, die in den letzten sieben Tagen drei oder mehr Produktseiten angesehen und nichts in den Warenkorb gelegt haben.

SELECT visitor_id,
       SUM(product_views) AS product_views_7d,
       COUNT(*)           AS sessions_7d
FROM analytics.sessions
WHERE session_date >= DATE_SUB(CURRENT_DATE('Europe/Berlin'), INTERVAL 7 DAY)
GROUP BY visitor_id
HAVING SUM(product_views) >= 3
   AND COUNTIF(added_to_basket) = 0;

Die Zeile mit WHERE behält die Besuche der letzten sieben Tage. GROUP BY fasst jeden Besucher zu einer Zeile zusammen. Die Zeilen mit HAVING behalten die Besucher, deren sieben Tage zusammen auf drei oder mehr Produktansichten kommen und auf keinen einzigen Warenkorb. Am Montagmorgen liefert die Abfrage 2.400 Besucher. Raffiniert ist das nicht, und das muss es auch nicht sein. Es ist eine genaue Beschreibung eines Verhaltens, einmal aufgeschrieben und jeden Tag geprüft.

Die erste Vorhersage ist eine einfache Zählung

Vor jedem Modell steht die nützlichste Zahl überhaupt: Welcher Anteil der Menschen in diesem Segment kauft am Ende? Das ist eine bedingte Wahrscheinlichkeit, die Chance, dass etwas eintritt, wenn etwas anderes schon passiert ist.

P(buy∣segment)=P(buy∩segment)P(segment)P(\text{buy} \mid \text{segment}) = \frac{P(\text{buy} \cap \text{segment})}{P(\text{segment})}

Dabei ist P(buy∣segment)P(\text{buy} \mid \text{segment}) die Wahrscheinlichkeit, dass jemand kauft, wenn er im Segment ist, P(buy∩segment)P(\text{buy} \cap \text{segment}) der Anteil aller Besucher, die im Segment sind und auch kaufen, und P(segment)P(\text{segment}) der Anteil aller Besucher, die im Segment sind. Den senkrechten Strich liest du als "unter der Bedingung, dass". Bedingte Wahrscheinlichkeiten erkläre ich von Grund auf in Grundlagen: Wahrscheinlichkeit.

Die Zahl bedeutet erst etwas neben der Grundrate, dem Anteil aller Besucher, die kaufen. Ein Segment, in dem 3 % kaufen, klingt schwach, bis du erfährst, dass bei allen anderen nur 0,5 % kaufen.

Rechenbeispiel: lohnt es sich, mit den Vergleichern zu sprechen?

In vier Wochen hatte Falkenrad 40.000 Besucher. 2.400 davon waren Vergleicher, und 168 davon haben innerhalb von 14 Tagen gekauft. Also:

P(buy∣comparer)=168/40.0002.400/40.000=0,00420,06=0,07P(\text{buy} \mid \text{comparer}) = \frac{168 / 40.000}{2.400 / 40.000} = \frac{0{,}0042}{0{,}06} = 0{,}07

Dabei ist 168/40.000=0,0042168 / 40.000 = 0{,}0042 der Anteil aller Besucher, die Vergleicher waren und gekauft haben, und 2.400/40.000=0,062.400 / 40.000 = 0{,}06 der Anteil, der überhaupt Vergleicher war. Die 40.000 kürzt sich heraus, es bleibt also einfach 168 von 2.400, und das sind 7 %.

Die übrigen 37.600 Besucher haben die restlichen 432 Bestellungen gebracht, das sind 1,15 %. Die Grundrate über alle liegt bei 600 von 40.000, also 1,5 %. Vergleicher kaufen mehr als viermal so häufig wie ein durchschnittlicher Besucher. Diese eine Zählung rechtfertigt schon eine Nachricht. Und sie legt die Latte, die jedes spätere Modell überspringen muss. Grundlagen: Indexwerte und Grundraten zeigt, warum eine Rate ohne ihre Basis nichts aussagt.

Punkte sind keine Wahrscheinlichkeiten

Die alte Fassung dieses Artikels hat Besucher mit Punkten bewertet: fünf für drei Produktansichten, zwei dafür, weiter als 75 % einer Seite gescrollt zu haben, drei für jede Herkunft außer Google, und ab sieben gab es eine Nachricht. Solche Scores habe ich selbst gebaut. Sie fühlen sich wissenschaftlich an, und sie sind es nicht.

Ein Punktescore hat keine Einheit. Acht Punkte kannst du nicht mit einer Marge multiplizieren, um zu entscheiden, ob sich ein Gutschein rechnet. Außerdem waren die Gewichte geraten und nie daran geprüft, wer tatsächlich gekauft hat.

Die übliche Lösung ist die logistische Regression, ein Modell für Ergebnisse mit Ja oder Nein, etwa "hat innerhalb von 14 Tagen gekauft". Sie gewichtet jedes Signal anhand deiner eigenen Geschichte und liefert eine echte Wahrscheinlichkeit zwischen 0 und 1.2

p=11+e−(β0+β1x1+β2x2+β3x3)p = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3)}}

Dabei ist pp die Wahrscheinlichkeit, dass der Besucher kauft, ee die Eulersche Zahl, ungefähr 2,7182{,}718, die hinter dem natürlichen Logarithmus steht, β0\beta_0 der Achsenabschnitt (der Ausgangspunkt für jemanden ganz ohne Signale), x1x_1, x2x_2 und x3x_3 sind die Signale des Besuchers, und β1\beta_1, β2\beta_2 und β3\beta_3 sind die Gewichte, die das Modell für jedes Signal aus früheren Besuchern lernt. Der Ausdruck in der Klammer sind die logarithmierten Odds, also das Chancenverhältnis auf der Logarithmusskala. Jede zusätzliche Einheit eines Signals xjx_j multipliziert die Odds eines Kaufs mit eβje^{\beta_j}.2 Die logistische Regression führe ich in Grundlagen: Regression ein, Logarithmen und ee in Grundlagen: Logarithmen.

Von Hand schätzt du das nicht. In BigQuery passt eine Anweisung CREATE MODEL mit dem Modelltyp LOGISTIC_REG eine logistische Regression an eine Tabelle früherer Besucher an, in der steht, ob sie gekauft haben.3 Das Urteilsvermögen steckt in der Wahl der Signale und im Test des Ergebnisses, nicht in der Arithmetik.

Rechenbeispiel: zwei Besucher, zwei Wahrscheinlichkeiten

Maja passt ein Modell an die Besucher aus dem September an, mit drei Signalen: x1x_1 ist die Zahl der Produktseiten, die jemand in sieben Tagen angesehen hat, x2x_2 ist 1, wenn der Besucher an einem zweiten Tag wiederkam, sonst 0, und x3x_3 ist 1, wenn er die Größentabelle geöffnet hat. Das Modell liefert β0=−5,0\beta_0 = -5{,}0, β1=0,35\beta_1 = 0{,}35, β2=0,9\beta_2 = 0{,}9 und β3=1,2\beta_3 = 1{,}2.

Besucherin A hat sich vier Räder angesehen, ist am Donnerstag wiedergekommen und hat die Größentabelle geöffnet:

zA=−5,0+0,35×4+0,9×1+1,2×1=−1,5,pA=11+e1,5=11+4,48=0,182z_A = -5{,}0 + 0{,}35 \times 4 + 0{,}9 \times 1 + 1{,}2 \times 1 = -1{,}5, \qquad p_A = \frac{1}{1 + e^{1{,}5}} = \frac{1}{1 + 4{,}48} = 0{,}182

Dabei sind zAz_A die logarithmierten Odds von Besucherin A, also die Klammer aus der Formel, 44, 11 und 11 die Werte von x1x_1, x2x_2 und x3x_3, e1,5=4,48e^{1{,}5} = 4{,}48, und pAp_A ist die Wahrscheinlichkeit. Besucherin A kauft also mit einer Chance von 18,2 % in den nächsten zwei Wochen.

Besucher B hat sich ein Rad einmal angesehen und ist gegangen:

zB=−5,0+0,35×1=−4,65,pB=11+e4,65=11+104,6=0,009z_B = -5{,}0 + 0{,}35 \times 1 = -4{,}65, \qquad p_B = \frac{1}{1 + e^{4{,}65}} = \frac{1}{1 + 104{,}6} = 0{,}009

Dabei sind zBz_B die logarithmierten Odds von Besucher B, 11 ist die einzelne Produktansicht x1x_1, beide anderen Signale sind 00, und e4,65=104,6e^{4{,}65} = 104{,}6. Das ergibt eine Chance von 0,9 %, unter der Grundrate des Shops von 1,5 %. Jetzt haben die Zahlen eine Einheit. Besucherin A kauft mit 20 mal so hoher Wahrscheinlichkeit wie Besucher B, und eine Wahrscheinlichkeit kann direkt in die Geldentscheidung weiter unten wandern. So rechnet Majas nächtlicher Job dasselbe:

import math

WEIGHTS = {"intercept": -5.0, "product_views": 0.35,
           "came_back": 0.9, "size_guide": 1.2}

def purchase_probability(visitor):
    log_odds = (WEIGHTS["intercept"]
                + WEIGHTS["product_views"] * visitor["product_views"]
                + WEIGHTS["came_back"] * visitor["came_back"]
                + WEIGHTS["size_guide"] * visitor["size_guide"])
    return 1 / (1 + math.exp(-log_odds))

purchase_probability({"product_views": 4, "came_back": 1, "size_guide": 1})

Teste den Score an Menschen, die er nie gesehen hat

Auf den Daten, aus denen es gelernt hat, sieht ein Modell immer gut aus. Es hat die Antworten praktisch schon gesehen. Entscheidend ist, wie gut es bei Menschen abschneidet, die es nie getroffen hat. In der Statistik heißt das der Testfehler, im Gegensatz zum Trainingsfehler.4 Deshalb passe ich ein Modell immer an einen Zeitraum an und beurteile es am nächsten.

Der Test, den ich am häufigsten nutze, ist eine Lift Tabelle. Du sortierst alle Menschen im neuen Zeitraum nach ihrer vorhergesagten Wahrscheinlichkeit, schneidest die sortierte Liste in zehn gleich große Gruppen, die Dezile, und zählst die Käufer in jeder. Ein guter Score stapelt die Käufer in den oberen Dezilen.

liftk=bk/nkB/N\text{lift}_k = \frac{b_k / n_k}{B / N}

Dabei ist liftk\text{lift}_k der Lift des Dezils kk, bkb_k die Zahl der Käufer in diesem Dezil, nkn_k die Zahl der Besucher darin, BB die Gesamtzahl der Käufer und NN die Gesamtzahl der Besucher. Ein Lift von 1 heißt, das Dezil kauft so häufig wie der Durchschnitt, ein Lift von 4 heißt viermal so häufig. Es ist das Verhältnis zweier Raten, erklärt in Grundlagen: Verhältnisse und Raten, gemessen an einer Grundrate wie in Grundlagen: Indexwerte und Grundraten. Ausführlicher über Dezil Tabellen und Gains Charts schreibe ich in Logistische Regression, Lift Charts und Warenkorbanalyse.

Rechenbeispiel: die Lift Tabelle für Oktober

Majas Modell wurde an den September angepasst. Sie bewertet damit die 40.000 Besucher aus dem Oktober, sortiert sie und schneidet sie in zehn Dezile zu je 4.000. Im Oktober gab es 600 Käufer, und so verteilen sie sich.

Käufer nach Score DezilDie 40.000 Besucher von Falkenrad im Oktober, sortiert nach vorhergesagter Kaufwahrscheinlichkeit und in zehn Gruppen zu je 4.000 geteilt. Die oberste Gruppe enthält 270 der 600 Käufer, die zweite 120, und die Zahlen fallen bis auf 6 in der untersten Gruppe.Käufer in jedem Dezil zu 4.000 Besuchern, Oktober01252503755001(höchsterScore)2345678910(niedrigsterScore)KäuferScore Dezil

Die waagrechte Achse zeigt das Dezil, links die 4.000 Besucher mit der höchsten vorhergesagten Wahrscheinlichkeit, rechts die 4.000 mit der niedrigsten. Die senkrechte Achse zeigt, wie viele von ihnen im Oktober gekauft haben. Die Erkenntnis: Das Modell wurde am September angepasst und hatte diese Menschen nie gesehen, und trotzdem landeten 270 der 600 Käufer im obersten Zehntel. Die beiden oberen Dezile enthalten 390 Käufer, also 65 % aller Käufer in 20 % der Besucher.

Der Lift des obersten Dezils:

lift1=270/4.000600/40.000=0,06750,015=4,5\text{lift}_1 = \frac{270 / 4.000}{600 / 40.000} = \frac{0{,}0675}{0{,}015} = 4{,}5

Dabei ist 270/4.000=6,75 %270 / 4.000 = 6{,}75\,\% die Kaufrate im obersten Dezil und 600/40.000=1,5 %600 / 40.000 = 1{,}5\,\% die Grundrate. Ein Lift von 4,5 liegt etwas unter den 4,7, die die schlichte Vergleicherregel geschafft hat (7 % gegenüber 1,5 %), allerdings erfasst diese Regel nur 6 % der Besucher. Das solltest du bemerken, statt es zu verstecken. Der Vorteil des Modells liegt nicht in der obersten Gruppe. Er liegt darin, dass es alle sortiert, sodass Maja entscheiden kann, wie weit sie in der Liste nach unten geht, was eine Regel mit Ja oder Nein nicht kann. Schlägt ein Modell auf neuen Daten eine einfache Zählung nicht, behalte ich die Zählung.

Ziel auf die Menschen, bei denen die Nachricht etwas ändert

Jetzt kommt der Fehler, der am meisten Geld kostet, und die alte Fassung dieses Artikels hat ihn gemacht. Es liegt nahe, das Angebot an die Menschen zu schicken, die am wahrscheinlichsten kaufen. Nur hätten viele von ihnen sowieso gekauft. Ein Gutschein für jemanden, der sein Rad schon ausgesucht hat, ist ein Rabatt auf einen Verkauf, den du schon hattest.

Es zählt nicht die Wahrscheinlichkeit eines Kaufs. Es zählt, wie stark die Nachricht diese Wahrscheinlichkeit verändert. Eva Ascarza hat das für die Kundenbindung im Journal of Marketing Research gezeigt: Mit Felddaten aus zwei Unternehmen senkte es die Abwanderung stärker, Kunden danach auszuwählen, wie stark sie auf die Maßnahme reagieren, als danach, wie hoch ihr Risiko ist.5 Vor dem ersten Kauf gilt dieselbe Logik.

Sehen kannst du diese Veränderung nur mit einer Kontrollgruppe: Du nimmst die Gruppe, teilst sie zufällig, schickst einem Teil die Nachricht, dem Rest nichts, und vergleichst. Der Wert einer Nachricht pro Person ist dann:

E[profit]=(pt−pc)×m−pt×vE[\text{profit}] = (p_t - p_c) \times m - p_t \times v

Dabei ist E[profit]E[\text{profit}] der erwartete zusätzliche Gewinn pro angeschriebener Person, ptp_t die Kaufrate in der Gruppe mit Nachricht, pcp_c die Kaufrate in der Kontrollgruppe ohne Nachricht, mm die Marge einer Bestellung und vv der Wert eines Gutscheins, den nur die Käufer einlösen. Der erste Teil ist die Marge, die die Nachricht geschaffen hat, der zweite der Gutschein, den jeder Käufer bekommt, auch wer ohne ihn gekauft hätte. Den Erwartungswert erkläre ich in Grundlagen: der Erwartungswert.

Rechenbeispiel: Vergleichsmail oder Gutschein?

Im November sind 1.500 von Majas Vergleichern erkennbare Abonnenten mit Erlaubnis für Werbung. Sie teilt sie zufällig in drei Gruppen zu je 500. Die erste bekommt nichts. Die zweite bekommt eine schlichte Mail, die die drei angesehenen Räder vergleicht, mit Rahmengrößen und Lieferterminen. Die dritte bekommt dieselbe Mail plus einen Gutschein über 25 €. Eine Bestellung eines Vergleichers bringt Falkenrad im Schnitt 150 € Marge.

Innerhalb von zwei Wochen kaufen 45 aus der Kontrollgruppe (9,0 %), 54 aus der Gruppe mit der schlichten Mail (10,8 %) und 60 aus der Gutscheingruppe (12,0 %).

Eplain=(0,108−0,090)×150−0=2,70,Evoucher=(0,120−0,090)×150−0,120×25=1,50E_{\text{plain}} = (0{,}108 - 0{,}090) \times 150 - 0 = 2{,}70, \qquad E_{\text{voucher}} = (0{,}120 - 0{,}090) \times 150 - 0{,}120 \times 25 = 1{,}50

Dabei sind EplainE_{\text{plain}} und EvoucherE_{\text{voucher}} der zusätzliche Gewinn pro Person in Euro für die schlichte Mail und die Gutscheinmail, 0,1080{,}108 und 0,1200{,}120 die beiden Kaufraten ptp_t mit Nachricht, 0,0900{,}090 die Rate pcp_c der Kontrollgruppe, 150150 die Marge mm in Euro und 2525 der Gutschein vv in Euro. Auf 500 Menschen gerechnet ist die schlichte Mail 1.350 € wert und die Gutscheinmail 750 €. Der Gutschein hat mehr Räder verkauft und weniger verdient, weil er an alle 60 Käufer ging und nur 15 davon zusätzlich waren.

Zusätzlicher Gewinn je NachrichtErwarteter zusätzlicher Gewinn pro 500 Vergleicher: 1.350 € für die schlichte Vergleichsmail und 750 € für die Mail mit einem Gutschein über 25 €, gemessen an einer Kontrollgruppe, die nichts bekam.Zusätzlicher Gewinn pro 500 Vergleicher, gegenüber der Kontrollgruppe0 €500 €1.000 €1.500 €2.000 €1.350 €Schlichte Vergleichsmail750 €Mail mit Gutschein über25 €Zusätzlicher Gewinn in €

Die waagrechte Achse zeigt die beiden Nachrichten. Die senkrechte Achse zeigt den zusätzlichen Gewinn in Euro, den jede bei 500 Menschen gebracht hat, verglichen mit der Kontrollgruppe ohne Nachricht. Die Erkenntnis: Die Nachricht, die mehr verkauft hat, ist nicht die, die mehr verdient hat.

Eine ehrliche Einschränkung. Mit 500 Menschen pro Gruppe sind diese Unterschiede noch kein Beweis. Ein Test zweier Anteile, Gutscheingruppe gegen Kontrollgruppe, ergibt ein z von ungefähr 1,5, zu wenig für die 1,96, die du für 95 % Sicherheit brauchst, und die schlichte Mail kommt auf ungefähr 0,95. Grundlagen: Hypothesentests zeigt die Rechnung, und Grundlagen: Stichprobengröße zeigt, wie viele Menschen so ein Test braucht. Maja macht deshalb die schlichte Mail zum Standard, weil sie nichts kostet, und lässt die Dreiteilung jeden Monat weiterlaufen, bis sich die Zahlen setzen. Die Kontrollgruppe ist kein einmaliges Experiment. Sie ist ein fester Teil der Automation.

Lebenszyklusgruppen bestimmen den Takt, nicht den Inhalt

Die alte Fassung dieses Artikels hat Menschen in schnelle Käufer, Schaufensterbummler und Rechercheure eingeteilt. Die Idee ist gut, und ich habe sie behalten, jetzt mit einer Definition für jede Gruppe, die eine Abfrage prüfen kann.

Schnelle Käufer kaufen innerhalb weniger Tage nach ihrem ersten Besuch. Rechercheure kommen über Wochen immer wieder, bevor sie kaufen. Schaufensterbummler sehen sich immer wieder Produktseiten an und legen nie etwas in den Warenkorb. Jede Gruppe braucht einen anderen Rhythmus. Ein schneller Käufer, der nach drei Tagen nicht gekauft hat, kauft wahrscheinlich nicht mehr, weitere Nachrichten sind also Lärm. Ein Rechercheur an Tag zehn liegt im Plan und braucht Informationen, keinen Schubs. Ein Schaufensterbummler schaut sich vielleicht einfach gern Räder an.

Die alte Abfrage für Schaufensterbummler hatte einen Fehler, aus dem man lernen kann. Sie behielt im WHERE nur Zeilen von Produktseiten und prüfte dann im HAVING, dass kein Warenkorbereignis vorkam. Warenkorbereignisse stehen aber nie in Zeilen von Produktseiten, die Prüfung war also immer wahr, und Menschen, die etwas in den Warenkorb gelegt hatten, zählten ebenfalls als Schaufensterbummler. Die Lösung ist, jedes Verhalten über alle Besuche eines Besuchers hinweg zu zählen:

SELECT visitor_id
FROM analytics.sessions
WHERE session_date >= DATE_SUB(CURRENT_DATE('Europe/Berlin'), INTERVAL 90 DAY)
GROUP BY visitor_id
HAVING COUNTIF(product_views > 0) >= 4
   AND COUNTIF(added_to_basket) = 0
   AND COUNTIF(ordered) = 0;

Wann jemand wahrscheinlich kauft oder nach dem Kauf wegbleibt, ist eine Frage des Zeitpunkts, und dafür gibt es eigene Werkzeuge, die Survival Analyse. Sie steht in Survival Analyse, Churn und Customer Lifetime Value, deshalb wiederhole ich sie hier nicht.

Rechenbeispiel: drei Rhythmen bei Falkenrad

Maja sieht sich die 5.000 Erstbestellungen des letzten Jahres an. 1.600 kamen innerhalb von zwei Tagen nach dem ersten Besuch (schnelle Käufer, 32 %), 2.100 nach drei oder mehr Besuchen über 14 Tage oder länger (Rechercheure, 42 %), und 1.300 irgendwo dazwischen. Die Abfrage für Schaufensterbummler findet über 90 Tage 3.800 Besucher, die passen, 1.100 davon sind Abonnenten.

Also legt sie drei Takte fest. Schnelle Käufer bekommen die Vergleichsmail am ersten Tag und danach nichts mehr, es sei denn, sie kommen wieder. Rechercheure bekommen die Vergleichsmail, sobald sie zum ersten Mal Vergleicher werden, und eine Woche später eine zweite Mail mit einer Anleitung zur Wahl der Rahmengröße, der Frage, die ihr Kundenservice am häufigsten hört. Schaufensterbummler bekommen nur den monatlichen Newsletter. Insgesamt weniger Mails, jede abgestimmt darauf, wo die Person gerade steht.

Fertige Vorhersagen brauchen mehr Daten, als die meisten Shops haben

Das Modell musst du nicht immer selbst bauen. Google Analytics 4 bietet Prognosemesswerte: die Kaufwahrscheinlichkeit (die Chance, dass ein Nutzer, der in den letzten 28 Tagen aktiv war, in den nächsten sieben Tagen kauft), die Abwanderungswahrscheinlichkeit (die Chance, dass ein Nutzer, der in den letzten sieben Tagen aktiv war, in den nächsten sieben Tagen nicht aktiv ist) und den prognostizierten Umsatz der nächsten 28 Tage.6 Daraus schlägt es fertige Zielgruppen vor, etwa Nutzer, die in den nächsten sieben Tagen wahrscheinlich kaufen, und die umsatzstärksten Nutzer der nächsten 28 Tage, und diese Zielgruppen werden an verknüpfte Konten wie Google Ads freigegeben.7

Der Haken ist die Schwelle. In den vorangegangenen 28 Tagen müssen an sieben Tagen mindestens 1.000 wiederkehrende Nutzer die Bedingung ausgelöst haben (also zum Beispiel gekauft), und mindestens 1.000 dürfen sie nicht ausgelöst haben. Die Qualität des Modells muss außerdem über die Zeit stabil bleiben, und für Kaufprognosen muss das Ereignis purchase mit Wert und Währung gesendet werden.6

Die Vorhersagen von Klaviyo setzen bei den Kunden an. Der prognostizierte Customer Lifetime Value und das Abwanderungsrisiko brauchen mindestens 500 Kunden mit einer Bestellung, mindestens 180 Tage Bestellhistorie mit Bestellungen in den letzten 30 Tagen und einige Kunden mit drei oder mehr Bestellungen.8 Diese Vorhersagen betreffen bestehende Kunden, nicht Besucher, die noch über ihren ersten Kauf nachdenken.

Rechenbeispiel: kommt Falkenrad dafür infrage?

Die 600 Bestellungen von Falkenrad in vier Wochen sind etwa 150 Käufer in einer typischen Woche. Google braucht 1.000 wiederkehrende Nutzer, die innerhalb eines einzigen Zeitfensters von sieben Tagen gekauft haben, Maja bräuchte also fast das Siebenfache ihres heutigen Umsatzes, bevor die Kaufwahrscheinlichkeit in GA4 erscheint. Ihr eigenes Modell, angepasst an einen Monat ihrer eigenen Daten, funktioniert schon jetzt.

Bei Klaviyo sieht es anders aus. Falkenrad hat mehr als 500 Kunden mit einer Bestellung, deutlich mehr als 180 Tage Historie, jeden Tag Bestellungen und viele Fahrerinnen und Fahrer, die drei oder mehr Mal für Teile wiederkommen. Maja kann also heute schon das Abwanderungsrisiko von Klaviyo für bestehende Kunden nutzen und ihr eigenes Modell für Besucher vor der ersten Bestellung. Zwei Werkzeuge, zwei verschiedene Fragen.

Profiling ist erlaubt, in Grenzen, die du kennen solltest

Alles oben ist Profiling im Sinne des Gesetzes. Die Datenschutz Grundverordnung (DSGVO) definiert es als jede Art der automatisierten Verarbeitung personenbezogener Daten, mit der persönliche Aspekte eines Menschen bewertet werden, insbesondere um Dinge wie persönliche Vorlieben, Interessen, Verhalten, Aufenthaltsort oder Ortswechsel zu analysieren oder vorherzusagen (Art. 4 Nr. 4).9 Eine Kaufwahrscheinlichkeit ist genau das. Für einen Shop zählen drei Regeln.

Erstens: Menschen können widersprechen. Werden Daten für Direktwerbung verarbeitet, darf die betroffene Person jederzeit widersprechen, und das gilt ausdrücklich auch für Profiling, soweit es mit dieser Werbung zusammenhängt. Nach dem Widerspruch werden die Daten für diese Zwecke nicht mehr verarbeitet (Art. 21 Abs. 2 und 3). Auf dieses Recht musst du spätestens bei der ersten Kommunikation ausdrücklich hinweisen, verständlich und getrennt von anderen Informationen (Art. 21 Abs. 4).10 Ein Widerspruch muss jemanden also aus der Bewertung nehmen, nicht nur aus dem Verteiler.

Zweitens: automatisierte Entscheidungen. Hier gilt in Deutschland die EU Fassung von Art. 22 DSGVO, unverändert. Niemand muss eine Entscheidung hinnehmen, die ausschließlich auf automatisierter Verarbeitung einschließlich Profiling beruht und ihm gegenüber rechtliche Wirkung entfaltet oder ihn in ähnlicher Weise erheblich beeinträchtigt. Ausnahmen gibt es nur, wenn die Entscheidung für einen Vertrag erforderlich ist, ein Gesetz sie erlaubt oder die Person ausdrücklich eingewilligt hat, und dann mit Schutzmaßnahmen: mindestens das Recht, das Eingreifen eines Menschen zu verlangen, den eigenen Standpunkt darzulegen und die Entscheidung anzufechten. Auf besondere Kategorien von Daten wie Gesundheitsdaten dürfen solche Entscheidungen nur unter engen Bedingungen beruhen.11 Der deutsche Gesetzgeber hat in § 37 des Bundesdatenschutzgesetzes (BDSG) nur eine zusätzliche Ausnahme für Leistungen aus Versicherungsverträgen geschaffen, für Marketing gibt es keine.12

Wie weit der Begriff "Entscheidung" reicht, hat der Europäische Gerichtshof (EuGH) am 7. Dezember 2023 im Fall SCHUFA geklärt (C 634/21). Schon das automatisierte Erstellen eines Wahrscheinlichkeitswerts ist eine Entscheidung im Sinne von Art. 22, wenn von diesem Wert maßgeblich abhängt, ob ein Dritter mit der Person einen Vertrag schließt, durchführt oder beendet.13 Ein Score ist also nicht automatisch harmlos, nur weil am Ende formal jemand anderes entscheidet. Es kommt darauf an, was an ihm hängt.

Eine Vergleichsmail ist keine erhebliche Beeinträchtigung. Die Leitlinien der Artikel 29 Datenschutzgruppe zu automatisierten Entscheidungen und Profiling (WP251rev.01), die der Europäische Datenschutzausschuss (EDSA) übernommen hat, sagen, dass gezielte Werbung auf Grundlage von Profiling in vielen typischen Fällen keine ähnlich erhebliche Wirkung hat. Sie kann es aber haben, je nachdem, wie stark das Profiling eingreift (etwa durch Tracking über verschiedene Websites und Geräte), was die Menschen erwarten und ob Schwächen der Betroffenen ausgenutzt werden. Und automatisierte Entscheidungen, die zu unterschiedlichen Preisen auf Grundlage persönlicher Daten führen, können erheblich sein, zum Beispiel wenn unerschwinglich hohe Preise jemanden praktisch von Waren oder Diensten ausschließen.1415

Drittens: die Signale selbst. Verhalten auf einer Website wird meist mit Cookies oder ähnlichem Speicher erfasst, und dafür gilt in Deutschland § 25 des Telekommunikation Digitale Dienste Datenschutz Gesetzes (TDDDG). Speichern oder Auslesen auf dem Gerät ist nur mit Einwilligung erlaubt, außer es ist für die Übertragung einer Nachricht nötig oder unbedingt erforderlich, damit du einen Dienst bereitstellen kannst, den der Nutzer ausdrücklich wünscht.16 Eine Ausnahme für Statistik, wie es sie inzwischen in Großbritannien gibt, kennt das deutsche Gesetz nicht. Die Datenschutzkonferenz (DSK) schreibt, dass schon die einfache Messung von Besucherzahlen nicht von sich aus zum gewünschten Dienst gehört und dass die Wirtschaftlichkeit von Werbung in der Regel nur dem Betreiber dient. Werden Nutzerprofile für Marketing angelegt, muss das Einwilligungsbanner das konkret sagen.17 Menschen für Marketing zu bewerten braucht also eine Einwilligung. Wie ich die Einwilligung für Tracking aufsetze, steht in Event Tracking und Consent Mode. Ich bin Ingenieur, kein Anwalt, und für alles, was über diese Grundlagen hinausgeht, würde ich einen fragen.

Rechenbeispiel: die Idee, die Maja fallen ließ

Mittendrin hat Maja eine Idee. Wer einen hohen Score hat, kauft wahrscheinlich sowieso, warum also nicht das Angebot mit kostenlosem Versand vor diesen Menschen verstecken? Das würde pro Bestellung ein paar Euro sparen.

Ich habe es ihr ausgeredet. Würde der Score allein festlegen, wer für den Versand zahlt, wäre das eine ausschließlich automatisierte Entscheidung über Konditionen, und das SCHUFA Urteil zeigt, wie weit der EuGH diesen Begriff liest. Ob ein paar Euro Versand schon erheblich beeinträchtigen, ist offen, die Leitlinien nennen unterschiedliche Preise ausdrücklich als möglichen Fall. Und die Menschen mit den höchsten Scores sind ihre engagiertesten Kunden, die letzten, die herausfinden sollen, dass sie mehr für den Versand bezahlt haben als ein Fremder. Die Scores entscheiden also, wer wann Hilfe bekommt, nie, wer was bezahlt.

Alles zusammen: ein Kreislauf, der jede Nacht läuft

So sieht das Ganze aus, wie Maja es heute betreibt, von den rohen Besuchen bis zur Nachricht und wieder zurück.

Predictive Automation bei FalkenradJede Nacht werden die Besuche ins Warehouse kopiert, Menschen mit Widerspruch entfernt, jeder Besucher bewertet, Besucher mit hohem Score, die erkennbar sind und eine Erlaubnis haben, in Nachricht und Kontrollgruppe geteilt, die Nachrichten verschickt, und die Ergebnisse fließen in das nächste Modell.Websitebesuche landen über Nacht imWarehouse, nur von Besuchern mitEinwilligungAlle entfernen, die Werbung oderProfiling widersprochen habenJeden Besucher mit dem Modell vomletzten Monat bewertenLiegt die Kaufwahrscheinlichkeitüber der Linie, die Maja gewählthat?neinIn Ruhe lassen, keine NachrichtjaIst der Besucher ein Abonnent mitErlaubnis für Werbung?neinKeine Mail, eventuell eineWerbezielgruppe, wenn erlaubtjaZufällig der Nachricht oder derKontrollgruppe zuteilenDie Vergleichsmail im Takt derLebenszyklusgruppe sendenKaufraten mit der Kontrollgruppevergleichen und das Modell jeden Monatneu anpassen

Lies es von oben, jedes Kästchen wartet auf das darüber. Die beiden Entscheidungskästchen sind die Geschäftsregel (wahrscheinlich genug, damit sich eine Nachricht lohnt?) und die Erlaubnisregel (darf ich diese Person überhaupt kontaktieren?). Die Erkenntnis: Das Modell ist eines von zehn Kästchen. Der meiste Wert steckt in den Kästchen drumherum.

Rechenbeispiel: eine Dienstagnacht

In der Nacht auf Mittwoch liegen im Warehouse vier Wochen Besuche von 39.637 Besuchern mit Einwilligung. 37 von ihnen haben letzte Woche widersprochen und werden zuerst entfernt. Das Modell bewertet die übrigen 39.600, und 1.900 liegen über Majas Linie von 10 % Kaufwahrscheinlichkeit. 640 davon sind Abonnenten mit Erlaubnis für Werbung. Zufällige 20 %, also 128 Menschen, kommen in die Kontrollgruppe und bekommen nichts. Die anderen 512 bekommen die Vergleichsmail, abgestimmt auf ihre Lebenszyklusgruppe. Einen Monat später beantwortet der Unterschied zwischen beiden Gruppen die einzige Frage, die zählt: Hat die Mail Räder verkauft, die sonst nicht verkauft worden wären?

Vorhersagen, dann beweisen

Schreib das Verhalten als Regel auf. Zähl, wie oft es zu einem Kauf führt. Mach aus den Signalen eine Wahrscheinlichkeit und teste sie an Menschen, die das Modell nie gesehen hat. Schick die Nachricht an die Menschen, denen sie hilft, und behalte eine Kontrollgruppe, damit du weißt, ob sie geholfen hat.

In den Shops, an denen ich gearbeitet habe, geht selten das Modell schief. Schief geht, dass niemand den Score an frischen Daten prüft, dass Gutscheine an Menschen gehen, die sowieso gekauft hätten, oder dass ein Widerspruch jemanden nur aus einer einzigen Liste entfernt.

Footnotes

  1. Peter S. Fader, Bruce G. S. Hardie und Ka Lok Lee, RFM and CLV: Using iso value curves for customer base analysis, Journal of Marketing Research 42(4), 2005 (letzte Arbeitsfassung der Autoren), https://www.brucehardie.com/papers/rfm_clv_2005-02-16.pdf

  2. Gareth James, Daniela Witten, Trevor Hastie und Robert Tibshirani, An Introduction to Statistical Learning, Abschnitt 4.3 Logistic Regression, Springer, 2013, https://www.statlearning.com/s/ISLR-Seventh-Printing.pdf

  3. Google Cloud, The CREATE MODEL statement for generalized linear models, BigQuery Dokumentation, 2026, https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-create-glm

  4. Gareth James, Daniela Witten, Trevor Hastie und Robert Tibshirani, An Introduction to Statistical Learning, Abschnitt 2.2.3 The Classification Setting, Springer, 2013, https://www.statlearning.com/s/ISLR-Seventh-Printing.pdf

  5. Eva Ascarza, Retention futility: targeting high risk customers might be ineffective, Journal of Marketing Research 55(1), 2018, S. 80 bis 98, zusammengefasst von der American Marketing Association, https://www.ama.org/2019/04/24/escarzas-retention-futility-targeting-high-risk-customers-might-be-ineffective-wins-2018-award/

  6. Google, Prognosemesswerte, Google Analytics Hilfe, 2026, https://support.google.com/analytics/answer/9846734?hl=de

  7. Google, Prognosezielgruppen, Google Analytics Hilfe, 2026, https://support.google.com/analytics/answer/9805833?hl=de

  8. Klaviyo, Understanding Klaviyo's predictive analytics, Klaviyo Help Center, 2026, https://help.klaviyo.com/hc/en-gb/articles/360020919731

  9. Verordnung (EU) 2016/679 (Datenschutz Grundverordnung), Artikel 4 Nummer 4, Begriff Profiling, EUR Lex, 2016, https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:32016R0679

  10. Verordnung (EU) 2016/679 (Datenschutz Grundverordnung), Artikel 21 Absatz 2 bis 4, Widerspruchsrecht, EUR Lex, 2016, https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:32016R0679

  11. Verordnung (EU) 2016/679 (Datenschutz Grundverordnung), Artikel 22, Automatisierte Entscheidungen im Einzelfall einschließlich Profiling, EUR Lex, 2016, https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:32016R0679

  12. Bundesministerium der Justiz, Bundesdatenschutzgesetz (BDSG), § 37 Automatisierte Entscheidungen im Einzelfall einschließlich Profiling, Gesetze im Internet, https://www.gesetze-im-internet.de/bdsg_2018/__37.html

  13. Gerichtshof der Europäischen Union, Urteil vom 7. Dezember 2023, Rechtssache C 634/21 (SCHUFA Holding, Scoring), Randnummern 48 bis 50 und 73 sowie Tenor Nummer 1, EUR Lex, https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:62021CJ0634

  14. Artikel 29 Datenschutzgruppe, Guidelines on Automated individual decision making and Profiling for the purposes of Regulation 2016/679, WP251rev.01, Kapitel IV, S. 22, Europäische Kommission, 2018, https://ec.europa.eu/newsroom/article29/redirection/document/49826

  15. Europäischer Datenschutzausschuss, Endorsement 1/2018, Nummer 3 (Übernahme von WP251rev.01), EDSA, 25. Mai 2018, https://www.edpb.europa.eu/sites/default/files/files/news/endorsement_of_wp29_documents_en_0.pdf

  16. Telekommunikation Digitale Dienste Datenschutz Gesetz (TDDDG), § 25 Schutz der Privatsphäre bei Endeinrichtungen, Absatz 1 und 2, Bundesministerium der Justiz, Gesetze im Internet, https://www.gesetze-im-internet.de/ttdsg/__25.html

  17. Konferenz der unabhängigen Datenschutzaufsichtsbehörden des Bundes und der Länder (DSK), Orientierungshilfe der Aufsichtsbehörden für Anbieter:innen von digitalen Diensten (OH Digitale Dienste), Version 1.2, Randnummern 90 und 119, DSK, November 2024, https://www.datenschutzkonferenz-online.de/media/oh/OH_Digitale_Dienste.pdf

Wenn deine Automation erst spricht, nachdem jemand gehandelt hat, schaue ich mir gern an, was deine eigenen Daten vorhersagen könnten. Buch den kostenlosen Workshop, und die ersten zwei Wochen Arbeit gehen auf meine Rechnung.