Wie Sie aufhören, sich Sorgen zu machen und an A / B-Tests glauben

Wenn Sie ein Produkt entwickeln, besteht bei jeder neuen Iteration die Gefahr, dass Kennzahlen gelöscht werden und Benutzer verloren gehen. Dennoch gehen Unternehmen manchmal, insbesondere in der Anfangsphase, unwissentlich dieses Risiko ein - ändern Sie das Produkt, indem Sie sich nur auf ihre Instinkte und Hypothesen verlassen.

Wir bei Badoo vertrauen keinen Gefühlen, aber wir glauben an Zahlen. Insgesamt haben unsere Dienste mehr als 500 Millionen Benutzer, und wir haben unser Test-Framework lange Zeit geschrieben. In sechs Jahren wurden 2962 Tests durchgeführt, und A / B-Tests haben ihre Bedeutung, Zuverlässigkeit und Wirksamkeit bewiesen.



Aber in diesem Artikel werde ich nicht darüber sprechen, wie unser System funktioniert. Ein Artikel reicht dafür nicht aus. Darüber hinaus sind viele Dinge spezifisch für unser Unternehmen und passen nicht zu anderen. Heute werde ich über die Entwicklung unserer Ideen zu A / B-Tests sprechen: Welche Art von Rechen haben wir in diesem Prozess eingesetzt und wie haben wir die Richtigkeit der Tests überprüft? Dieser Artikel richtet sich an diejenigen, die noch nicht mit dem Testen begonnen haben, aber darüber nachdenken, sowie an diejenigen, die sich über ihr Testsystem nicht sicher sind.

Was ist ein A / B-Test?


Stellen Sie sich eine Situation vor: Eine neue Funktion soll eingeführt werden, und unser Produktmanager ist nicht bereit, ein kleines, aber stabiles Einkommen für das Produkt zu riskieren. Nach einigen Überlegungen schlägt er vor, die Funktion durch den A / B-Test zu starten und zu prüfen, ob sie startet und die Benutzer nicht zu Wettbewerbern gehen. 

Wir haben vorher keine A / B-Tests durchgeführt, also lernen wir zuerst, was sie sind. Wikipedia sagt: „A / B-Tests sind eine Marktforschungsmethode , deren Kern darin besteht, dass die Kontrollgruppe der Elemente mit einer Reihe von Testgruppen verglichen wird, in denen ein oder mehrere Indikatoren geändert wurden, um herauszufinden, welche davon Ändern Ziel verbessern". Es stellt sich heraus, dass wir eine Studie durchführen müssen, in der es eine Kontrollgruppe, mindestens eine Testgruppe und einen Zielindikator geben sollte.

Für die Testgruppe zeigen wir eine alternative Version der Zahlungsseite. Darauf wollen wir den Text ändern, den Rabatt hervorheben, das Bild ersetzen - und das alles für Nutzer aus Eurasien, damit sie mehr kaufen. Und für Benutzer aus Amerika wollen wir nichts ändern. 

Wir werden Ziele haben. Nehmen wir die grundlegenden:

  • ARPU (durchschnittlicher Umsatz pro Benutzer) - der Gewinn, den wir durchschnittlich vom Benutzer erhalten; 
  • Anzahl der Klicks auf CTA-Elemente (Call to Action) - Schaltflächen und Links auf der Zahlungsseite. 

Technische Aufgabe


Es ist geplant, drei Elemente auf der Seite gleichzeitig zu ändern: Text, Schaltfläche und Bild mit Rabattinformationen.



Es wird ziemlich schwierig sein zu verstehen, welche dieser Änderungen das Ergebnis beeinflusst haben, wenn sie gleichzeitig getestet werden. Vielleicht stößt der neue Text die Benutzer ab und führt zu einer Verringerung der Anzahl der Einkäufe, aber das Hervorheben des Rabatts erhöht ihn: Als Ergebnis erhalten wir Null. Entwicklungsressourcen werden verschwendet und die Arbeitshypothese wird abgelehnt. 

Deshalb werden wir dies nicht tun. Wir lassen nur eine Änderung zum Testen übrig - die Zuteilung von Rabatten. 


Erster Test


Der Plan ist folgender: Wir teilen Benutzer in zwei gleiche Gruppen auf und warten auf das Ergebnis. Wenn wir es erhalten, werden wir die Indikatoren in den Kontroll- und Testgruppen vergleichen. 

Alles sieht ziemlich einfach aus: Wir teilen Benutzer in gerade und ungerade ein und schauen uns dann die Statistiken an. 

Wir schreiben den Code:

if (userId % 2 == 1) {
    showNewAwesomeFeature();
}

Wir freuen uns auf ein paar Wochen: Die Ergebnisse sind erstaunlich! ARPU um 100% erhöht! Die Leute klicken, bezahlen, der Produktmanager bittet darum, die Änderung überhaupt schnell einzuführen. 



Wir schalten es ein, noch ein paar Wochen vergehen, aber es gibt keine Ergebnisse. Der Gesamtgewinn hat sich nicht erhöht. 

Was machen wir falsch?

Wir wählen eine Testgruppe aus


Wir haben die Benutzer einfach in zwei gleiche Gruppen aufgeteilt und den Test ausgeführt. Dies ist jedoch nicht möglich. Immerhin hat sich nur für Nutzer aus Eurasien etwas geändert. Und wir haben viel weniger davon als Benutzer aus Amerika. Daher stellte sich heraus, dass ein plötzlicher Anstieg der Benutzeraktivität aus Amerika die Ergebnisse unseres Tests beeinflusste, obwohl sie in Wirklichkeit nicht die besten waren.

Fazit: Wählen Sie in der Testgruppe immer nur die Benutzer aus, für die die Änderungen implementiert sind.

Lassen Sie uns unseren Code korrigieren:

if (user.continent === ‘eurasia’ && userId % 2 == 1) {
    showNewAwesomeFeature();
}

Jetzt sollte alles so funktionieren wie es sollte! Führen Sie den Test aus. Wir warten auf ein paar Wochen.



Passiert! ARPU ist um 80% gestiegen! Stellen Sie die Änderung allen Benutzern zur Verfügung. 

Und ... nach der gleichen Zeit sehen die Grafiken wieder nicht so aus, wie wir es geplant haben.

Statistische Signifikanz berechnen


Der Test kann nicht einfach „nach ein paar Wochen“ abgebrochen werden: Die erzielten Ergebnisse sind möglicherweise ungenau. Je weniger sich die Metrik, der wir folgen, geändert hat und je weniger Personen an dem Test teilnehmen, desto wahrscheinlicher ist es, dass er zufällig ist.  

Diese Wahrscheinlichkeit kann berechnet werden. Der Wert, der es bezeichnet, heißt p-Wert. Ich werde dir sagen, wie es funktioniert.

Während eines Tests besteht die Möglichkeit, zufällige Ergebnisse zu erhalten. Beispielsweise können Benutzer, die die Website besucht haben, ungleich verteilt sein - und das gesamte zahlende Publikum fällt in eine der Gruppen. In realen Tests ist der Unterschied in den Metriken normalerweise nicht so groß: Es ist schwierig oder sogar unmöglich, das Problem in den Diagrammen zu bemerken, und auf statistische Tests kann nicht verzichtet werden. Insbesondere müssen wir die Wahrscheinlichkeit festlegenFehler der ersten und zweiten Art - mit anderen Worten, die Wahrscheinlichkeit, Änderungen zu finden, wo sie nicht existieren, und umgekehrt, sie nicht zu finden, wenn sie existieren. Abhängig vom Wert der Metrik und den festgelegten Wahrscheinlichkeiten benötigen wir eine unterschiedliche Anzahl von Benutzern.

Sie können es mit dem Online-Rechner berechnen : Geben Sie die aktuellen und Zielwerte der überwachten Metriken an - Sie erhalten die erforderliche Anzahl von Benutzern für den Test und umgekehrt.


Berechnung für die Umrechnung bei 10% und Änderungen bei 0,2% gegenüber dem aktuellen Wert.

Jetzt haben wir alle erforderlichen Daten erhalten und wissen, wann der Test abgebrochen werden muss. Es gibt keine Hindernisse mehr.

Lassen Sie uns unseren A / B-Test durchführen und die Ergebnisse betrachten.



Diesmal sind die Ergebnisse eher der Wahrheit ähnlich, aber immer noch ausgezeichnet: ARPU-Wachstum um 55%. 

Wir stoppen den Test, wenden die Testgruppe überhaupt an. Und ... die Metriken fallen wieder. Warum? 

Überprüfen Sie die Anzahl der Benutzer


Lassen Sie uns herausfinden, wie viele Benutzer unsere Website tatsächlich besucht haben, während Tests durchgeführt wurden. Gemessen an den Protokollen waren es nur 10% unserer Testgruppen, aber wir haben dies nicht berücksichtigt. 

Wenn Ihre DAU (die Anzahl der eindeutigen Benutzer pro Tag) 1000 Personen beträgt, bedeutet dies nicht, dass Sie in zehn Tagen 10.000 Benutzer im Test haben. Protokollieren Sie immer echte Treffer im Test (Testtreffer) und zählen Sie nur diese.

Wir implementieren einfache Logik. Für jeden Benutzer, der die Site besucht, senden wir eine Anfrage mit den Namen der A / B-Test- und Kontrollgruppe an den Server. Dank dessen wissen wir genau, wie viele Benutzer uns besucht haben, und wir werden uns nicht mehr irren.

Wir starten den A / B-Test.

Die Ergebnisse sind ausgezeichnet. Wir verdienen wieder mehr Geld! Wir schalten unseren Test für alle ein - und wieder geht etwas schief: Nach ein paar Wochen sind die Metriken wieder niedriger als vorhergesagt. 

Denken Sie daran, wir haben damit begonnen, Treffer für alle Benutzer zu senden, die die Website besucht haben. TU das niemals. Treffer sollten nur an Benutzer gesendet werden, die mit dem getesteten Teil der Ressource interagiert haben. Und je genauer Sie sie definieren, desto besser. 

Glücklicherweise ist dies leicht zu überprüfen. Dazu können Sie einen A / A / B-Test durchführen. Es sieht aus wie ein A / B-Test, aber in diesem Fall haben Sie zwei Kontrollgruppen und eine Testgruppe. Warum wird das benötigt? Wenn der Zeitpunkt für das Senden eines Treffers falsch ausgewählt wurde, fallen Benutzer, die nicht mit dem getesteten Teil der Website interagiert haben, in den Test. In diesem Fall gibt es große Unterschiede in den Metriken in den Gruppen A und A, und Sie können sofort verstehen, dass etwas nicht stimmt. 

Wir starten den A / A / B-Test. 

Lassen Sie in Gruppe B 50% der Benutzer und teilen Sie die restlichen 50% gleichmäßig auf die Gruppen A und A auf (wir nennen sie control und control_check). Ja, die Ergebnisse müssen länger warten, aber wenn die Ergebnisse der Gruppen A und A konvergieren, werden Sie verstehen, ob der Treffer korrekt gesendet wird.



Die Ergebnisse sind bescheiden (Wachstum von nur 20%), aber realistisch. Lassen Sie uns die Änderung überhaupt rollen. 

Alles funktioniert perfekt! 

Aber nach einem Monat fielen die Metriken wieder.

Testen, was wir kontrollieren können


Es stellt sich heraus, dass unsere Drittanbieter-Abrechnung auch einen A / B-Test durchgeführt hat, der sich direkt auf unsere Ergebnisse auswirkte. Befolgen Sie daher immer die Produktionsergebnisse und versuchen Sie zu testen, was Sie vollständig kontrollieren.

Gesamt


A / B-Tests können das Produktwachstum fördern. Um den Tests zu vertrauen, ist es jedoch wichtig, sie korrekt durchzuführen und immer die Ergebnisse zu überprüfen. Mit diesem Ansatz können Sie Ihr Produkt qualitativ testen und Hypothesen testen, bevor alle Metriken gelöscht werden.

  • Überprüfen Sie immer die Zielgruppe.
  • Treffer einreichen.
  • Senden Sie die richtigen Treffer.
  • Testen Sie, was Sie vollständig kontrollieren.
  • /-!

All Articles