Ich bin mir sicher, dass Sie schon einmal von Streifen gehört oder eine App dafür verwendet haben. Aber haben Sie sich jemals gefragt, warum Streaks so beliebt und wirkungsvoll sind? Nun ja, es liegt auf der Hand, dass Apps so viel Aufmerksamkeit wie möglich benötigen, aber abgesehen davon wussten Sie, dass das Engagement der Benutzer um 60 % stieg, als die beliebte Lern-App Duolingo iOS-Widgets zur Anzeige von Streifen einführte. Sechzig Prozent stellen eine massive Verhaltensänderung dar und zeigen, wie „Streak“-Muster genutzt werden können, um das Engagement zu steigern und die Nutzung zu steigern. Im einfachsten Fall ist ein Streak die Anzahl aufeinanderfolgender Tage, an denen ein Benutzer eine bestimmte Aktivität ausführt. Manche Leute definieren es auch als eine „gamifizierte“ Gewohnheit oder als eine Metrik, die eine konsistente Nutzung fördern soll. Doch Streaks sind mehr als nur eine Metrik oder ein Datensatz in einer App. es ist eher psychologischer Natur. Mit den richtigen Faktoren lässt sich der menschliche Instinkt leicht beeinflussen. Schauen Sie sich diese drei Faktoren an: Fortschritt, Stolz und Angst, etwas zu verpassen (allgemein als FOMO bezeichnet). Was haben all diese gemeinsam? Bemühung. Je mehr Mühe Sie in etwas stecken, desto mehr prägt es Ihre Identität, und so gelangt Streaks auch in die Welt der Verhaltenspsychologie. Mit großer Macht geht nun große Verantwortung einher, und deshalb haben Streaks auch eine dunkle Seite. In diesem Artikel gehen wir auf die Psychologie, UX und Designprinzipien ein, die hinter dem Aufbau eines effektiven Streak-Systems stehen. Wir werden (1) untersuchen, warum unser Gehirn fast instinktiv auf Streak-Aktivitäten reagiert, (2) wie man Streaks so gestaltet, dass sie den Benutzern wirklich helfen, und (3) die technische Arbeit, die mit der Erstellung eines Streak-Musters verbunden ist. Die Psychologie hinter Streaks Um ein effektives Streak-System zu entwerfen und aufzubauen, müssen wir verstehen, wie es mit der Verkabelung unseres Gehirns übereinstimmt. Was macht es zum Beispiel so effektiv, dass wir uns so sehr dafür einsetzen, unsere Streaks zu schützen? Es gibt drei interessante, gut dokumentierte psychologische Prinzipien, die unterstützen, was Streaks so kraftvoll und süchtig machend macht. Verlustaversion Dies ist wahrscheinlich die stärkste Kraft hinter Streaks. Ich sage das, weil man das im Leben meistens kaum vermeiden kann. Stellen Sie sich das so vor: Wenn Ihnen ein Freund 100 Dollar gibt, wären Sie glücklich. Aber wenn Sie 100 Dollar aus Ihrem Portemonnaie verlieren würden, wäre das noch viel schlimmer. Das emotionale Gewicht dieser Situationen ist nicht gleich. Ein Verlust tut viel mehr weh als ein Gewinn sich gut anfühlt. Gehen wir noch einen Schritt weiter und sagen wir: Ich gebe Ihnen 100 $ und bitte Sie, ein Glücksspiel zu spielen. Es besteht eine 50-prozentige Chance, dass Sie weitere 100 $ gewinnen, und eine 50-prozentige Chance, dass Sie die ursprünglichen 100 $ verlieren. Würdest du es nehmen? Ich würde nicht. Die meisten Leute würden das nicht tun. Das ist Verlustaversion. Wenn man darüber nachdenkt, ist es logisch, es ist verständlich, es ist menschlich. Das Konzept hinter der Verlustaversion besteht darin, dass wir den Schmerz, etwas zu verlieren, doppelt so stark empfinden wie die Freude, etwas Gleichwertiges zu gewinnen. Aus psychologischer Sicht bleiben Verluste länger bestehen als Gewinne. Sie sehen wahrscheinlich, wie dies mit Streifen zusammenhängt. Um einen spürbaren Streifen aufzubauen, ist Anstrengung erforderlich; Wenn ein Streak wächst, beginnt die Motivation dahinter zu schwinden; oder genauer gesagt, es beginnt zweitrangig zu werden. Hier ist ein Beispiel: Angenommen, Ihr Freund hat eine dreitägige Serie, in der er seine „Move Rings“ auf seiner Apple Watch schließt. Sie haben fast nichts zu verlieren, außer dass sie ihr Ziel erreichen und konsequent sein wollen. Gleichzeitig haben Sie eine beeindruckende Erfolgsserie von 219 Tagen hinter sich. Die Chancen stehen gut, dass Sie in der Angst gefangen sind, es zu verlieren. Wahrscheinlich denken Sie zu diesem Zeitpunkt noch nicht über den Erfolg nach; Es geht vielmehr darum, den investierten Aufwand zu schützen, und das ist Verlustaversion. Duolingo erklärt, wie die Verlustaversion dazu beiträgt, dass ein Benutzer selbst an den faulsten Tagen nicht bereit ist, eine lange Ader abzubrechen. In gewisser Weise kann eine Streak zur Gewohnheit werden, wenn sich Verlustaversion einstellt. Das Fogg-Verhaltensmodell (B = MAP) Nachdem wir nun die Angst verstanden haben, die in längere Streaks investierte Anstrengung zu verlieren, stellt sich eine andere Frage: Was bringt uns überhaupt dazu, die Sache Tag für Tag zu tun, noch bevor der Streak groß wird? Darum geht es beim Fogg-Verhaltensmodell. Es ist relativ einfach. Ein Verhalten (B) tritt nur auf, wenn drei Faktoren – Motivation (M), Fähigkeit (A) und Aufforderung (P) – gleichzeitig übereinstimmen. Somit gilt die Gleichung B=MAP. Wenn einer dieser Faktoren in diesem Moment fehlt, auch nur einer, wird das Verhalten nicht auftreten. Damit ein Streak-System effizient und wiederkehrend ist, müssen alle drei Faktoren vorhanden sein: MotivationDies ist fragil und nicht ständig vorhanden. Es gibt Tage, da bist du esSie sind voller Tatendrang, Spanisch zu lernen, und an Tagen verspüren Sie nicht einmal die geringste Willenskraft, die Sprache zu lernen. Die Motivation allein, eine Gewohnheit aufzubauen, ist unzuverlässig und vom ersten Tag an ein aussichtsloser Kampf. FähigkeitUm die Einschränkungen der Motivation zu kompensieren, ist die Fähigkeit von entscheidender Bedeutung. In diesem Zusammenhang bedeutet Fähigkeit die Leichtigkeit des Handelns, d. h. die Anstrengung ist so einfach, dass es unrealistisch ist zu sagen, dass sie nicht möglich ist. Die meisten Apps nutzen dies absichtlich. Bei Apple Fitness müssen Sie lediglich eine Minute pro Stunde stehen, um einen Tick für Ihr Stand-Ziel zu erhalten. Duolingo benötigt nur eine abgeschlossene Lektion. Diese Aufgaben erfordern keinen allzu großen Aufwand. Die Hürde ist so niedrig, dass Sie es selbst an Ihren schlimmsten Tagen schaffen. Aber die gemeinsame Anstrengung einer andauernden Serie bringt den Gedanken ins Spiel, diese Serie zu verlieren. PromptDamit ist die Gleichung vervollständigt. Menschen sind von Natur aus vergesslich, also können uns unsere Fähigkeiten zu 90 % dorthin bringen. Aber eine Aufforderung erinnert uns daran, zu handeln. Streifen sind von Natur aus dauerhaft, daher müssen Benutzer ständig daran erinnert werden, zu handeln. Um zu sehen, wie wirkungsvoll eine Eingabeaufforderung sein kann, hat Duolingo einen A/B-Test durchgeführt, um zu sehen, ob ein kleines rotes Abzeichen auf dem App-Symbol die konsistente Nutzung steigert. Es führte zu einem Anstieg der täglich aktiven Nutzer um 6 %. Nur ein rotes Abzeichen. Modellbeschränkungen Abgesehen davon gibt es eine Einschränkung des Fogg-Modells: Kritiker und moderne Forschung haben festgestellt, dass ein Design, das sich zu stark auf Aufforderungen wie aggressive Benachrichtigungen verlässt, zu geistiger Ermüdung führen kann. Ständige Benachrichtigungen und Überstunden können zur Abwanderung von Benutzern führen. Achten Sie also darauf. Der Zeigarnik-Effekt Wie fühlen Sie sich, wenn Sie eine Projektaufgabe halb erledigt lassen? Das irritiert viele Menschen, weil unerledigte Aufgaben mehr mentalen Raum einnehmen als die Dinge, die wir erledigen. Wenn etwas erledigt und wieder verschwunden ist, neigen wir dazu, es zu vergessen. Wenn etwas unerledigt bleibt, lastet es oft auf unserem Gemüt. Genau aus diesem Grund verwenden digitale Produkte künstliche Fortschrittsindikatoren, wie die Profilvervollständigungsleiste von Upwork, um einen Benutzer darüber zu informieren, dass sein Profil nur „60 % vollständig“ ist. Es regt den Benutzer dazu an, das zu Ende zu bringen, was er begonnen hat.
Schauen wir uns ein anderes Beispiel an. Sie haben fünf Aufgaben in einer To-Do-Listen-App und am Ende des Tages markieren Sie nur vier davon als erledigt. Viele von uns werden sich wegen dieser einen unvollendeten Aufgabe unvollendet fühlen. Genau das ist der Zeigarnik-Effekt. Der Zeigarnik-Effekt wurde von der Psychologin Bluma Zeigarnik demonstriert, die beschrieb, dass wir dazu neigen, unvollständige Aufgaben länger in unserem Gedächtnis aktiv zu behalten als erledigte Aufgaben. Ein Streifenmuster greift dies im UX-Design auf natürliche Weise auf. Nehmen wir an, Sie befinden sich am 63. Tag einer Lernphase. An diesem Punkt befinden Sie sich in einem anhaltenden Muster unerledigter Geschäfte. Ihr Gehirn würde es selten vergessen, da es im Hinterkopf sitzt. An diesem Punkt wird Ihr Gehirn zu demjenigen, der Ihnen Benachrichtigungen sendet. Wenn man diese psychologischen Kräfte zusammenfasst, beginnt man wirklich zu verstehen, warum Streaks nicht nur eine normale App-Funktion sind; Sie sind in der Lage, menschliches Verhalten zu verändern. Aber irgendwann – ich kann nicht genau sagen, wann, da es bei jedem anders ist – erreichen die Dinge einen Punkt, an dem sich die Phase von „Spaß“ zu etwas entwickelt, von dem man glaubt, dass man es sich nicht leisten kann, es zu verlieren. Sie wollen doch nicht, dass 58 Tage Mühe umsonst sind, oder? Das macht ein Streak-System effektiv. Wenn man es richtig macht, helfen Streaks den Benutzern, erstaunliche Gewohnheiten zu entwickeln, die ein Ziel erreichen. Es kann sein, dass Sie täglich lesen oder regelmäßig ins Fitnessstudio gehen. Diese wiederholten (manchmal kleinen) Handlungen verstärken sich mit der Zeit und machen sich in unserem täglichen Leben bemerkbar. Aber jede Medaille hat zwei Seiten. Der schmale Grat zwischen Gewohnheit und Zwang Wenn Sie mitverfolgt haben, können Sie bereits erkennen, dass Streak-Systeme eine dunkle Seite haben. Bei der Gewohnheitsbildung geht es um die Beständigkeit mit einem wiederholten Ziel. Zwang hingegen ist die konsequente Arbeit an einem Ziel, das nicht mehr benötigt wird, aber aus Angst oder Druck festgehalten wird. Es ist ein hauchdünner Grat. Sie putzen jeden Morgen Ihre Zähne, ohne darüber nachzudenken; Es geschieht automatisch und instinktiv, mit dem klaren Ziel, einen guten Atem zu haben. Das ist eine Ader, die zu einer guten Angewohnheit wird. Ein ethisches Streak-System gibt den Benutzern Raum zum Atmen. Wenn Sie morgens aus irgendeinem Grund nicht putzen, können Sie dies auch mittags tun. Unvollkommenheit ist erlaubt, ohne befürchten zu müssen, dass eine lange Anstrengung verloren geht. Der Zwang nimmt den umgekehrten Weg: Ein Streik macht Sie ängstlich, Sie fühlen sich schuldig oder sogar erschöpft und manchmal haben Sie das Gefühl, trotz all Ihrer Anstrengungen nichts erreicht zu habenarbeiten. Sie handeln nicht, weil Sie es wollen, sondern weil Sie unbewusst Angst davor haben, dass Ihr Fortschritt auf Null zurückgesetzt wird. Jemand hat es sogar perfekt beschrieben: „Ich hatte das Gefühl, dass ich schummele, aber es war mir einfach egal. Ich bin nichts ohne meine Ader.“ Dies zeigt, welche extremen Hold Streaks eine Person haben kann. In dem Maße, in dem Benutzer beginnen, ihr Selbstwertgefühl an eine willkürliche Metrik zu binden und nicht an das ursprüngliche Ziel oder den Grund, warum sie den Streak überhaupt begonnen haben. Der Streak wird zu dem, was er ist, nicht nur zu dem, was er tut. Ein gut konzipiertes ethisches Streak-System sollte sich für den Benutzer als Ermutigung und nicht als Druck oder Verpflichtung anfühlen. Dabei geht es um das Gleichgewicht von intrinsischer und extrinsischer Motivation. Extrinsische Motivation (externe Belohnungen, Vermeidung von Bestrafung) kann den Benutzern den Einstieg erleichtern, aber intrinsische Motivation (die Aufgabe für ein persönliches Ziel erledigen, z. B. Spanisch lernen, weil man wirklich mit einem geliebten Menschen kommunizieren möchte) ist für ein langfristiges Engagement stärker. Ein gutes System sollte auf intrinsische Motivation ausgerichtet sein und extrinsische Elemente sorgfältig einsetzen, d. h. Benutzer daran erinnern, wie weit sie gekommen sind, und ihnen nicht mit dem drohen, was sie verlieren könnten. Auch hier ist es ein schmaler Grat. Ein einfacher Test beim Entwerfen eines Streak-Systems besteht darin, sich etwas Zeit zu nehmen und darüber nachzudenken, ob Ihre Produkte Geld verdienen, indem sie Lösungen für die von Ihrem Produkt geschaffenen Ängste verkaufen. Wenn ja, besteht eine hohe Wahrscheinlichkeit, dass Sie Benutzer ausnutzen. Die nächste Frage lautet also: Wenn ich mich für die Verwendung von Streak entscheide, wie gestalte ich es so, dass es den Benutzern wirklich dabei hilft, ihre Ziele zu erreichen? Die UX von Good Streak System Design Ich glaube, dass hier die meisten Projekte entweder ein effektives Streak-System schaffen oder es komplett vermasseln. Lassen Sie uns einige UX-Prinzipien eines guten Streak-Designs durchgehen. Sorgen Sie dafür, dass es mühelos bleibt Sie haben das wahrscheinlich schon einmal gehört, vielleicht aus Büchern wie Atomic Habits, aber es ist erwähnenswert, dass eine der einfachsten Möglichkeiten, Gewohnheiten zu entwickeln, darin besteht, die Aktion klein und einfach zu gestalten. Dies ähnelt dem Fähigkeitsfaktor, den wir im Rahmen des Fogg-Verhaltensmodells besprochen haben. Die erste Regel bei jedem Streak-Design sollte darin bestehen, die erforderlichen Maßnahmen so gering wie möglich zu halten und dennoch Fortschritte zu erzielen. Wenn eine tägliche Aktion Willenskraft erfordert, um sie abzuschließen, wird diese Aktion nicht länger als fünf Tage dauern. Warum? Man kann nicht fünf Tage hintereinander motiviert sein. Ein typisches Beispiel: Wenn Sie eine Meditations-App betreiben, müssen Sie die Benutzer nicht durch eine 20-minütige Sitzung zwingen, nur um den Streak aufrechtzuerhalten. Versuchen Sie stattdessen eine einzelne Minute, vielleicht sogar nur dreißig Sekunden. Wie das Sprichwort sagt: Kleine Wassertropfen machen den gewaltigen Ozean aus. Kleine Anstrengungen führen mit der Zeit zu großen Erfolgen. Das sollte das Ziel sein: Reibungen beseitigen, insbesondere wenn der Moment schwierig sein könnte. Wenn Benutzer gestresst oder überfordert sind, machen Sie ihnen klar, dass es schon als Aufwand gilt, wenn sie nur für ein paar Sekunden da sind. Geben Sie klares visuelles Feedback Der Mensch ist von Natur aus visuell. Meistens müssen wir etwas sehen, um es zu glauben; Es besteht das Bedürfnis, Dinge zu visualisieren, um sie besser zu verstehen und ins rechte Licht zu rücken. Aus diesem Grund verwenden Streifenmuster häufig visuelle Elemente wie Diagramme, Häkchen, Fortschrittsringe und Gitter, um den Aufwand zu visualisieren. Schauen Sie sich das Beitragsdiagramm von GitHub an. Es ist eine einfache Visualisierung der Konsistenz. Doch Entwickler atmen es wie Sauerstoff ein.
Der Schlüssel liegt nicht darin, ein Streak-System abstrakt erscheinen zu lassen. Es sollte sich echt und verdient anfühlen. Beispielsweise verwenden Duolingo und die Fitness-Aktivitätsringe von Apple nach Abschluss eines Streaks klare Animationsdesigns, und GitHub zeigt historische Daten zur Konsistenz eines Benutzers im Laufe der Zeit an.
Nutzen Sie gutes Timing Ich habe bereits erwähnt, dass Menschen von Natur aus im Allgemeinen vergesslich sind und dass Aufforderungen dazu beitragen können, den Schwung aufrechtzuerhalten. Ohne Aufforderung vergessen die meisten neuen Benutzer, weiterzumachen. Das Leben kann hektisch werden, die Motivation verschwindet und Dinge passieren. Sogar langjährige Benutzer profitieren von Eingabeaufforderungen, obwohl sie meist bereits in der Gewohnheitsschleife gefangen sind. Dennoch kann es passieren, dass selbst der engagierteste Mensch versehentlich einen Tag verpasst. Ihr Streak-System braucht auf jeden Fall Erinnerungen. Die am häufigsten verwendeten sofortigen Erinnerungen sind Push-Benachrichtigungen. Bei der Arbeit mit Push-Benachrichtigungen kommt es wirklich auf das Timing an. Auch die Art der App spielt eine Rolle. Das Senden einer Benachrichtigung um 9 Uhr morgens mit der Meldung „Sie haben heute nicht geübt“ ist für eine Lern-App einfach seltsam, da viele am Tag bereits Dinge zu erledigen haben, bevor sie überhaupt daran denken, eine Lektion zu beenden. Wenn wir jedoch über eine Fitness-App sprechen, dannist sinnvoll und es wird vielleicht sogar erwartet, dass man früher am Tag daran erinnert wird. Push-Benachrichtigungen variieren erheblich je nach App-Kategorie. Fitness-Apps erzielen beispielsweise eine höhere Interaktion mit Benachrichtigungen am frühen Morgen (7–8 Uhr), während Produktivitäts-Apps am frühen Mittag möglicherweise eine bessere Leistung erbringen. Der Schlüssel liegt darin, das Timing Ihrer App anhand des Verhaltens Ihrer Benutzer A/B-Tests zu unterziehen, anstatt davon auszugehen, dass es eine Einheitslösung gibt. Was für eine Meditations-App funktioniert, funktioniert möglicherweise nicht für einen Coding-Tracker. Andere Eingabeaufforderungsmethoden sind rote Punkte auf dem App-Symbol und sogar App-Widgets. Studien gehen unterschiedlich aus, aber die durchschnittliche Person entsperrt ihr Gerät zwischen 50 und 150 Mal am Tag (PDF). Wenn ein Benutzer jedes Mal, wenn er sein Telefon entsperrt, einen roten Punkt in einer App oder einem Widget sieht, der auf einen aktuellen Streak hinweist, erhöht dies das Engagement. Übertreiben Sie es einfach nicht; Die Aufforderung sollte als Erinnerung und nicht als Nörgler dienen. Feiern Sie Meilensteine Ein Streak-System sollte versuchen, Meilensteine zu feiern, um die Emotionen neu zu entfachen, insbesondere bei Benutzern, die sich tief in einem Streak befinden. Wenn ein Benutzer Tag 7, Tag 30, Tag 50, Tag 100, Tag 365 erreicht, sollten Sie eine große Sache daraus machen. Erkennen Sie Erfolge an – insbesondere für langjährige Benutzer.
Wie wir bereits gesehen haben, hat Duolingo das herausgefunden und eine animierte Grafik implementiert, die Meilensteine mit Konfetti feiert. Einige Plattformen gewähren sogar erhebliche Bonusprämien, die die Bemühungen der Benutzer bestätigen. Und das kann für Apps von Vorteil sein, da Benutzer dazu neigen, ihre Meilensteine öffentlich in sozialen Medien zu teilen. Ein weiterer Vorteil ist die Vorfreude, die vor dem Erreichen von Meilensteinen entsteht. Es geht nicht nur darum, den Streak endlos am Leben zu erhalten; Benutzer können sich auf etwas freuen. Nutzen Sie Grace-Mechanismen Das Leben ist unvorhersehbar. Die Leute werden abgelenkt. Jedes gute Streak-System sollte mit Unvollkommenheiten rechnen. Eine der größten psychologischen Bedrohungen für ein Streak-System ist das harte Zurücksetzen auf Null nach nur einem einzigen verpassten Tag. Ein „ethisches“ Streak-System sollte dem Benutzer etwas Spielraum verschaffen. Nehmen wir an, Sie haben eine 90-tägige Lernserie im Schach. Sie sind drei gute Monate lang konstant geblieben, und eines Tages geht Ihr Telefon während der Reise kaputt, und auf einmal wird aus 90 0 – alles, all diese Mühe ist gelöscht und der Fortschritt verschwindet. Der Benutzer könnte völlig am Boden zerstört sein. Der Gedanke, es von Grund auf neu aufzubauen, ist so demoralisierend, dass sich der Aufwand nicht lohnt. Im schlimmsten Fall könnte ein Benutzer die App verlassen, weil er das Gefühl hat, ein Versager zu sein. Erwägen Sie, Ihrem Streak-System einen „Grace“-Mechanismus hinzuzufügen:
Streak FreezeErmöglichen Sie es Benutzern, absichtlich einen Tag ohne Strafen zu verpassen. Verlängerung: Warten Sie einige Stunden (2–3) über die übliche Frist hinaus, bevor ein Reset ausgelöst wird. Decay-ModelleAnstelle eines Hard-Resets verringert sich der Streak um einen kleinen Betrag, z. B. werden pro verpasstem Tag 10 Tage vom Streak abgezogen.
Verwenden Sie einen ermutigenden Ton Vergleichen wir zwei Nachrichten, die Benutzern angezeigt werden, wenn ein Streak unterbrochen wird:
„Du hast deine 42-Tage-Serie verloren. Fang von vorne an.“ „Du bist 42 Tage am Stück aufgetaucht. Das ist ein unglaublicher Fortschritt! Möchtest du es noch einmal versuchen?“
Beide vermitteln die gleichen Informationen, aber die emotionale Wirkung ist unterschiedlich. Die erste Nachricht würde höchstwahrscheinlich dazu führen, dass sich ein Benutzer demoralisiert fühlt und ihn zum Aufgeben veranlasst. Die zweite Nachricht feiert das bereits Erreichte und ermutigt den Benutzer sanft, es noch einmal zu versuchen. Herausforderungen beim Design von Streak-Systemen Bevor wir auf die technischen Einzelheiten des Aufbaus eines Streak-Systems eingehen, sollten Sie sich der Herausforderungen bewusst sein, denen Sie möglicherweise gegenüberstehen. Die Dinge können erwartungsgemäß kompliziert werden. Umgang mit Zeitzonen Es gibt einen Grund, warum der Umgang mit Uhrzeit und Datum zu den schwierigsten Konzepten gehört, mit denen Entwickler zu tun haben. Es gibt Formatierung, Internationalisierung und vieles mehr zu berücksichtigen. Lassen Sie mich Folgendes fragen: Was zählt als Tag? Wir wissen, dass auf der Welt unterschiedliche Zeitzonen gelten, und als ob das nicht genug wäre, gibt es in einigen Regionen zweimal im Jahr Sommerzeit (DST). Wo fangen Sie überhaupt an, diese Randfälle zu behandeln? Was gilt als „Anfang“ von morgen? Einige Entwickler versuchen dies zu vermeiden, indem sie eine zentrale Zeitzone wie UTC verwenden. Für einige Benutzer würde dies zu korrekten Ergebnissen führen, für andere könnte es jedoch um eine Stunde, zwei Stunden oder mehr abweichen. Diese Inkonsistenz ruiniert die Benutzererfahrung. Den Benutzern ist es weniger wichtig, wie Sie mit der Zeit hinter den Kulissen umgehen. Sie erwarten lediglich, dass, wenn sie um 23:40 Uhr eine Streak-Aktion ausführen, diese genau zu diesem Zeitpunkt in ihrem Kontext registriert wird. Sie sollten „einen Tag“ basierend auf der lokalen Zeitzone des Benutzers definieren, nicht auf der Serverzeit. Klar, Sie können es ruhig angehen lassenLeiten Sie Streaks global für alle Benutzer um Mitternacht UTC weiter und setzen Sie sie zurück, aber Sie schaffen in hohem Maße Ungerechtigkeit. Jemand in Kalifornien hat immer acht zusätzliche Stunden Zeit, um seine Aufgabe zu erledigen, als jemand, der in London lebt. Das ist ein ungerechtfertigter Designfehler, der bestimmte Benutzer aufgrund ihres Standorts bestraft. Und was ist, wenn diese Person in London nur zu Besuch ist, eine Aufgabe erledigt und dann in eine andere Zeitzone zurückkehrt? Eine wirksame Lösung für all diese Probleme besteht darin, Benutzer während des Onboardings (vorzugsweise nach der ersten Authentifizierung) aufzufordern, ihre Zeitzone explizit festzulegen. Es empfiehlt sich, einen subtilen Hinweis hinzuzufügen, dass die Bereitstellung von Zeitzoneninformationen nur dazu dient, dass die App den Fortschritt genau verfolgt, und nicht als persönlich identifizierbare Daten. Und es ist eine weitere gute Idee, dies zu einem veränderlichen Setting zu machen. Ich empfehle jedem, die Zeitzonenlogik in einer App nicht direkt zu handhaben. Verwenden Sie bewährte Datumsbibliotheken wie Moment.js oder pytz (Python) usw. Für etwas so Komplexes wie dieses ist es nicht nötig, das Rad neu zu erfinden. Verpasste Tage und Randfälle Eine weitere Herausforderung, über die Sie sich Sorgen machen sollten, sind unkontrollierbare Grenzfälle wie verschlafene Benutzer, Serverausfallzeiten, Verzögerungen, Netzwerkausfälle usw. Die Verwendung der Idee von Gnadenmechanismen, wie wir sie zuvor besprochen haben, kann hilfreich sein. Ein Kulanzfenster von zwei Stunden könnte sowohl dem Benutzer als auch dem Entwickler helfen, da Benutzer nicht streng für unkontrollierbare Lebensumstände bestraft werden. Für Entwickler sind Kulanzfenster hilfreich in den unkontrollierbaren Momenten, in denen der Server mitten in der Nacht ausfällt. Vertrauen Sie vor allem niemals dem Kunden. Validieren Sie immer serverseitig. Der Server sollte die einzige Quelle der Wahrheit sein. Betrugsprävention Auch dies kann ich nicht genug betonen: Stellen Sie sicher, dass Sie alles serverseitig validieren. Benutzer sind Menschen und Menschen könnten betrügen, wenn sie die Gelegenheit dazu bekommen. Es ist unvermeidlich. Sie könnten Folgendes versuchen:
Speichern aller Aktionen mit UTC-Zeitstempeln. Der Client kann seine Ortszeit senden, aber der Server kann diese sofort in UTC umwandeln und mit der Serverzeit vergleichen. Wenn der Zeitstempel des Clients verdächtig weit entfernt ist, kann das System ihn auf diese Weise als Fehler zurückweisen und die Benutzeroberfläche kann entsprechend reagieren. Verwenden Sie ereignisbasiertes Tracking. Mit anderen Worten: Speichern Sie eine Aufzeichnung jeder Aktion mit Metadaten, einschließlich Informationen wie der Benutzer-ID, der Art der durchgeführten Aktion sowie dem Zeitstempel und der Zeitzone. Dies hilft bei der Validierung.
Aufbau einer Streak-System-Engine Dies ist kein Code-Tutorial, daher werde ich vermeiden, Ihnen eine Menge Code zuzuschieben. Ich werde dies praktisch halten und beschreiben, wie die Dinge im Allgemeinen in Bezug auf Architektur, Ablauf und Zuverlässigkeit einer Streak-System-Engine funktionieren. Kernarchitektur Wie ich bereits mehrfach gesagt habe: Machen Sie den Server zur einzigen Quelle der Wahrheit für Streak-Daten. Die Architektur auf dem Server kann etwa so aussehen:
Speichern Sie die Daten jedes Benutzers in einer Datenbank. Speichern Sie den aktuellen Streak-Speicher (Standardwert 0) als Ganzzahl. Speichern Sie die Zeitzonenpräferenz, d. h. die IANA-Zeitzonenzeichenfolge (entweder implizit aus dem lokalen Zeitstempel oder explizit durch Aufforderung an den Benutzer, seine Zeitzone auszuwählen). Zum Beispiel „Amerika/New_York“. Behandeln Sie die gesamte Logik, um festzustellen, ob der Streak anhält oder abbricht, mit einer Zeitzonenprüfung, die relativ zur lokalen Zeitzone des Benutzers ist.
Inzwischen auf der Client-Seite:
Zeigt den aktuellen Streak an, der normalerweise vom Server abgerufen wird. Senden Sie die durchgeführte Aktion in Form von Metadaten an den Server, um zu überprüfen, ob der Benutzer tatsächlich eine qualifizierende Streak-Aktion abgeschlossen hat. Geben Sie visuelles Feedback basierend auf den Serverantworten.
Kurz gesagt, das Gehirn befindet sich auf dem Server und der Client dient der Anzeige und der Übermittlung von Ereignissen. Dies erspart Ihnen viele Ausfälle und Grenzfälle und erleichtert außerdem Aktualisierungen und Korrekturen. Der logische Fluss Lassen Sie uns eine exemplarische Vorgehensweise simulieren, wie eine minimal effiziente Streak-System-Engine funktionieren würde, wenn ein Benutzer eine Aktion ausführt:
Der Benutzer führt eine qualifizierende Streak-Aktion durch. Der Client sendet ein Ereignis als Metadaten an den Server. Dies könnte sein: „Benutzer X hat Aktion Y zum Zeitstempel Z abgeschlossen“. Der Server empfängt dieses Ereignis und führt eine grundlegende Validierung durch. Ist das ein echter Benutzer? Sind sie authentifiziert? Ist die Aktion gültig? Ist die Zeitzone konsistent? Wenn dies erfolgreich ist, ruft der Server die Streak-Daten des Benutzers aus der Datenbank ab. Konvertieren Sie dann den empfangenen Aktionszeitstempel in die lokale Zeitzone des Benutzers. Lassen Sie den Server die Kalenderdaten (keine Zeitstempel) in der lokalen Zeitzone des Benutzers vergleichen: Wenn es sich um denselben Tag handelt, ist die Aktion überflüssig und es gibt keine ÄnderungSträhne. Wenn es der nächste Tag ist, verlängert sich der Streak und erhöht sich um 1. Bei einer Lücke von mehr als einem Tag bricht der Streak ab. Hier können Sie jedoch die Gnadenmechanik anwenden. Wenn der Kulanzmechanismus verpasst wird, setzen Sie den Streak auf 1 zurück.
Wenn Sie historische Daten für Meilensteinerreichungen speichern möchten, aktualisieren Sie Variablen wie „längste Serie“ oder „Gesamtzahl der aktiven Tage“. Der Server aktualisiert dann die Datenbank und antwortet dem Client. Etwas in der Art:
{ „current_streak“: 48, „longest_streak“: 50, „total_active_days“: 120, „streak_extended“: wahr, }
Als weitere Maßnahme sollte der Server es entweder erneut versuchen oder ablehnen und den Client benachrichtigen, wenn während des Prozesses ein Fehler auftritt. Aufbau für Resilienz Wie bereits erwähnt, ist es ein schreckliches UX-Erlebnis, wenn Benutzer aufgrund von Fehlern oder Serverausfällen eine Serie verlieren, und die Benutzer erwarten nicht, dass sie dafür Schaden nehmen müssen. Daher sollte Ihr Streak-System über Sicherheitsvorkehrungen für diese Szenarien verfügen. Wenn der Server wegen Wartungsarbeiten (oder aus irgendeinem Grund) ausfällt, sollten Sie erwägen, ein vorübergehendes Zeitfenster mit zusätzlichen Stunden einzuplanen, um das Problem zu beheben, damit Maßnahmen verspätet eingereicht werden können und trotzdem zählen. Sie können Benutzer auch benachrichtigen, insbesondere wenn die Situation einen laufenden Streak beeinträchtigen könnte. Hinweis: Richten Sie eine Admin-Hintertür ein, über die Daten manuell wiederhergestellt werden können. Fehler sind unvermeidlich und einige Benutzer rufen Ihre App an oder wenden sich an den Support, weil ihr Streak aus einem Grund abgebrochen ist, den sie nicht kontrollieren können. Sie sollten in der Lage sein, die Streaks manuell wiederherzustellen, wenn der Benutzer nach der Untersuchung Recht hat. Fazit Eines bleibt klar: Streaks sind wirklich mächtig, weil die menschliche Psychologie auf einer grundlegenden Ebene funktioniert. Das beste Streak-System, das es gibt, ist das, über das Benutzer nicht bewusst nachdenken. Es ist zu einer Routine mit sofortigen Ergebnissen oder sichtbaren Fortschritten geworden, wie das Zähneputzen, das zur regelmäßigen Gewohnheit wird. Und ich sage es einfach: Nicht alle Produkte brauchen ein Streak-System. Sollten Sie wirklich Konsistenz erzwingen, nur weil Sie täglich aktive Benutzer möchten? Die Antwort könnte durchaus „Nein“ lauten.