ストリークについて聞いたことがある、またはストリークを含むアプリを使用したことがあるかと思います。しかし、なぜストリークがこれほど人気があり、強力なのか疑問に思ったことはありますか?そうですね、アプリができるだけ多くのユーザーの注目を集めたいという明白な理由がありますが、それはさておき、人気の学習アプリ Duolingo がストリークを表示する iOS ウィジェットを導入したとき、ユーザーのコミットメントが 60% 急増したことをご存知ですか。 60 パーセントは行動の大きな変化であり、「連続」パターンを使用してエンゲージメントを高め、使用を促進する方法を示しています。 最も基本的なストリークとは、ユーザーが特定のアクティビティを連続して完了した日数です。また、これを「ゲーム化された」習慣、または一貫した使用を奨励するために設計された指標と定義する人もいます。 しかし、連続記録は、アプリ内の指標や記録を超えています。それよりも心理的なものです。人間の本能は、適切な要因によって簡単に影響を受けます。進歩、プライド、そして逃すことへの恐怖 (一般に FOMO と呼ばれます) の 3 つの要素に注目してください。これらすべてに共通するものは何でしょうか?努力。何かに努力すればするほど、それがあなたのアイデンティティを形作っていきます。それが、行動心理学の世界にさまざまな影響を及ぼします。 さて、大きな力には大きな責任が伴います。そのため、ストリークには暗い側面があります。 この記事では、効果的なストリーク システムを構築するための心理学、UX、設計原則について説明します。 (1) なぜ私たちの脳がほぼ本能的にストリークの活動に反応するのか、(2) ユーザーを真に助ける方法でストリークを設計する方法、(3) ストリーク パターンの構築に関わる技術的な作業について見ていきます。 縞模様の背後にある心理 効果的なストリーク システムを設計して構築するには、それが私たちの脳の配線とどのように連携しているかを理解する必要があります。たとえば、ストリークを保護するためにこれほど熱心に取り組んでいると感じるほど、それがそれほど効果的になるのはなぜでしょうか? ストリークが非常に強力で中毒性がある理由を裏付ける、興味深い、十分に裏付けられた心理学の原則が 3 つあります。 損失回避 これはおそらく、ストリークの背後にある最も強力な力です。私がこれを言ったのは、人生においてこれを避けることはほとんど不可能だからです。 このように考えてみてください。友人があなたに 100 ドルをくれたら、あなたは幸せになるでしょう。しかし、財布から 100 ドルを失ったら、それはさらに大きな痛手となるでしょう。それらの状況の感情的な重みは同じではありません。失うことは利益を得るよりもはるかに苦痛です。 さらに話を進めて、100 ドルを渡してギャンブルをするように頼んだとします。さらに 100 ドルを獲得する確率は 50%、元の 100 ドルを失う確率は 50% です。取ってもらえますか?しません。ほとんどの人はそうは思わないでしょう。それが損失回避です。 考えてみれば、それは論理的であり、理解できることであり、人間的です。 損失回避の背後にある概念は、私たちは同じ価値のあるものを手に入れる喜びの 2 倍、何かを失う痛みを感じるというものです。心理学的に言えば、損失は利益よりも長く残ります。 これが縞模様とどのように関係しているかがわかるでしょう。目に見える筋を築くには努力が必要です。連続記録が成長するにつれて、その背後にある動機が薄れ始めます。より正確に言えば、それは二次的なものになり始めます。 例を示します。あなたの友人が Apple Watch の「ムーブリング」を 3 日間連続で閉じているとします。彼らは目標を達成し、一貫性を保ちたいという欲求以外に失うものはほとんどありません。同時に、219 日という驚異的な連続記録を達成しました。もしかしたら、それを失うかもしれないという恐怖に囚われている可能性があります。おそらく、この時点では成果については考えていません。それはむしろ、投資した努力を守ることであり、それが損失回避です。 Duolingo は、たとえ最も怠惰な日であっても、ユーザーが長い連続記録を破ることを躊躇する原因として、損失回避性がどのように寄与しているかを説明しています。ある意味、損失回避心が定着すると、連勝は習慣になる可能性があります。 フォッグ行動モデル (B = MAP) 長い連続記録に費やした労力が失われることへの恐怖は理解できたので、次の疑問は次のとおりです。そもそも、連続記録が大きくなる前に、毎日毎日そのことを行う理由は何でしょうか? それがフォッグ行動モデルの目的です。比較的簡単です。行動 (B) は、モチベーション (M)、能力 (A)、プロンプト (P) の 3 つの要素が同時に揃った場合にのみ発生します。したがって、方程式 B = MAP となります。 その時点でこれらの要素のいずれかが 1 つでも欠けていれば、その行動は起こりません。 したがって、ストリーク システムが効率的で反復的であるためには、次の 3 つの要素がすべて満たされている必要があります。 モチベーションこれは壊れやすく、常に存在するものではありません。あなたがいる日もありますスペイン語を学ぼうと躍起になっているのに、言語を学ぶ気力が微塵も感じられない日々。習慣を構築するというモチベーションだけでは信頼性が低く、初日から負け戦になります。 能力モチベーションの限界を補うためには、能力が重要です。この文脈での能力とは、行動の容易さを意味します。つまり、不可能であると言うのが非現実的であるほど努力が容易であることを意味します。ほとんどのアプリはこれを意図的に使用しています。 Apple Fitness では、1 時間に 1 分間立っているだけで、スタンドの目標に向けたティックを獲得できます。 Duolingo に必要なのは、完了したレッスンを 1 つだけ行うことです。これらのタスクにはそれほど多くの労力は必要ありません。障壁は非常に低いので、最悪の日でもそれを行うことができます。しかし、連勝記録が続いているからこそ、その連勝記録を失うという考えが生まれるのです。 プロンプトこれで方程式が完成します。人間は生まれつき忘れっぽいので、能力があれば 90% は達成できます。しかし、プロンプトは私たちに行動を促すものです。ストリークは設計上永続的なものであるため、ユーザーに行動するよう常に通知する必要があります。プロンプトがどれほど強力であるかを確認するために、Duolingo は A/B テストを実施し、アプリのアイコンに小さな赤いバッジが継続的な使用量を増加させるかどうかを確認しました。これにより、毎日のアクティブ ユーザー数が 6% 増加しました。ただの赤いバッジ。 モデルの制限事項 そうは言っても、フォッグ モデルには限界があり、批評家や最新の研究者は、攻撃的な通知などのプロンプトに過度に依存するデザインは精神的疲労を引き起こす危険があることに気づいています。絶え間ない通知と残業はユーザーの離脱を引き起こす可能性があります。だから、それに気をつけてください。 ツァイガルニク効果 プロジェクトのタスクを中途半端に終わらせたとき、あなたはどう感じますか?未完了のタスクは、完了したタスクよりも精神的なスペースを占めるため、これは多くの人をイライラさせます。何かが終わってなくなってしまうと、私たちはそれを忘れてしまう傾向があります。何かをやり残したままにしておくと、それが私たちの心に重くのしかかる傾向があります。 これがまさに、デジタル製品が Upwork のプロフィール完了バーのような人工的な進行状況インジケーターを使用して、プロフィールが「60% しか完了していない」ことをユーザーに知らせる理由です。ユーザーが始めたことを完了するよう促します。
別の例を見てみましょう。 To Do リスト アプリに 5 つのタスクがあり、一日の終わりに完了済みとしてチェックするのはそのうちの 4 つだけです。私たちの多くは、その 1 つの未完了のタスクのせいで達成できていないと感じるでしょう。それがまさにツァイガルニク効果です。 ツァイガルニク効果は心理学者のブルマ・ツァイガルニクによって実証され、人は完了したタスクよりも未完了のタスクを記憶の中で長くアクティブにしておく傾向があると説明しました。 UX デザインでは、ストリーク パターンが自然にこれに組み込まれます。あなたが連続学習の 63 日目にいるとします。その時点で、あなたはまだ終わっていない仕事が続くパターンに陥っています。それは頭の片隅にあるため、脳がそれを忘れることはめったにありません。この時点で、あなたの脳が通知を送信するようになります。 これらの心理的な力を総合すると、なぜストリークが単なるアプリの通常の機能ではないのかが真に理解できるようになります。彼らは人間の行動を再形成することができます。 しかし、どこかで、人によって異なるため、正確にいつとは言えませんが、物事は「楽しい」から、失うわけにはいかないと感じるものへと連続的に移行するポイントに達します。 58 日間の努力を無駄にしたくないですよね?それがストリークシステムの有効性です。正しく行えば、ストリークはユーザーが目標を達成するための驚くべき習慣を築くのに役立ちます。それは毎日読書をしたり、ジムに通い続けたりすることかもしれません。 これらの繰り返される行動(時には小さなこともあります)は、時間の経過とともに複雑化し、私たちの日常生活に明らかに現れます。しかし、すべてのコインには両面があります。 習慣と強迫の紙一重 この記事をよく読んでいる人なら、ストリーク システムには暗い側面があることがすでにわかるでしょう。習慣の形成には、繰り返される目標に対する一貫性が重要です。しかし、強制とは、もはや必要ではないにもかかわらず、恐怖やプレッシャーから固執し続ける目標に継続的に取り組むことです。かみそりのような細い線です。 あなたは毎朝何も考えずに歯を磨きます。それは自動的かつ本能的なものであり、良い呼吸をするという明確な目標があります。それは良い習慣を形成する連続です。倫理的なストリーク システムはユーザーに息抜きのスペースを与えます。何らかの理由で朝磨かない場合は、正午に磨いても大丈夫です。長い努力を無駄にすることを恐れず、不完全であっても許されます。 強迫行為はその逆で、連続して起こると不安になったり、罪悪感を感じたり、さらには疲れ果てたり、時には、これだけ頑張っているにもかかわらず、何も達成できていないと感じることがあります。仕事。あなたが行動するのは、望んでいるからではなく、自分の進歩がゼロにリセットされるのを見るのを無意識のうちに恐れているからです。 ある人はこれを完璧に表現し、「私は不正行為をしていると感じましたが、単に気にしませんでした。私は経歴がなければ何の役にも立ちません。」とさえ言いました。これは、ストリークが個人に与える可能性のある極端なホールドを示しています。ユーザーが、そもそもの連続記録を開始した当初の目標や理由ではなく、自分の価値を任意の指標に結びつけ始める程度にまで。ストリークは、彼らが何をするかだけではなく、彼らそのものになります。 適切に設計された倫理ストリーク システムは、ユーザーにとってプレッシャーや義務ではなく、励ましのように感じられるべきです。これは内発的動機と外発的動機のバランスに関係します。外発的動機付け (外部からの報酬、罰の回避) がユーザーを始めるきっかけになるかもしれませんが、長期的なエンゲージメントには内発的動機付け (愛する人と心からコミュニケーションを取りたいため、スペイン語の学習などの個人的な目標のためにタスクを行う) の方が強力です。 優れたシステムは、外部要素を慎重に使用して、内発的動機に引き寄せられるべきです。つまり、ユーザーが失うかもしれないものでユーザーを脅すのではなく、自分がどこまで到達したかをユーザーに思い出させます。繰り返しますが、それは紙一重です。 ストリーク システムを設計する際の簡単なテストは、実際に時間をかけて、製品が生み出した不安に対する解決策を販売することでその製品が儲かるかどうかを考えることです。 「はい」の場合、ユーザーを搾取している可能性が高くなります。 そこで次の疑問は、streak を使用することを選択した場合、ユーザーが目標を達成できるように真に役立つ方法でそれを設計するにはどうすればよいでしょうか? 優れた Streak システム設計の UX ほとんどのプロジェクトが効果的なストリーク システムを確立するか、完全に台無しにするのはここだと思います。優れたストリークデザインの UX 原則をいくつか見てみましょう。 楽に保ちます おそらく「Atomic Habits」などの本で、これを聞いたことがあるでしょう。しかし、習慣を形成する最も簡単な方法の 1 つは、行動を小さく簡単にすることであるということは言及する価値があります。これは、フォッグ行動モデルで説明した能力係数に似ています。 ストリーク設計の最初のルールは、進歩を達成しながら、必要なアクションを人間ができる限り小さくすることです。 毎日の行動を完了するのに意志の力が必要な場合、その行動は 5 日を超えません。なぜ? 5日連続でモチベーションを維持することはできません。 好例: 瞑想アプリを実行している場合、連続記録を維持するためだけにユーザーに 20 分間のセッションを受講させる必要はありません。代わりに、1 分間、場合によっては 30 秒程度の短い時間でも試してみてください。 ことわざにあるように、小さな水滴が偉大な海を作ります。)小さな努力は、時間の経過とともに大きな成果につながります。それが目標であるべきです。特に困難な瞬間に摩擦を取り除くことです。ユーザーがストレスを感じたり圧倒されたりしているときは、たとえ数秒であっても、姿を現すだけで努力としてみなされることを伝えてください。 明確な視覚的フィードバックを提供する 人間は本質的に視覚的です。ほとんどの場合、私たちは信じるために何かを見る必要があります。物事をよりよく理解し、全体像を把握するために、物事を視覚化する必要があります。 このため、ストリーク パターンでは、グラフ、チェックマーク、進捗リング、グリッドなどの視覚要素を使用して労力を視覚化することがよくあります。 GitHub の貢献グラフを見てください。これは一貫性を簡単に視覚化したものです。しかし、開発者はそれを酸素のように吸い込みます。
重要なのは、ストリーク システムを抽象的に感じさせないことです。それは現実的で、得したものだと感じられるはずです。たとえば、Duolingo と Apple のフィットネス アクティビティ リングでは、ストリークの完了時にクリーンなアニメーション デザインが使用されており、GitHub では、ユーザーの長期にわたる一貫性の履歴データが表示されます。
良いタイミングを利用する 先ほど、人間は本質的に忘れっぽく、プロンプトが前進の勢いを維持するのに役立つと述べました。プロンプトがないと、ほとんどの新規ユーザーは先に進むことを忘れてしまいます。人生は忙しくなり、モチベーションがなくなり、何かが起こることがあります。長年のユーザーでもプロンプトの恩恵を受けることができますが、ほとんどの場合、ユーザーはすでに習慣のループの中に閉じ込められています。それにもかかわらず、最も熱心な人でも、うっかり一日を忘れることがあります。 あなたのストリークシステムには間違いなくリマインダーが必要です。最もよく使用されるプロンプト リマインダーはプッシュ通知です。プッシュ通知を使用する場合、タイミングが非常に重要です。アプリの種類も重要です。午前 9 時に「今日は練習していません」という通知を送信するのは、学習アプリとしては奇妙です。多くの人は、レッスンを完了することを考える前に、その日のうちにやるべきことがあるためです。ただし、フィットネス アプリについて話している場合、それは合理的であり、おそらくその日の早い時間に通知されることが予想されるかもしれません。 プッシュ通知はアプリのカテゴリによって大きく異なります。たとえば、フィットネス アプリでは早朝の通知 (午前 7 ~ 8 時) のエンゲージメントが高くなりますが、生産性向上アプリは正午の早い時間にパフォーマンスが向上する可能性があります。重要なのは、画一的なものを想定するのではなく、ユーザーの行動に基づいてアプリのタイミングを A/B テストすることです。瞑想アプリで機能するものは、コーディング トラッカーでは機能しない可能性があります。 他のプロンプト メソッドには、アプリ アイコン上の赤い点やアプリ ウィジェットもあります。研究内容はさまざまですが、平均的な人は 1 日に 50 ~ 150 回デバイスのロックを解除します (PDF)。ユーザーが携帯電話のロックを解除するたびに、現在の連続記録を示す赤い点がアプリまたはウィジェットに表示されると、コミットメントが高まります。 ただ、やりすぎないようにしましょう。プロンプトは、小言ではなく、リマインダーとして機能する必要があります。 マイルストーンを祝う ストリーク システムは、特にストリークに深く陥っているユーザーのために、マイルストーンを祝って感情を再燃させるように努めるべきです。 ユーザーが 7 日目、30 日目、50 日目、100 日目、365 日目に到達したら、それを大いに活用する必要があります。特に長年のユーザーに対しては、成果を認めます。
前に見たように、Duolingo はこれを理解し、紙吹雪でマイルストーンを祝うアニメーション グラフィックを実装しました。プラットフォームによっては、ユーザーの努力を評価する多額のボーナス報酬を提供する場合もあります。これはアプリにとって有益であり、ユーザーはソーシャル メディアでマイルストーンを公に共有する傾向があります。 もう 1 つの利点は、マイルストーンに到達する前の期待感です。単に連続記録を延々と維持するだけではありません。ユーザーは何かを楽しみにしています。 猶予メカニズムを使用する 人生は予測不可能です。人々は気が散ってしまいます。優れたストリーク システムには不完全性が存在することが想定されます。ストリーク システムに対する最大の心理的脅威の 1 つは、たった 1 日欠席しただけでゼロにハード リセットされることです。 「倫理的な」ストリーク システムは、ユーザーにある程度の余裕を提供する必要があります。あなたがチェスを90日間連続で学習したとします。 3 か月間順調に仕事を続けてきたのに、ある日、旅行中に携帯電話が故障してしまい、90 が 0 になってしまいます。すべてが、そのすべての努力が消去され、進歩が消えてしまいます。ユーザーは完全に打ちのめされてしまうかもしれません。ゼロから再構築することを考えると非常に意気消沈し、努力する価値がありません。最悪の場合、ユーザーは失敗したと感じてアプリを放棄する可能性があります。 ストリーク システムに「猶予」メカニズムを追加することを検討してください。
連続凍結ユーザーがペナルティなしで意図的に 1 日を欠席することを許可します。 追加時間リセットをトリガーする前に、通常の期限を数時間 (2 ~ 3 時間) 過ぎてください。 減衰モデル ハード リセットの代わりに、連続記録は少量ずつ減少します。たとえば、欠席した日ごとに連続記録から 10 日が差し引かれます。
励ましの口調を使う 連続記録が途切れたときにユーザーに表示される 2 つのメッセージを比較してみましょう。
「42 日間の連続記録は失われました。最初からやり直してください。」 「42 日間連続で現れました。信じられないほどの進歩です。もう一度試してみませんか?」
どちらも同じ情報を伝えますが、感情に与える影響は異なります。最初のメッセージは、ユーザーの士気を低下させ、ユーザーを辞めさせる可能性が高くなります。 2 番目のメッセージは、すでに達成されたことを祝い、ユーザーに再試行するよう優しく促します。 Streak システム設計の課題 ストリーク システム構築の技術的な詳細に入る前に、直面する可能性のある課題を認識しておく必要があります。ご想像のとおり、状況は複雑になる可能性があります。 タイムゾーンの処理 時刻と日付の処理が開発者にとって最も難しい概念の 1 つであるのには理由があります。書式設定、国際化など、考慮すべきことがたくさんあります。 質問させてください: 1 日とは何ですか? 世界はさまざまなタイムゾーンで運用されていることがわかっていますが、それだけでは十分ではないかのように、一部の地域では年に 2 回夏時間 (DST) が実施されます。こうしたエッジケースへの対応はどこから始めればよいのでしょうか?明日の「始まり」とは何でしょうか? 開発者の中には、UTC などの 1 つの中央タイムゾーンを使用してこれを回避しようとする人もいます。一部のユーザーにとっては正しい結果が得られますが、一部のユーザーにとっては 1 時間、2 時間、あるいはそれ以上の誤差が生じる可能性があります。この矛盾により、ユーザー エクスペリエンスが台無しになります。ユーザーは、あなたが舞台裏で時間をどのように処理するかはあまり気にしません。彼らが期待しているのは、午後 11 時 40 分に連続アクションを実行した場合、その正確な時刻にコンテキスト内で記録されることだけです。 「1 日」は、サーバー時間ではなく、ユーザーのローカル タイムゾーンに基づいて定義する必要があります。 もちろん、気楽にやってもいいよUTC 午前 0 時にすべてのユーザーに対してストリークをグローバルにルーティングしてリセットしますが、非常に不公平を生み出しています。カリフォルニアに住んでいる人は、ロンドンに住んでいる人よりも、タスクを完了するのに常に 8 時間余分に時間がかかります。これは、場所を理由に特定のユーザーを罰する不当な設計上の欠陥です。そして、ロンドンにいるその人が単に訪問し、タスクを完了してから別のタイムゾーンに戻ったらどうなるでしょうか? これらすべてに対する効果的な解決策の 1 つは、オンボーディング中 (できれば最初の認証後) にタイムゾーンを明示的に設定するようユーザーに求めることです。タイムゾーン情報の提供は、個人を特定できるデータとしてではなく、アプリが進行状況を正確に追跡するためにのみ使用されるという微妙な注意を含めることをお勧めします。それを変更可能な設定にすることも良い考えです。 アプリ内でタイムゾーン ロジックを直接処理することは避けることをお勧めします。 Moment.js や pytz (Python) など、実証済みの日付ライブラリを使用します。これほど複雑なもののために車輪を再発明する必要はありません。 欠席日と特殊なケース 心配すべきもう 1 つの課題は、ユーザーの寝すぎ、サーバーのダウンタイム、遅延、ネットワーク障害などの制御不能なエッジケースです。先ほど説明したような猶予メカニズムのアイデアを使用すると効果的です。 2 時間の猶予期間は、ユーザーが制御不能な生活状況に対して厳しく罰せられることがないという意味で、ユーザーと開発者の両方に役立つ可能性があります。開発者にとって、猶予ウィンドウは、深夜にサーバーがダウンしたときの制御不能な瞬間に役立ちます。 何よりも、クライアントを決して信用しないでください。常にサーバー側で検証してください。サーバーは唯一の信頼できる情報源である必要があります。 浮気防止 繰り返しますが、これはどれだけ強調しても足りません。サーバー側ですべてを必ず検証してください。ユーザーは人間であり、人間は機会があれば不正行為を行う可能性があります。それは避けられないことです。 次のことを試してみるとよいでしょう:
すべてのアクションを UTC タイムスタンプで保存します。クライアントは現地時間を送信できますが、サーバーはそれをすぐに UTC に変換し、サーバー時間に対して検証できます。そうすることで、クライアントのタイムスタンプが疑わしいほど離れている場合、システムはそれをエラーとして拒否し、UI はそれに応じて応答できます。 イベントベースの追跡を使用します。つまり、ユーザーの ID、実行されたアクションの種類、タイムスタンプとタイムゾーンなどの情報を含むメタデータを含む各アクションの記録を保存します。これは検証に役立ちます。
Streak システム エンジンの構築 これはコードのチュートリアルではないので、大量のコードをダンプすることは避けます。これを実用的なものにして、アーキテクチャ、フロー、信頼性の観点から、ストリーク システム エンジンが一般にどのように動作するかを説明します。 コアアーキテクチャ 何度も言いましたが、サーバーをストリーク データの信頼できる唯一の情報源にしてください。アーキテクチャはサーバー上で次のようになります。
各ユーザーのデータをデータベースに保存します。 現在のストリーク ストア (デフォルトは 0) を整数として保存します。 タイムゾーン設定、つまり IANA タイムゾーン文字列を保存します (ローカル タイムスタンプから暗黙的に、またはユーザーにタイムゾーンの選択を求めることで明示的に)。たとえば、「アメリカ/ニューヨーク」などです。 ユーザーのローカル タイムゾーンを基準としたタイムゾーン チェックを使用して、すべてのロジックを処理して、連続記録が継続するか中断するかを判断します。
一方、クライアント側では次のようになります。
通常はサーバーから取得された現在のストリークを表示します。 実行されたアクションをメタデータの形式でサーバーに送信し、ユーザーが実際に対象となる連続アクションを完了したかどうかを検証します。 サーバーの応答に基づいて視覚的なフィードバックを提供します。
つまり、頭脳はサーバー上にあり、クライアントは表示とイベントの送信を目的としています。これにより、多くの失敗や特殊なケースが回避され、さらに更新と修正が容易になります。 論理的な流れ ユーザーがアクションを完了したときに最小効率ストリーク システム エンジンがどのように動作するかを示すウォークスルーをシミュレートしてみましょう。
ユーザーは条件を満たす連続アクションを完了します。 クライアントはイベントをメタデータとしてサーバーに送信します。これは、「ユーザー X がタイムスタンプ Z にアクション Y を完了した」などです。 サーバーはこのイベントを受信し、基本的な検証を行います。これは本物のユーザーですか?認証されていますか?アクションは有効ですか?タイムゾーンは一貫していますか? これに合格すると、サーバーはデータベースからユーザーの連続データを取得します。 次に、受信したアクションのタイムスタンプをユーザーのローカル タイムゾーンに変換します。 サーバーにユーザーのローカル タイムゾーンのカレンダーの日付 (タイムスタンプではない) を比較させます。 同じ日の場合、アクションは冗長であり、内容に変更はありません。縞模様。 翌日の場合、連続記録は延長され、1 ずつ増加します。 1 日以上のギャップがある場合、連続記録は途切れます。ただし、ここで猶予メカニズムを適用することができます。 猶予メカニズムを逃した場合は、ストリークを 1 にリセットします。
マイルストーン達成の履歴データを保存することを選択した場合は、「最長連続日数」や「合計アクティブ日数」などの変数を更新します。 その後、サーバーはデータベースを更新し、クライアントに応答します。次のようなもの:
{ "current_streak": 48、 「最長ストリーク」: 50、 "total_active_days": 120、 "streak_extended": true、 }
さらなる対策として、サーバーは再試行するか拒否し、プロセス中に何かが失敗した場合にはクライアントに通知する必要があります。 回復力を高める構築 前述したように、バグやサーバーのダウンタイムが原因でユーザーが連続記録を失うのはひどい UX であり、ユーザーはそれを甘んじて受け入れることを期待していません。したがって、ストリーク システムには、これらのシナリオに対する安全策が必要です。 サーバーがメンテナンス (または何らかの理由) でダウンしている場合は、アクションが遅れて送信されてもカウントされるように、問題を修正するためにさらに数時間の一時的な枠を設けることを検討してください。特に状況が進行中の連続記録に影響を与える可能性がある場合には、ユーザーに通知することも選択できます。 注: データを手動で復元できる管理バックドアを確立します。バグは避けられないものであり、一部のユーザーは、自分が制御できない理由で連続記録が途絶えたことをアプリに問い合わせたり、サポートを求める人もいます。調査の結果、ユーザーの判断が正しければ、手動で縞模様を復元できるはずです。 結論 1 つ明らかなことは、人間の心理が基本的なレベルでどのように機能するかによって、ストリークが非常に強力であるということです。 世の中で最高のストリーク システムは、ユーザーが意識的に考えないものです。歯磨きが定期的な習慣になるのと同じように、すぐに結果が得られたり、目に見える進歩が得られるルーチンになっています。 これだけは言っておきますが、すべての製品にストリーク システムが必要なわけではありません。毎日のアクティブ ユーザーが欲しいからといって、本当に一貫性を強制する必要があるでしょうか?答えは「ノー」かもしれません。