Der komplette Leitfaden zu digitalen Marketing Testmethoden

Kurz gesagt

Niveau: Fortgeschritten

  • Wähl den Test aus der Frage: A/B für eine Änderung, A/B/n mit Korrektur für mehrere, multivariat für zusammenwirkende Elemente, einen Bandit, um beim Lernen zu verdienen.
  • Nur ein Holdout sagt dir, was dein Marketing bewirkt hat, statt was ihm zugeschrieben wurde. Geografische Tests leisten dasselbe für Medien, die sich nicht auf einzelne Personen richten lassen.
  • Bestimm die Größe jedes Tests vor dem Start, werte ihn einmal bei der geplanten Stichprobengröße aus, und benenn vorher eine Hauptkennzahl.
  • Zeitbasierte Tests sind ein Notbehelf für Systeme, die nur eine Fassung zeigen können, kein Mittel gegen wenig Traffic.

Jeder Marketingtest beantwortet eine bestimmte Frage, und die falsche Methode gibt eine selbstsichere Antwort auf eine Frage, die du nie gestellt hast. Dieser Leitfaden behandelt jede Methode, vom bewussten Verzicht auf einen Test bis zum geografischen Lift Test, mit der Mathematik der Stichprobengröße und einem Rechenbeispiel für jede.

Die Methode folgt der Frage, nicht dem Tool

Jede Kampagne, jede Landingpage und jede Betreffzeile ist eine Vermutung darüber, was Menschen tun werden. Ein Test macht aus der Vermutung einen Beleg. Das Problem: Hinter "Test" stecken sehr verschiedene Methoden, und jede beantwortet eine andere Frage. Nimm die falsche, und du bekommst eine selbstsichere Antwort auf eine Frage, die du nie gestellt hast.

Dieser Leitfaden geht jede Methode durch, vom bewussten Verzicht auf einen Test bis zum geografischen Lift Test: was sie ist, wann sie passt, was sie braucht und wo sie bricht. Jedes Unternehmen und jede Zahl in den Beispielen ist erfunden, damit die Rechnung vollständig zu sehen ist. Die Formeln verlinken auf ihre Abschnitte auf der Seite Grundlagen.

Nicht zu testen ist manchmal die richtige Entscheidung

Nicht zu testen ist eine Entscheidung wie jede andere. Du spielst eine Änderung an alle aus, ohne Kontrollgruppe, und schaust, was passiert. Es gibt keinen Vergleich und kein Maß dafür, was die Änderung selbst bewirkt hat.

Das ist öfter richtig, als man zugibt:

  • Tempo zählt mehr als Genauigkeit. Ein Sale, der einen Tag läuft, ist vorbei, bevor ein Test fertig wäre und der Gewinner genutzt werden könnte. Spiel deine beste Vermutung aus und miss das Gesamtergebnis.
  • Die Änderung ist Pflicht. Eine gesetzliche Vorgabe oder eine Plattformrichtlinie muss umgesetzt werden, egal, was sie mit der Conversion macht. Ein Test würde dir nur sagen, wie viel sie gekostet hat.
  • Der Traffic ist zu dünn. Bei 50 Besuchern im Monat kommt keine Methode in brauchbarer Zeit zu einer verlässlichen Antwort. Mit fünf Kunden zu reden, bringt dir mehr bei als ein Test, der nie fertig wird.
  • Es steht wenig auf dem Spiel. Eine geänderte Formulierung in einem internen Tool, das 10 Leute nutzen, braucht kein Experiment.

Das Risiko ist, aus Gewohnheit nicht zu testen statt aus einer Entscheidung heraus, und dann dem Launch den Erfolg zuzuschreiben, wenn die Zahlen steigen. Jahreszeiten, Wettbewerber und schlichter Zufall bewegen Zahlen auch. Ohne eine Kontrollgruppe, die gleichzeitig läuft, kannst du Ursache und Zufall nicht trennen.

Rechenbeispiel: ein Sale über 48 Stunden bei einem Modeshop in Leipzig

Fadenlauf (fadenlauf.example) ist ein erfundener Modeshop in Leipzig, der zweimal im Jahr einen Sale über 48 Stunden fährt. Für die Ankündigungsmail gibt es drei Ideen.

  1. Ein ordentlicher Test mit drei Fassungen bräuchte mehrere Tage, um ihn auszuwerten und danach zu handeln. Der Sale dauert zwei.
  2. Also schickt der Shop das Konzept, das im Frühjahrssale am besten lief, an die ganze Liste.
  3. Er misst den gesamten Saleumsatz gegen den letzten Sale und schreibt auf, dass er nicht beweisen kann, dass dies die beste der drei Ideen war.

Eine vernünftige Entscheidung, bewusst getroffen. Nenn das Ergebnis nur nie einen Beweis.

Ein A/B Test vergleicht zwei Fassungen auf zufällig aufgeteiltem Traffic

Ein A/B Test vergleicht eine Kontrolle (A) mit einer Änderung (B). Jeder Besucher wird zufällig zugeteilt und sieht nur eine Fassung. Am Ende vergleichst du die beiden Raten und fragst, ob der Abstand größer ist, als der Zufall ihn leicht erzeugen würde.

Die zufällige Zuteilung ist der ganze Trick. Sie macht die beiden Gruppen in allem gleich außer der Fassung, also lässt sich ein Unterschied im Ergebnis der Fassung zuschreiben.

Die Teststatistik

Der klassische Test für zwei Conversion Raten ist der z Test für zwei Anteile:

z=p^B−p^Ap^ (1−p^)(1nA+1nB)z = \frac{\hat{p}_B - \hat{p}_A}{\sqrt{\hat{p}\,(1-\hat{p})\left(\frac{1}{n_A} + \frac{1}{n_B}\right)}}

Dabei sind p^A\hat{p}_A und p^B\hat{p}_B die gemessenen Conversion Raten in A und B, nAn_A und nBn_B die Zahl der Besucher in jeder Fassung, und p^\hat{p} ist die gepoolte Rate, alle Conversions geteilt durch alle Besucher. Die Wurzel ist der Standardfehler des Unterschieds, also zählt zz, wie viele Standardfehler die beiden Raten auseinanderliegen. Ein zz jenseits von 1,96 in eine der beiden Richtungen ergibt einen zweiseitigen p Wert unter 0,05. Grundlagen: Hypothesentests

Vier Einstellungen gehören in den Plan, bevor der Test startet. Die Nullhypothese sagt, dass A und B gleich konvertieren. Das Signifikanzniveau α\alpha, meist 0,05, ist die Rate falsch positiver Ergebnisse, die du akzeptierst. Die Teststärke, meist 80 %, ist die Chance, einen echten Effekt der Größe zu entdecken, die dir wichtig ist. Und diese Größe ist der minimal nachweisbare Effekt, der kleinste Lift, den zu finden sich lohnt. Was ein p Wert bedeutet und was nicht, behandelt Die Bedeutung von statistischer Signifikanz und Fehlermargen.

Wie viele Besucher du brauchst

n=(zα/2+zβ)2[p1(1−p1)+p2(1−p2)](p1−p2)2n = \frac{(z_{\alpha/2} + z_{\beta})^2 \left[p_1(1-p_1) + p_2(1-p_2)\right]}{(p_1 - p_2)^2}

Dabei ist nn die Zahl der Besucher pro Fassung, p1p_1 die aktuelle Conversion Rate, p2p_2 die Rate, die du nachweisen können willst, zα/2z_{\alpha/2} ist 1,96 für einen zweiseitigen Test bei 5 %, und zβz_{\beta} ist 0,84 für 80 % Teststärke. Je kleiner der Abstand p1−p2p_1 - p_2, desto größer nn, und weil der Abstand quadriert wird, vervierfacht eine Halbierung ungefähr den nötigen Traffic. Grundlagen: Stichprobengröße

Der minimal nachweisbare Effekt wird meist als relativer Lift dd angegeben, die Zielrate ist also:

p2=p1 (1+d)p_2 = p_1 \,(1 + d)

Dabei ist p1p_1 die aktuelle Rate und dd der relative Lift als Anteil, 0,15 für 15 %. Grundlagen: Prozente Umgekehrt gelesen sagt dir die Formel, was dein Traffic nachweisen kann. Mit nn Besuchern pro Fassung ist der kleinste absolute Abstand, den du verlässlich findest, ungefähr:

δ≈(zα/2+zβ)2 p1(1−p1)n\delta \approx (z_{\alpha/2} + z_{\beta})\sqrt{\frac{2\,p_1(1-p_1)}{n}}

Dabei ist δ\delta der minimal nachweisbare Effekt in absoluten Zahlen (ein Anteil, 0,0030{,}003 sind also 0,3 Prozentpunkte), und die übrigen Symbole sind wie oben. Die Formel behandelt beide Fassungen so, als hätten sie die Rate p1p_1, was für die Planung nah genug dran ist. Grundlagen: Stichprobengröße

Eine Regel, die herumgeht, sagt, du brauchst 1.000 Conversions pro Fassung, um einen relativen Lift von 10 % nachzuweisen. Die Formel sagt mehr. Bei einer Rate von 2,5 % braucht der Nachweis von 2,5 % gegen 2,75 % rund 64.100 Besucher pro Fassung, also rund 1.600 Conversions. Bei 5 % sind es rund 1.560 Conversions. Plan also für einen Lift von 10 % mit grob 1.500 bis 1.600 Conversions pro Fassung, und für 5 % mit dem Vierfachen.

Ihn richtig durchführen

  • Aufteilung. 50/50 ist am schnellsten. Eine Aufteilung 90/10 begrenzt, wie viele eine riskante Fassung sehen, braucht aber viel länger bis zur Auswertung.
  • Dauer. Mindestens eine volle Woche, damit jeder Wochentag in beiden Fassungen vorkommt. Dann laufen lassen bis zum geplanten nn, nicht, bis das Diagramm gut aussieht.
  • Eine Hauptkennzahl, vorher benannt. Wer die Kennzahl erst nach dem Blick auf die Ergebnisse wählt, macht aus Rauschen Befunde.
  • Segmente sind Spuren, keine Ergebnisse. "Insgesamt verloren, aber auf dem Handy gewonnen" ist eine neue Hypothese für einen neuen Test.
  • Einmal auswerten. Jeden Tag nachzuschauen und am ersten signifikanten Tag aufzuhören, bläht die falsch positiven Ergebnisse auf. Evan Miller zeigt, wie ein Test, der bei 5 % laufen sollte, durch wiederholtes Nachschauen bei einer Rate falsch positiver Ergebnisse von 26,1 % landet.1 Ein bayesscher Test ist auch nicht immun: David Robinsons Simulationen zeigen, dass auch seine Fehlerraten von der Abbruchregel abhängen.2 Welcher Schule du auch folgst, leg die Abbruchregel vor dem Start fest. Musst du wirklich früher hinschauen, nimm eine Methode, die dafür gebaut ist, etwa die jederzeit gültigen p Werte, die Ramesh Johari und Kollegen beschreiben, in der Statistik sequenzielles Testen genannt.3

Rechenbeispiel: eine Preisseite bei einem Softwareunternehmen in Hamburg

Planquadrat (planquadrat.example) ist ein erfundenes Unternehmen in Hamburg, das Software für Dienstpläne verkauft. Seine Preisseite macht aus 2,1 % der Besucher Demoanfragen. Es will wissen, ob eine Reihe von Kundenlogos das um mindestens 15 % hebt.

  1. Zielrate: p2=0,021×1,15=0,02415p_2 = 0{,}021 \times 1{,}15 = 0{,}02415.
  2. Stichprobengröße: n=7,84×(0,021×0,979+0,02415×0,97585)/0,003152≈34.900n = 7{,}84 \times (0{,}021 \times 0{,}979 + 0{,}02415 \times 0{,}97585) / 0{,}00315^2 \approx 34.900 pro Fassung. Dabei ist 7,84=(1,96+0,84)27{,}84 = (1{,}96 + 0{,}84)^2.
  3. Die Seite bekommt 8.000 Besucher pro Woche, zwei Fassungen mit je rund 35.000 brauchen also 70.000/8.000≈8,770.000 / 8.000 \approx 8{,}7 Wochen. Der Plan sagt neun Wochen.
  4. Nach neun Wochen: A hat 756 Demoanfragen von 36.010 Besuchern (2,10 %), B hat 866 von 36.070 (2,40 %).
  5. Gepoolte Rate: 1.622/72.080=0,02251.622 / 72.080 = 0{,}0225. Standardfehler: 0,0225×0,9775×(1/36.010+1/36.070)=0,00110\sqrt{0{,}0225 \times 0{,}9775 \times (1/36.010 + 1/36.070)} = 0{,}00110.
  6. z=(0,02401−0,02099)/0,00110=2,73z = (0{,}02401 - 0{,}02099) / 0{,}00110 = 2{,}73, ein zweiseitiger p Wert von rund 0,0060{,}006.

Die Logos bleiben. Die ursprüngliche Fassung dieses Beispiels hatte nur 25.000 Besucher pro Fassung eingeplant, was die Formel nicht hergibt. Genau so, mit einem Abbruch an dieser Stelle, entstehen "Gewinner" ohne ausreichende Teststärke.

Rechenbeispiel: Produktfotos bei einem Outdoorshop in München

Gipfelpfad (gipfelpfad.example) ist ein erfundener Outdoorshop in München. Er testet ein Actionfoto seiner Wanderschuhe gegen das Studiofoto. Die Rate für "in den Warenkorb" liegt bei 8,2 %, und er will eine relative Veränderung von 10 % nachweisen können.

  1. Ziel: 8,2 %×1,1=9,02 %8{,}2\ \% \times 1{,}1 = 9{,}02\ \%. Die Formel ergibt rund 18.300 Besucher pro Fassung.
  2. Die Kategorie Wanderschuhe bekommt 50.000 Besucher pro Woche, die Zahlen sind also innerhalb einer Woche da. Der Shop lässt trotzdem zwei Wochen laufen, um zwei volle Wochenzyklen abzudecken.
  3. Ergebnis: Studiofoto 4.085 von 49.823 (8,20 %), Actionfoto 4.559 von 50.102 (9,10 %).
  4. Relativer Lift: 0,90/8,20=11 %0{,}90 / 8{,}20 = 11\ \%. z=5,06z = 5{,}06, p unter 0,0001.

Actionfotos kommen ins restliche Sortiment.

from math import sqrt, erf

def z_test(conv_a, n_a, conv_b, n_b):
    pa, pb = conv_a / n_a, conv_b / n_b
    p = (conv_a + conv_b) / (n_a + n_b)
    z = (pb - pa) / sqrt(p * (1 - p) * (1 / n_a + 1 / n_b))
    p_value = 2 * (1 - 0.5 * (1 + erf(abs(z) / sqrt(2))))
    return round(z, 2), round(p_value, 4)

def sample_size(p1, p2, za=1.96, zb=0.84):
    return (za + zb) ** 2 * (p1 * (1 - p1) + p2 * (1 - p2)) / (p1 - p2) ** 2

print(z_test(756, 36010, 866, 36070))   # (2.73, 0.0064)
print(round(sample_size(0.021, 0.02415)))  # 34865

Ein Wort zu den Tools. Viele Teams haben ihre Tests in Google Optimize gefahren. Google hat Optimize und Optimize 360 am 30. September 2023 abgeschaltet, und jedes Experiment, das noch lief, endete an diesem Tag.4 Verweist ein altes Prozessdokument noch dorthin, braucht es ein neues Zuhause.

Drei oder mehr Fassungen brauchen eine strengere Latte

Ein A/B/n Test teilt den Traffic gleichzeitig auf drei oder mehr Fassungen auf. Er ist nützlich, wenn du mehrere echte Ideen hast und sie in einem Durchgang vergleichen willst.

Der Haken ist die Zahl der Vergleiche. Jeder trägt seine eigene Chance von 5 % auf ein falsch positives Ergebnis, und die Chancen summieren sich. Über mm unabhängige Vergleiche ist die Chance auf mindestens ein falsch positives Ergebnis:

P(at least one false positive)=1−(1−α)mP(\text{at least one false positive}) = 1 - (1 - \alpha)^m

Dabei ist P(at least one false positive)P(\text{at least one false positive}) die Wahrscheinlichkeit für mindestens ein falsch positives Ergebnis, α\alpha das Signifikanzniveau jedes einzelnen Vergleichs und mm die Zahl der Vergleiche. Die Formel nimmt an, dass die Vergleiche unabhängig sind, was Vergleiche gegen eine gemeinsame Kontrolle nur ungefähr sind. Grundlagen: Wahrscheinlichkeit

Bei drei Vergleichen sind das 1−0,953=14 %1 - 0{,}95^3 = 14\ \%, bei fünf 23 %. Die einfachste Reparatur ist die Bonferroni Methode:5

αeach=αm\alpha_{\text{each}} = \frac{\alpha}{m}

Dabei ist α\alpha die gesamte Rate falsch positiver Ergebnisse, die du willst, mm die Zahl der Vergleiche und αeach\alpha_{\text{each}} die Latte, die jeder einzelne Vergleich überspringen muss. Grundlagen: Hypothesentests

Bonferroni ist grob und kostet Teststärke. Die Holm Methode wendet dieselbe Idee Schritt für Schritt an, vom kleinsten p Wert aufwärts, und verwirft mindestens so oft, bei gleicher Garantie.6 Die Kontrolle der False Discovery Rate, des erwarteten Anteils falsch positiver Ergebnisse unter deinen "Gewinnern", ist noch lockerer und passt zu explorativer Arbeit mit vielen Fassungen.7

A/B/n Tests passen zu mehreren echten Hypothesen und genug Traffic: Vier Fassungen brauchen grob den doppelten Traffic eines A/B Tests, weil jede Fassung ihr eigenes nn braucht. Zu dünnem Traffic passen sie nicht, und sie helfen nicht, wenn jede Fassung gleichzeitig Überschrift, Button und Layout ändert. Dann kannst du nicht sagen, welche Änderung die Arbeit gemacht hat. Das ist eine Aufgabe für einen multivariaten Test.

Rechenbeispiel: Betreffzeilen bei einem Reiseveranstalter in Köln

Fernweh Reisen (fernwehreisen.example) ist ein erfundener Reiseveranstalter in Köln mit einer wöchentlichen Angebotsmail an 400.000 Abonnenten. Er testet vier Betreffzeilen an einem Ausschnitt von 40.000, je 10.000, und schickt die Gewinnerin dann an den Rest.

  • A (Kontrolle): "Die Reiseangebote dieser Woche"
  • B: "Flüge ab 29 €, nur diese Woche"
  • C: "Deine nächste Reise ist gerade günstiger geworden"
  • D: "Noch 48 Stunden: Mitgliederpreise"

Die Kennzahl ist die Klickrate, nicht die Öffnungsrate. Seit 2021 verhindert Apples Mail Privacy Protection, dass Absender mit unsichtbaren Pixeln erfahren, wann eine Nachricht geöffnet wird,8 Öffnungsraten messen also nicht mehr, was sie zu messen behaupten.

  1. Drei Vergleiche gegen die Kontrolle, also legt Bonferroni die Latte auf 0,05/3=0,01670{,}05 / 3 = 0{,}0167. (Die ursprüngliche Fassung dieses Beispiels nutzte 0,0125, die Latte für vier Vergleiche.)
  2. Nach vier Stunden: A 2,0 %, B 2,6 %, C 2,2 %, D 2,9 %.
  3. B gegen A: z=2,83z = 2{,}83, p=0,005p = 0{,}005, unter der Latte. D gegen A: z=4,12z = 4{,}12, p<0,001p < 0{,}001, unter der Latte. C gegen A: z=0,99z = 0{,}99, p=0,32p = 0{,}32, nicht signifikant.
  4. D geht an die übrigen 360.000.

Rechenbeispiel: Landingpages für eine Budget App aus Leipzig

Groschen (groschen.example) ist eine erfundene App für das Haushaltsbudget aus Leipzig mit drei Landingpages: A listet die Funktionen auf, B beginnt mit dem Ergebnis, C mit Bewertungen. Bezahlter Traffic wird gleichmäßig verteilt, je 15.000 Besucher, über drei Wochen.

  1. Zwei Vergleiche gegen A, also liegt die Latte bei 0,05/2=0,0250{,}05 / 2 = 0{,}025.
  2. Anmelderaten: A 3,2 %, B 4,1 %, C 3,8 %.
  3. B gegen A: z=4,16z = 4{,}16, p<0,001p < 0{,}001. C gegen A: z=2,83z = 2{,}83, p=0,005p = 0{,}005. Beide überspringen die Latte.
  4. B gegen C: z=1,33z = 1{,}33, p=0,18p = 0{,}18. Die Daten können sie nicht auseinanderhalten.

Die ursprüngliche Fassung dieses Beispiels nannte C "nicht signifikant". Mit diesen Zahlen ist C signifikant. Die ehrliche Lesart: Mit dem Ergebnis oder mit Bewertungen zu beginnen, schlägt beides eine Liste der Funktionen, und der nächste Test ist B gegen eine Fassung, die beides verbindet.

Bandits verdienen, während sie lernen

Ein A/B Test hält seine Aufteilung bis zum Ende, also sieht ein Teil der Besucher weiter die schwächere Fassung, bis du aufhörst. Ein Multi Armed Bandit verschiebt den Traffic zur besseren Fassung, je mehr Belege zusammenkommen. Der Standardalgorithmus ist Thompson Sampling: Jede Fassung führt eine Wahrscheinlichkeitsverteilung für ihre Rate, jeder Besucher sieht die Fassung, deren Zufallsziehung am höchsten ausfällt, und unsichere Fassungen gewinnen noch manche Ziehung, während klar schlechtere bald aufhören.9 Formel und Code stehen in Die Mathematik hinter allem.

Rechenbeispiel: was eine gleichmäßige Aufteilung kostet

In der Simulation in jenem Artikel konvertieren drei Fassungen einer Seite mit 3 %, 5 % und 4 %, ohne dass der Algorithmus das weiß, über 10.000 Besucher.

  1. Eine gleichmäßige Aufteilung bringt 10.000×(0,03+0,05+0,04)/3=40010.000 \times (0{,}03 + 0{,}05 + 0{,}04) / 3 = 400 Conversions.
  2. Thompson Sampling brachte über 300 Durchläufe im Schnitt 470, also 70 mehr, indem es rund 7.700 Besucher zur besten Fassung schickte.

Der Preis ist die Genauigkeit bei den Verlierern. Nimm einen Bandit, wenn das Verdienen während des Tests wichtiger ist, als jede Fassung genau zu messen, etwa bei einer kurzen Aktion. Nimm einen Test, wenn du die saubere Zahl brauchst.

Multivariate Tests finden die beste Kombination, zu einem hohen Preis an Traffic

Ein multivariater Test ändert mehrere Elemente gleichzeitig und zeigt jedem Besucher eine Kombination. Zwei Überschriften, zwei Bilder und zwei Buttons ergeben 2×2×2=82 \times 2 \times 2 = 8 Kombinationen. Es geht darum, nicht nur das beste Element jeder Art zu finden, sondern auch Wechselwirkungen, bei denen die beste Überschrift vom Bild daneben abhängt.

Ein vollfaktorielles Design fährt jede Kombination und misst jeden Haupteffekt und jede Wechselwirkung. Ein teilfaktorielles Design fährt eine ausgewählte Teilmenge, die die Haupteffekte mit weniger Traffic schätzt, dafür aber manche Wechselwirkungen miteinander vermischt, ein Tausch, den das Handbuch des NIST Vermengung (confounding) nennt.10

Braucht ein A/B Test 20.000 Besucher pro Fassung, braucht der Vergleich jeder Zelle eines multivariaten Tests:

Traffic für multivariate TestsNötige Besucher insgesamt, wenn jede Kombination 20.000 Besucher braucht: 40.000 für einen A/B Test, 80.000 für zwei mal zwei, 160.000 für zwei mal zwei mal zwei, 540.000 für drei mal drei mal drei.Nötige Besucher bei 20.000 pro Kombination0250.000500.000750.0001.000.00040.000A/B (2)80.0002 x 2 (4)160.0002 x 2 x 2 (8)540.0003 x 3 x 3(27)BesucherDesign (Zahl der Kombinationen)

Auf der waagrechten Achse stehen vier Designs, mit der Zahl der Kombinationen in Klammern. Die senkrechte Achse zeigt den gesamten nötigen Traffic, wenn jede Kombination 20.000 Besucher bekommt. Entscheidend ist die Form: Die Rechnung wächst mit der Zahl der Kombinationen, nicht mit der Zahl der Elemente, und sie wächst schnell. Diese Zahl gilt, wenn du jede Kombination mit jeder anderen vergleichen willst. Brauchst du nur die Haupteffekte, lässt ein faktorielles Design jeden Besucher gleichzeitig für jedes Element zählen, und das braucht weit weniger.

Multivariate Tests passen also zu Seiten mit Hunderttausenden Besuchern im Monat und Elementen, die zusammenwirken könnten. Bei bescheidenem Traffic, oder ohne Grund, Wechselwirkungen zu erwarten, fahr einen A/B Test nach dem anderen.

Rechenbeispiel: eine Kategorieseite bei einem Elektronikshop in Köln

Technikhalle (technikhalle.example) ist ein erfundener Elektronikshop in Köln. Er testet seine Kategorieseite für Laptops mit zwei Überschriften ("Finde deinen Laptop" gegen "Laptops für jedes Budget"), zwei Layouts (Raster gegen Liste) und zwei Positionen der Filter (Filter neben den Produkten gegen Filter darüber).

  1. 2×2×2=82 \times 2 \times 2 = 8 Kombinationen.
  2. Die Seite bekommt 1,2 Millionen Besucher im Monat, ein Test über vier Wochen gibt jeder Kombination also rund 1.200.000/8=150.0001.200.000 / 8 = 150.000 Besucher.
  3. Das Ergebnis zeigt eine Wechselwirkung: Das Raster schneidet mit Filtern daneben am besten ab, die Liste mit Filtern darüber.
  4. Layout und Filter in zwei getrennten A/B Tests zu prüfen, hätte jeden "Gewinner" gegen die Standardeinstellung des anderen gefunden und hätte das Paar übersehen können, das funktioniert.

Rechenbeispiel: eine Startseite bei einem Softwareunternehmen in Hamburg

Taskwerft (taskwerft.example) ist ein erfundenes Tool für Projektmanagement aus Hamburg. Es testet drei Überschriften, zwei Heldenbilder (Screenshot des Produkts gegen Illustration) und zwei Beschriftungen für den Button ("Kostenlos testen" gegen "In Aktion ansehen").

  1. 3×2×2=123 \times 2 \times 2 = 12 Kombinationen.
  2. Mit 800.000 Besuchern im Monat ergeben sechs Wochen rund 1.200.000/12=100.0001.200.000 / 12 = 100.000 pro Kombination.
  3. Der Screenshot gewinnt, aber nur mit "In Aktion ansehen". Mit "Kostenlos testen" schneidet die Illustration besser ab. Diese Wechselwirkung prägt die nächste Runde der Gestaltung.

Holdout Tests messen, was ohnehin passiert wäre

Ein Holdout Test vergleicht nicht zwei Erlebnisse. Er vergleicht eine Maßnahme mit keiner. Ein zufälliger Teil des Publikums, oft 5 % bis 20 %, wird aus einer Kampagne, einer Funktion oder einer Retargeting Liste herausgehalten. Der Vergleich mit allen anderen misst den inkrementellen Lift: was die Maßnahme bewirkt hat, nicht, was ihr zugeschrieben wurde.

Die meiste Marketingmessung schmeichelt sich selbst. Wer Retargeting Anzeigen sieht, war schon auf der Website. Rechne jeden Kauf dieser Leute den Anzeigen zu, und du zählst Verkäufe, die sowieso passiert wären.

Aus einem Holdout kommen zwei Zahlen:

absolute lift=rT−rC,relative lift=rT−rCrC\text{absolute lift} = r_T - r_C, \qquad \text{relative lift} = \frac{r_T - r_C}{r_C}

Dabei ist rTr_T die Conversion Rate in der behandelten Gruppe und rCr_C die Rate im Holdout (der Kontrolle). Der absolute Lift (absolute lift) steht in Prozentpunkten, der relative Lift (relative lift) ist ein Anteil an der Rate des Holdouts. Grundlagen: Prozente

Der Anteil der Conversions der behandelten Gruppe, den die Maßnahme tatsächlich bewirkt hat, ist (rT−rC)/rT(r_T - r_C) / r_T, wieder eine andere Zahl. Die beiden zu verwechseln, ist der häufigste Fehler beim Lesen eines Holdouts.

Holdouts passen zu Retargeting, zu Mailstrecken und CRM Programmen, zu Kampagnen, die dauerhaft laufen, und zu jedem Budget, das eine Finanzchefin belegt sehen will. Drei praktische Punkte: Ein größerer Holdout bringt mehr Genauigkeit, verzichtet aber auf mehr Umsatz, also sind 10 % ein üblicher Kompromiss. Holdouts laufen meist länger als A/B Tests, weil sie Verhalten über Wochen messen. Und der Holdout muss wirklich draußen bleiben: Bekommen diese Leute dieselbe Botschaft über einen anderen Kanal, ist die Messung verdorben.

Die Werbeplattformen haben das eingebaut. Conversion Lift von Google teilt Menschen (oder Regionen) in eine Gruppe, die die Anzeigen sieht, und eine, die sie nicht sieht, und meldet inkrementelle Conversions, inkrementelle Kosten pro Aktion und inkrementellen Return on Ad Spend. Google weist darauf hin, dass die Funktion nicht für jedes Konto verfügbar ist und man sie bei seinem Ansprechpartner bei Google anfragen muss.11 Eine Plattform, die ihre eigenen Anzeigen misst, verdient dieselbe Skepsis wie jeder andere Bericht: Prüf, wie die Gruppen aufgeteilt wurden und was als Conversion zählt, bevor du der Zahl traust.

Rechenbeispiel: Retargeting bei einem Möbelshop in Dresden

Eichenstube (eichenstube.example) ist ein erfundener Möbelshop in Dresden, der 50.000 € im Monat für Retargeting ausgibt. Die Frage von oben ist einfach: Hätten diese Leute sowieso gekauft?

  1. Er hält acht Wochen lang 10 % der 200.000 Besucher im Monat heraus, die für Retargeting in Frage kommen. 180.000 im Monat sehen die Anzeigen, 20.000 nicht.
  2. Mit Retargeting: 3,2 % kaufen, im Schnitt für 180 €, also 5,76 € pro Besucher. Holdout: 2,1 % kaufen, für 175 €, also 3,6753{,}675 € pro Besucher.
  3. Inkrementeller Umsatz pro Besucher: 5,76−3,675=2,0855{,}76 - 3{,}675 = 2{,}085 €.
  4. Pro Monat: 180.000×2,085=375.300180.000 \times 2{,}085 = 375.300 € Umsatz, den die Anzeigen bewirkt haben.

Der inkrementelle Return on Ad Spend ist dieser Umsatz geteilt durch die Ausgaben:

iROAS=ΔRSiROAS = \frac{\Delta R}{S}

Dabei ist ΔR\Delta R der inkrementelle Umsatz, der Umsatz, den die behandelte Gruppe über das hinaus erzielt hat, was die Rate des Holdouts vorhersagt, und SS die Werbeausgabe im selben Zeitraum. Grundlagen: Verhältnisse und Raten

  1. iROAS=375.300/50.000=7,5iROAS = 375.300 / 50.000 = 7{,}5.
  2. Hätte man jeden Kauf eines Besuchers mit Retargeting den Anzeigen zugeschrieben, läge die Zahl bei 180.000×5,76/50.000=20,7180.000 \times 5{,}76 / 50.000 = 20{,}7. Der Holdout zeigt, dass fast zwei Drittel davon sowieso passiert wären.

Retargeting lohnt sich hier immer noch, aber mit 7,5 an Umsatz, vor Marge, nicht mit 20,7. (Die ursprüngliche Fassung dieses Beispiels hat mit allen 200.000 Besuchern multipliziert, einschließlich des Holdouts, der nie eine Anzeige gesehen hat.)

Rechenbeispiel: Mails in der Testphase bei einem Softwareunternehmen in Hamburg

Kontenhafen (kontenhafen.example) ist eine erfundene App für die Buchhaltung aus Hamburg mit einer Sequenz aus 12 Mails für Nutzer in der Testphase. Sie hält 15 % von 4.000 neuen Testnutzern 60 Tage lang heraus.

  1. Mails: 3.400 Nutzer, 286 zahlen (8,4 %). Holdout: 600 Nutzer, 31 zahlen (5,2 %).
  2. Absoluter Lift: 8,4−5,2=3,28{,}4 - 5{,}2 = 3{,}2 Punkte. z=2,71z = 2{,}71, p=0,007p = 0{,}007.
  3. Relativer Lift: 3,2/5,2=62 %3{,}2 / 5{,}2 = 62\ \%.
  4. Anteil der Conversions der Mailgruppe, den die Mails bewirkt haben: 3,2/8,4=38 %3{,}2 / 8{,}4 = 38\ \%, rund 109 der 286.

Die ursprüngliche Fassung dieses Beispiels sagte, 62 % der zugeschriebenen Conversions seien inkrementell. Das verwechselt den relativen Lift mit dem inkrementellen Anteil. Die Sequenz wirkt, und 38 % ist die Zahl, die vor die Finanzchefin gehört.

Geografische Tests funktionieren, wenn du Menschen nicht zufällig zuteilen kannst

Ein geografischer Test teilt Orte statt Menschen zufällig zu. Eine Gruppe von Städten oder Regionen bekommt Maßnahme A, eine passende Gruppe B oder nichts. Google hat beschrieben, wie es solche Geoexperimente nutzt, um Suchanzeigen zu messen, mit Regionen ohne Überschneidung, die zufällig Kontrolle und Maßnahme zugeteilt werden.12

Sie passen zu Medien, die sich nicht auf einzelne Personen richten lassen (Radio, Plakate, Flyer, Fernsehen), zu Preisen oder Sortimenten, die je Region verschieden sind, und zu Fällen, in denen Menschen miteinander reden, sodass ein Test auf Personenebene durchsickern würde.

Orte unterscheiden sich auf Arten, die mit dem Test nichts zu tun haben, also braucht ein geografischer Test Sorgfalt:

  • Passende Paare. Bilde Paare von Städten mit ähnlicher Entwicklung, Größe und Zusammensetzung, und behandle dann zufällig eine Stadt pro Paar.
  • Differenz der Differenzen. Vergleich die Veränderung in jeder Gruppe, vorher gegen währenddessen, nicht die Niveaus.
  • Synthetische Kontrolle. Bau eine gewichtete Mischung unbehandelter Gebiete, die vor dem Test dem behandelten Gebiet gefolgt ist, und vergleich das behandelte Gebiet während des Tests mit dieser Mischung. Alberto Abadies Übersicht beschreibt, wann das funktioniert und wann nicht.13 Metas quelloffenes Paket GeoLift macht das für Werbekampagnen.14

Die Differenz der Differenzen ist:

DiD=(YT,during−YT,before)−(YC,during−YC,before)DiD = (Y_{T,\text{during}} - Y_{T,\text{before}}) - (Y_{C,\text{during}} - Y_{C,\text{before}})

Dabei ist YTY_{T} das Ergebnis in den behandelten Gebieten und YCY_{C} in den Kontrollgebieten, jeweils gemessen vor dem Test (before) und während des Tests (during). Wer die Veränderung der Kontrolle abzieht, entfernt, was sowieso passiert wäre, etwa einen guten Sommer für alle. Grundlagen: Indexierung und Basisraten

Rechenbeispiel: Lokalradio für eine Kette von Gartencentern

Gartenwelt Elbland (gartenweltelbland.example) ist eine erfundene Kette mit Märkten in ganz Sachsen und Thüringen, geführt von Dresden aus. Sie will wissen, was Werbung im Lokalradio für den Umsatz tut.

  1. Sie bildet 20 Paare ähnlicher Marktstädte, etwa Pirna und Meißen oder Freiberg und Döbeln, abgestimmt auf Umsatz pro Kopf, Einwohnerzahl im Umland, Wettbewerber in der Nähe und bisheriges Wachstum.
  2. In jedem Paar entscheidet eine Münze, welche Stadt 12 Wochen lang Spots im örtlichen Radiosender bekommt.
  3. Umsatz gegen dieselben Wochen im Vorjahr: Städte mit Radio plus 14,2 %, die anderen plus 6,8 %.
  4. DiD=14,2−6,8=7,4DiD = 14{,}2 - 6{,}8 = 7{,}4 Prozentpunkte Wachstum, die das Radio bewirkt hat.

Leg die Marge auf diesen Umsatz drauf, und die Kette weiß, ob sich das Radio lohnt.

Rechenbeispiel: eine pauschale Liefergebühr

Eine erfundene App für Essenslieferungen, aktiv in 10 deutschen Städten, will eine pauschale Gebühr von 2,99 € mit ihrer heutigen Gebühr von 1,99 € bis 4,99 € je nach Entfernung vergleichen. Ein Test auf Personenebene würde Nachbarn für dasselbe Restaurant verschiedene Gebühren zahlen lassen, also testet sie nach Städten.

  1. Fünf Städte wechseln auf die Pauschale, fünf passende Städte behalten die alte Gebühr, acht Wochen lang.
  2. Städte mit Pauschale: Bestellungen pro Kunde plus 8,2 %, durchschnittlicher Bestellwert minus 3,1 %. Umsatz pro Kunde: 1,082×0,969=1,0481{,}082 \times 0{,}969 = 1{,}048, also plus 4,8 %.
  3. Vergleichsstädte: Bestellungen plus 1,4 %, Bestellwert plus 0,8 %. 1,014×1,008=1,0221{,}014 \times 1{,}008 = 1{,}022, also plus 2,2 %.
  4. Der Unterschied: rund 2,6 Punkte zugunsten der Pauschale, vor den Gebühreneinnahmen.

Mit fünf Städten pro Seite kann das Rauschen zwischen den Städten so groß sein wie dieser Abstand. Vor dem Ausrollen prüft die App, wie stark das Wachstum dieser Städte normalerweise gegeneinander schwankt, und rechnet die Veränderung der Gebühreneinnahmen dazu.

Zielgruppensplits testen verschiedene Ansätze für verschiedene Segmente

Ein Zielgruppensplit fährt einen eigenen Test in jedem Segment, weil Segmente unterschiedlich reagieren können. Rabatte gewinnen vielleicht bei Schnäppchenjägern, während eine hochwertige Botschaft bei treuen Kunden gewinnt.

Segmente können vorab festgelegt sein (neu gegen wiederkehrend, Branche), von einem Modell gefunden oder aus dem Kontext genommen werden, etwa dem Gerät.

Das Risiko ist eine Schleife, die sich selbst bestätigt. Markier jemanden als "preissensibel", zeig ihm nur Rabatte, und du erfährst nie, dass die hochwertige Botschaft auch funktioniert hätte. Zeig jedem Segment von Zeit zu Zeit den Gewinner des anderen Segments.

Rechenbeispiel: neue und wiederkehrende Besucher bei einem Modeshop in Leipzig

Fadenlauf testet drei Banner auf der Startseite für neue Besucher (die Geschichte der Marke, Neuheiten, 15 % auf die erste Bestellung) und drei für wiederkehrende (Empfehlungen, Neuheiten seit dem letzten Besuch, das Treueprogramm). Jeder Test wird für sich geplant und ausgewertet, mit seinem eigenen nn. Neue Besucher reagieren am besten auf den Rabatt, wiederkehrende auf die Empfehlungen, also unterscheidet sich die Startseite jetzt je nach Gruppe.

Rechenbeispiel: Branchenseiten bei einem Softwareunternehmen in München

Ein erfundenes Unternehmen aus München mit Software für Marketing testet Branchenseiten gegen seine allgemeine Seite, für Interessenten aus Gesundheitswesen, Finanzdienstleistung und Handel. Die Branchenseiten gewinnen in allen dreien, um 40 % bis 62 %, mit dem Gesundheitswesen an der Spitze, wo die Regulierung am schwersten auf den Käufern lastet. (Die ursprüngliche Fassung sagte "40 % bis 60 %" und nannte dann 62 % für das Gesundheitswesen.) Drei Segmente heißen drei Vergleiche, also wird jeder an der Bonferroni Latte von 0,0167 gemessen.

Zeitbasierte Tests wechseln die Fassungen über die Zeit

Ein zeitbasierter Test zeigt Fassung A für einen Zeitraum, dann Fassung B, und vergleicht die Zeiträume. Die ursprüngliche Fassung dieses Artikels nannte das einen sequenziellen Test, aber in der Statistik heißen so die Methoden, mit denen man sicher in einen laufenden Test schauen kann, also nenne ich diesen hier zeitbasiert.

Er vermeidet die Aufteilung des Traffics, macht aber die Zeit zu einer konkurrierenden Erklärung. Läuft die Woche von B besser, lag es an B, oder ist bei einem Wettbewerber in dieser Woche die Ware ausgegangen?

Die Frage ist, wann sich dieser Preis lohnt. Wenig Traffic allein ist kein Grund: Die Besucher jedes Tages 50/50 aufzuteilen, ergibt dieselbe Stichprobe ohne Störung durch die Zeit. Der echte Grund ist ein technischer, ein System, das nicht zwei Fassungen gleichzeitig zeigen kann. Dann schütz dich:

  • Mehrmals abwechseln. A, B, A, B, nicht A und dann B, damit keine einzelne seltsame Woche das Ergebnis tragen kann.
  • Bekannte Veränderungen herausrechnen. Werbeausgaben, Trafficquellen, Aktionen.
  • Mit etwas Unberührtem vergleichen. Hat sich eine Kennzahl bewegt, die die Änderung nicht beeinflussen kann, rechne das heraus.
  • Dein Normal kennen. Eine lange Basislinie zeigt, wie stark sich die Kennzahl von Woche zu Woche von allein bewegt.

Rechenbeispiel: Onboarding bei einer Produktivitätsapp aus Dresden

Auftaktliste (auftaktliste.example) ist eine erfundene App aus Dresden, deren Onboarding fest im App Release steckt, also können der alte und der neue Ablauf nicht nebeneinander laufen. Sie bekommt rund 50 neue Nutzer am Tag.

  1. Wochen eins und drei laufen mit dem alten Ablauf, Wochen zwei und vier mit dem neuen. Jeder bekommt rund 700 neue Nutzer.
  2. Alter Ablauf: 238 aktivieren sich (34 %). Neuer Ablauf: 287 aktivieren sich (41 %).
  3. z=2,70z = 2{,}70, p=0,007p = 0{,}007, mit dem Vorbehalt, dass die Wochen nicht zufällig zugeteilt wurden.
  4. Der neue Ablauf hat in beiden seiner Wochen gewonnen, und sonst hat sich an Ausgaben und Quellen nichts geändert. Das Team liefert ihn aus.

Der ursprüngliche Artikel nahm hier eine Mailingliste mit 5.000 Personen als Beispiel. Jeden Versand zu halbieren, ergibt dieselbe Stichprobe ohne Störung durch die Zeit, für Mail ist das also das bessere Design.

Die Methode wählen

Eine Testmethode wählenEin Entscheidungsweg von oben nach unten: entscheiden, ob der Einsatz einen Test rechtfertigt, ob sich Menschen zufällig zuteilen lassen, ob die Inkrementalität gemessen werden soll, wie viele Fassungen es gibt und ob der Traffic reicht.Lohnt sich ein Test, bei Zeit, Einsatzund Traffic?neinAusspielen und das Gesamtergebnismessen, bewusstjaKannst du einzelne Menschenzufällig zuteilen?neinGeografischer Test, oder zeitbasiert,wenn ein System nur eine Fassung zeigenkannjaWillst du wissen, was die Maßnahmegegenüber nichts bewirkt hat?jaHoldout TestneinWie viele Fassungen oder Elemente?Zwei: A/B Test. Drei oder mehr: A/B/nmit Korrektur. ZusammenwirkendeElemente: multivariatBraucht jedes Segment seine eigeneAntwort?jaZielgruppensplit, jedes Segment mitseinem eigenen n geplantneinIst das Verdienen während des Testsmehr wert als eine saubere Messung?jaBanditneinn, Kennzahl und Abbruchregel festlegen,dann starten

Lies es von oben: ob sich ein Test lohnt, ob sich Menschen zufällig zuteilen lassen (wenn nicht, sind Orte oder Zeit deine Einheiten), ob du die Inkrementalität willst (die beantwortet nur ein Holdout), dann Fassungen, Segmente und Bandits. Jeder Weg endet gleich: Der Plan steht, bevor die Daten kommen.

Vor allem anderen: Rechne die Formel für die Stichprobengröße. Erreicht dein Traffic das nn für den Effekt nicht, der dir wichtig ist, akzeptier einen größeren minimal nachweisbaren Effekt, teste etwas Mutigeres, oder frag stattdessen die Kundschaft.

Die Fehler, die gute Tests zunichtemachen

  • Zu früh aufhören. Der erste signifikante Tag ist nicht das Ergebnis. Leg nn fest oder nimm eine Methode, die fürs Nachschauen gebaut ist.
  • Angeln. Viele Tests fahren oder einen Test zehnfach zerschneiden und die signifikanten Teile melden, macht aus Rauschen Befunde. Benenn Hauptkennzahl und Auswertung vorher.
  • Signifikant, aber klein. Ein Lift von 0,1 % kann echt sein und sich trotzdem nicht lohnen. Stell den Effekt neben seine Kosten.
  • Überlappende Tests. Zwei Tests auf derselben Seite mit denselben Leuten können sich gegenseitig stören. Jemand muss eine Liste führen, was wo läuft.

Testen ist eine Disziplin, keine Funktion

Testen ist kein Schalter in einem Tool. Es ist eine Reihe von Gewohnheiten: die Methode aus der Frage wählen, die Größe vor dem Start bestimmen, einmal auswerten und der Antwort glauben, auch wenn sie enttäuscht.

Der teure Fehler ist selten die falsche Methode. Er heißt: nicht testen, oder schlecht testen und dem Ergebnis trauen.

Ich habe Testprogramme in eCommerce, SaaS und B2B Unternehmen umgesetzt. Die Statistik zählt, aber genauso die Gewohnheit, Tests ordentlich zu fahren und ehrlich nach den Ergebnissen zu handeln. Fang mit einem A/B Test auf deiner meistbesuchten Seite an, bring die Disziplin in Ordnung, und erweitere die Methoden, wenn die Fragen wachsen.

Footnotes

  1. Evan Miller, How Not To Run an A/B Test, evanmiller.org, 2010, https://www.evanmiller.org/how-not-to-run-an-ab-test.html

  2. David Robinson, Is Bayesian A/B Testing Immune to Peeking? Not Exactly, Variance Explained, 2015, http://varianceexplained.org/r/bayesian-ab-testing/

  3. Ramesh Johari, Leo Pekelis und David J. Walsh, Always valid inference: bringing sequential analysis to A/B testing, arXiv 1512.04922, 2015 (überarbeitet 2019), https://arxiv.org/abs/1512.04922

  4. Google, [Sunset September 2023] Google Optimize, Analytics Hilfe, https://support.google.com/optimize/answer/12979939

  5. NIST/SEMATECH, e Handbook of Statistical Methods, Abschnitt 7.4.7.3 Bonferroni's method, National Institute of Standards and Technology, 2012, https://www.itl.nist.gov/div898/handbook/prc/section4/prc473.htm

  6. Wikipedia, Holm Bonferroni method (Sture Holm, Scandinavian Journal of Statistics, 1979), https://en.wikipedia.org/wiki/Holm%E2%80%93Bonferroni_method

  7. Wikipedia, False discovery rate (Yoav Benjamini und Yosef Hochberg, Journal of the Royal Statistical Society Series B, 1995), https://en.wikipedia.org/wiki/False_discovery_rate

  8. Apple, Apple advances its privacy leadership with iOS 15, iPadOS 15, macOS Monterey, and watchOS 8 (Mail Privacy Protection), Apple Newsroom, 7. Juni 2021, https://www.apple.com/newsroom/2021/06/apple-advances-its-privacy-leadership-with-ios-15-ipados-15-macos-monterey-and-watchos-8/

  9. Daniel Russo, Benjamin Van Roy, Abbas Kazerouni, Ian Osband und Zheng Wen, A Tutorial on Thompson Sampling, Foundations and Trends in Machine Learning 11(1), 2018, https://arxiv.org/abs/1707.02038

  10. NIST/SEMATECH, e Handbook of Statistical Methods, Abschnitt 5.3.3.4 Fractional factorial designs, National Institute of Standards and Technology, 2012, https://www.itl.nist.gov/div898/handbook/pri/section3/pri334.htm

  11. Google, Conversion Lift (About Conversion Lift), Google Ads Hilfe, https://support.google.com/google-ads/answer/12003020

  12. Jon Vaver und Jim Koehler, Measuring Ad Effectiveness Using Geo Experiments, Google, 2011, https://research.google/pubs/measuring-ad-effectiveness-using-geo-experiments/

  13. Alberto Abadie, Using Synthetic Controls: Feasibility, Data Requirements, and Methodological Aspects, Journal of Economic Literature 59(2), Seiten 391 bis 425, 2021, https://www.aeaweb.org/articles?id=10.1257/jel.20191450

  14. Meta Open Source, GeoLift: an end to end geo experimental methodology based on synthetic control methods, GitHub, https://github.com/facebookincubator/GeoLift

Du bist nicht sicher, welcher Test zu deiner Frage passt, oder ob dein Traffic einen trägt? Buch den kostenlosen Workshop, dann plane ich ihn mit dir, und die ersten zwei Wochen Arbeit gehen auf meine Rechnung.