我相信您聽說過條紋或使用過帶有條紋的應用程式。但有沒有想過為什麼條紋如此受歡迎、強大?嗯,很明顯,應用程式希望盡可能吸引您的注意力,但除此之外,您是否知道,當流行的學習應用程式 Duolingo 引入 iOS 小部件來顯示條紋時,用戶投入度猛增了 60%。百分之六十是行為上的巨大轉變,展示如何使用「連續」模式來提高參與度和推動使用。 從最基本的角度來說,連續記錄是使用者完成特定活動的連續天數。有些人也將其定義為「遊戲化」習慣或旨在鼓勵一致使用的指標。 但連勝不僅僅只是應用程式中的指標或記錄。這比較是心理上的。人類的本能很容易受到正確因素的影響。看看這三個因素:進步、自豪感和對錯過的恐懼(通常稱為 FOMO)。這一切有什麼共同點?努力。你在某件事上付出的努力越多,它就越能塑造你的身份,這就是條紋進入行為心理學世界的方式。 如今,權力越大,責任越大,因此,連續得分也有其陰暗面。 在本文中,我們將深入探討建構有效的連勝系統背後的心理學、使用者體驗和設計原則。我們將研究(1)為什麼我們的大腦幾乎本能地對條紋活動作出反應,(2)如何以真正幫助使用者的方式設計條紋,以及(3)建構條紋模式所涉及的技術工作。 連勝背後的心理學 為了設計和建構有效的連續系統,我們需要了解它如何與我們的大腦連接方式保持一致。例如,是什麼讓它如此有效,以至於我們感到如此強烈地致力於保護我們的連續記錄? 三個有趣的、有據可查的心理學原理支持了連續性如此強大和令人上癮的原因。 損失厭惡 這可能是連勝背後最強大的力量。我這麼說是因為大多數時候,你在生活中幾乎無法避免這種情況。 可以這樣想:如果朋友給你 100 美元,你會很高興。但如果你從錢包裡丟了 100 美元,那就更痛苦了。這些情況的情感分量並不相同。失去帶來的痛苦遠大於獲得帶來的愉悅。 更進一步說,我給你 100 美元,請你賭一把。您有 50% 的機會再贏得 100 美元,也有 50% 的機會輸掉原來的 100 美元。你願意接受嗎?我不會。大多數人不會。這就是損失厭惡。 如果你想一想,這是合乎邏輯的,這是可以理解的,這是人性的。 損失厭惡背後的概念是,我們失去某些東西所感受到的痛苦是獲得同等價值的東西所帶來的快樂的兩倍。從心理角度來說,損失比收益更持久。 您可能會看到這與條紋有何關係。要建立顯著的連續性,需要付出努力;隨著連續性的增長,其背後的動力開始減弱;或者更準確地說,它開始變得次要。 舉個例子:假設您的朋友連續三天關閉了 Apple Watch 上的「移動環」。除了想要實現目標並保持一致之外,他們幾乎沒有什麼可失去的。同時,您的連續 219 天的記錄令人印象深刻。您很可能因害怕失去它而陷入困境。此時你很可能沒有考慮成就;更多的是為了保護你所投入的努力,這就是損失厭惡。 Duolingo 解釋了損失厭惡是如何導致使用者不願意打破長期連續記錄的,即使是在他們最懶的日子裡。在某種程度上,當損失厭惡情緒形成時,連續性可能會變成一種習慣。 福格行為模式 (B = MAP) 現在我們明白了害怕失去在更長連續時間內投入的努力的恐懼,另一個問題是:是什麼讓我們首先、日復一日、甚至在連續時間變大之前做這件事? 這就是福格行為模式的意義所在。比較簡單。只有當動機 (M)、能力 (A) 和提示 (P) 這三個因素同時出現時,才會出現行為 (B)。因此,方程式B=MAP。 如果當時缺少任何一個因素,哪怕只有一個,這種行為就不會發生。 因此,為了使連續系統有效率且重複出現,所有三個因素都必須存在: 動機是脆弱的,不是持續存在的東西。有些日子你學習西班牙語的熱情很高,有時你甚至沒有一點學習語言的意志力。養成習慣的動機本身是不可靠的,從第一天起就是一場失敗的戰鬥。 能力 要彌補動機的局限性,能力至關重要。在這種情況下,能力意味著行動的容易程度,即努力是如此容易,以至於說不可能是不切實際的。大多數應用程式都有意使用它。 Apple Fitness 只需要您在一小時內站立一分鐘,即可為您的站立目標贏得一分。 Duolingo 只需要完成一堂課。這些任務並不需要太多的努力。門檻是如此之低,即使在最糟糕的日子裡,你也可以做到。但持續的連勝的共同努力正是失去連勝的想法開始出現的地方。 提示這就是完成等式的內容。人類天生健忘,所以是的,能力可以讓我們達到 90%。但提示提醒我們採取行動。條紋在設計上是持久的,因此需要不斷提醒使用者採取行動。為了了解提示的威力有多大,Duolingo 進行了 A/B 測試,看看應用程式圖示上的紅色小徽章是否會增加一致性使用。每日活躍用戶增加了 6%。只是一個紅色的徽章。 型號限制 話雖如此,福格模型有其局限性,批評家和現代研究注意到,過度依賴提示(例如激進的通知)的設計可能會造成精神疲勞。持續的通知和逾時可能會導致用戶流失。所以,請注意這一點。 蔡加尼克效應 當你的專案任務完成一半時,你有什麼感覺?這激怒了許多人,因為未完成的任務比我們完成的事情佔據了更多的心理空間。當某件事完成並消失時,我們往往會忘記它。當某件事未完成時,它往往會壓在我們的心頭。 這正是數位產品使用人工進度指示器(例如 Upwork 的個人資料完成欄)來讓使用者知道他們的個人資料僅「完成 60%」的原因。它促使用戶完成他們開始做的事情。

讓我們來看另一個例子。您在待辦事項清單應用程式中有五個任務,到一天結束時,您只檢查其中四個任務是否已完成。我們中的許多人都會因為一項未完成的任務而感到未完成。這就是蔡加尼克效應。 心理學家布魯瑪·蔡加尼克(Bluma Zeigarnik)證明了蔡加尼克效應,他描述說,我們傾向於將未完成的任務比已完成的任務更長時間地保留在我們的記憶中。 條紋圖案自然地在使用者體驗設計中利用了這一點。假設您已進入連續學習的第 63 天。到那時,你就處於未完成任務的持續模式中。你的大腦很少會忘記它,因為它位於你的腦海深處。此時,你的大腦就會向你發送通知。 當您將這些心理力量放在一起時,您就會開始真正理解為什麼條紋不僅僅是一個常規的應用程式功能;而是一個常見的應用程式功能。它們有能力重塑人類行為。 但在這個過程中的某個時刻——我不能確切地說出什麼時候,因為每個人的情況都不同——事情會達到這樣一個程度,即連勝從「有趣」轉變為你覺得自己無法承受失去的東西。你不想讓58天的努力白費吧?這就是連勝系統有效的原因。如果做得好,連勝可以幫助用戶養成驚人的習慣,從而實現目標。可以是每天閱讀或堅持去健身房。 這些重複的行為(有時很小)隨著時間的推移而復合,並在我們的日常生活中變得明顯。但每枚硬幣都有兩面。 習慣與強迫之間的一線之隔 如果你一直在關注,你已經可以看出條紋系統有其陰暗面。習慣的形成與重複目標的一致性有關。然而,強迫是指持續致力於某個不再需要但出於恐懼或壓力而堅持的目標。這是一條極細的線。 你每天早上不假思索地刷牙;它是自動的、本能的,有一個明確的目標:擁有良好的呼吸。這是一種形成良好習慣的連續性。道德條紋系統為使用者提供了喘息的空間。如果因為某些原因早上不刷牙,中午也可以刷牙。允許不完美,不必擔心失去長期的努力。 強迫則採取相反的方式,即連續性讓你感到焦慮、感到內疚甚至精疲力竭,有時,感覺就像你沒有完成任何事情,儘管你付出了所有努力。工作。你採取行動不是因為你想這樣做,而是因為你在潛意識裡害怕看到自己的進度重置為零。 有人甚至完美地描述了這一點,「我覺得我在作弊,但根本不在乎。沒有我的連勝,我什麼都不是」。這表明一個人可能會經歷極端的堅持。在某種程度上,用戶開始將他們的自我價值與任意指標聯繫起來,而不是他們最初開始連勝的最初目標或原因。連勝決定了他們是誰,而不僅僅是他們做了什麼。 精心設計的道德記錄系統應該帶給使用者鼓勵,而不是壓力或義務。這涉及到內在動機和外在動機的平衡。外在動機(外在獎勵、避免懲罰)可能會讓使用者開始,但內在動機(為了個人目標而完成任務,例如學習西班牙語,因為你真的想與所愛的人交流)對於長期參與來說更強大。 一個好的系統應該傾向於內在動機,並謹慎使用外在元素,即提醒使用者他們已經走了多遠,而不是用他們可能會失去的東西來威脅他們。再說一遍,這是一條很好的界線。 設計條紋系統時的一個簡單測試是實際上花一些時間思考你的產品是否透過銷售產品所產生的焦慮解決方案來賺錢。如果是,那麼您很可能正在利用用戶。 所以下一個問題是,如果我選擇使用 streak,我該如何設計它才能真正幫助使用者實現他們的目標? Good Streak 系統設計的使用者體驗 我相信這就是大多數專案要么完善有效的連續系統,要么完全搞砸的地方。讓我們來看看良好的條紋設計的一些使用者體驗原則。 保持輕鬆 你可能以前聽過這個說法,也許是從《原子習慣》等書中聽過,但值得一提的是,形成習慣最簡單的方法之一就是讓行動變得微小而簡單。這與我們在福格行為模型中討論的能力因素類似。 任何連續設計的首要規則應該是在仍取得進展的同時,使所需的行動盡可能小。 如果一項日常行動需要意志力才能完成,那麼該行動將無法持續五天。為什麼?你不可能連續五天都充滿動力。 舉個例子:如果你運行一個冥想應用程序,你不需要讓使用者進行 20 分鐘的會話來維持連續狀態。嘗試一分鐘,甚至可能只有三十秒。 俗話說,微小的水滴匯聚成浩瀚的海洋)。隨著時間的推移,小小的努力會累積成大的成就。這應該是我們的目標:消除摩擦,尤其是在困難的時刻。當使用者感到壓力或不知所措時,讓他們知道,僅僅出現,即使是幾秒鐘,也算是努力。 提供清晰的視覺回饋 人類本質上是視覺動物。大多數時候,我們需要看到一些值得相信的東西;人們需要將事物形象化,以便更好地理解它們並正確看待事物。 這就是為什麼條紋模式經常使用視覺元素(例如圖表、複選標記、進度環和網格)來視覺化工作量。看看 GitHub 的貢獻圖。這是一致性的簡單視覺化。然而開發人員卻像吸入氧氣一樣吸入它。

關鍵是不要讓連勝系統感覺抽象。它應該感覺真實且值得。例如,Duolingo 和 Apple 的健身活動環在完成連續訓練時使用簡潔的動畫設計,而 GitHub 則顯示使用者隨時間變化的一致性的歷史資料。

把握好時機 我之前提到過,人類生性普遍比較健忘,而提示可以幫助維持前進的動力。如果沒有提示,大多數新使用者都會忘記繼續操作。生活可能會變得忙碌,動力消失,事情就會發生。即使是長期用戶也會從提示中受益,儘管大多數時候,他們已經被鎖定在習慣循環中。然而,即使是最忠誠的人也可能會不小心錯過一天。 您的連勝系統絕對需要提醒。最常用的提示提醒是推播通知。使用推播通知時,時機確實很重要。應用程式的類型也很重要。對於學習應用程式來說,早上 9 點發送通知說「你今天還沒有練習」很奇怪,因為許多人在考慮完成課程之前就已經有事情要做了。不過,如果我們談論的是健身應用程序,那麼它是合理的,甚至可能會在當天早些時候被提醒。 推播通知因應用程式類別而異。例如,健身應用程式對清晨通知(上午 7 點至 8 點)的參與度較高,而生產力應用程式在中午的表現可能會更好。關鍵是根據使用者的行為對應用程式的時間進行 A/B 測試,而不是假設一切都是一刀切的。適用於冥想應用程式的方法可能不適用於編碼追蹤器。 其他提示方式是應用程式圖示甚至應用程式小工具上的紅點。研究各不相同,但一般人每天解鎖設備的次數在 50-150 次 (PDF)。如果用戶在每次解鎖手機時在應用程式或小部件上看到一個紅點,表示當前的連續記錄,就會增加投入度。 只是不要做得太過分;提示應該要起到提醒的作用,而不是嘮叨的作用。 慶祝里程碑 連勝系統應該嘗試慶祝里程碑以重新點燃情緒,特別是對於陷入連勝的用戶。 當使用者到達第 7 天、第 30 天、第 50 天、第 100 天、第 365 天時,你應該大肆宣傳。認可成就-尤其是長期使用者。

正如我們之前看到的,Duolingo 解決了這個問題,並實現了一個動畫圖形,用五彩紙屑慶祝里程碑。一些平台甚至提供豐厚的獎金獎勵來驗證用戶的努力。這對應用程式來說是有益的,因為用戶傾向於在社交媒體上公開分享他們的里程碑。 另一個好處是在達到里程碑之前的預期。這不僅讓連續紀錄永無止境地延續下去,而且用戶有一些值得期待的東西。 使用寬限機制 生活是不可預測的。人們會分心。任何好的連勝系統都應該預見到不完美。對連勝系統最大的心理威脅之一是在錯過一天後就硬重置為零。 「道德」的條紋系統應該為使用者提供一些寬鬆的空間。假設您連續學習了 90 天的西洋棋。你已經堅持了三個月,有一天,你的手機在旅行時沒電了,就這樣,90 變成了 0——一切、所有的努力都被抹去了,進步也消失了。用戶可能會徹底崩潰。從頭開始重建它的想法是如此令人沮喪,以至於這種努力是不值得的。最糟糕的情況是,用戶可能會在感覺失敗後放棄該應用程式。 考慮在你的連勝系統中加入一個「寬限」機制:

連續凍結允許用戶故意錯過一天而不會受到處罰。 額外時間 在觸發重置之前,請比通常的截止日期晚幾個小時 (2-3)。 衰減模型不是硬重置,而是少量減少連續記錄,例如,每錯過一天,就會從連續記錄中扣除 10 天。

使用鼓勵的語氣 讓我們比較一下連續中斷時向用戶顯示的兩個訊息:

“你失去了 42 天的連續記錄。重新開始。” “你連續 42 天出現。這是令人難以置信的進步!想再試一次嗎?”

兩者傳達的訊息相同,但情感影響不同。第一則訊息很可能會讓用戶感到士氣低落並導致他們退出。第二則訊息慶祝已經取得的成就,並溫和地鼓勵用戶再試一次。 Streak 系統設計挑戰 在我們討論建造條紋系統的技術細節之前,您應該意識到您可能面臨的挑戰。正如您所料,事情可能會變得複雜。 處理時區 處理時間和日期是開發人員處理的最困難的概念之一是有原因的。有格式、國際化以及更多需要考慮的因素。 讓我問你:一天算什麼? 我們知道世界運作在不同的時區,但這似乎不夠,有些地區每年有兩次夏令時 (DST)。您從哪裡開始處理這些邊緣情況?什麼算是明天的「開始」? 一些開發人員嘗試透過使用一個中央時區(例如 UTC)來避免這種情況。對於某些用戶來說,這會產生正確的結果,但對於某些用戶來說,結果可能會偏差一個小時、兩個小時或更長。這種不一致會破壞使用者體驗。使用者不太關心你在幕後如何處理時間;他們所期望的是,如果他們在晚上 11:40 執行連續動作,那麼該動作應該在他們的上下文中在那個確切的時間記錄下來。您應該根據使用者的本地時區而不是伺服器時間來定義“一天”。 當然,你可以輕鬆地在 UTC 午夜為所有用戶全局路由和重置條紋,但你正在製造不公平。加州的人總是比倫敦的人多八個小時來完成任務。這是一個不公平的設計缺陷,會因為某些用戶的位置而懲罰他們。如果倫敦的那個人只是來訪,完成一項任務,然後再回到另一個時區怎麼辦? 解決所有這些問題的一個有效解決方案是要求使用者在登入期間(最好是在第一次驗證之後)明確設定他們的時區。最好添加一個微妙的註釋,即提供時區資訊僅用於應用程式準確追蹤進度,而不是用作個人身份資料。將其設定為可更改的設定也是一個好主意。 我建議任何人都避免在應用程式中直接處理時區邏輯。使用經過驗證的日期庫,例如 Moment.js 或 pytz (Python) 等。沒有必要為如此複雜的事情重新發明輪子。 錯過的日子和邊緣情況 您應該擔心的另一個挑戰是無法控制的邊緣情況,例如用戶睡過頭、伺服器停機、延遲、網路故障等。使用寬限機制的想法(就像我們之前討論的)會有所幫助。 兩個小時的寬限期可能對使用者和開發人員都有幫助,因為使用者不會因為無法控制的生活環境而受到嚴格的懲罰。對於開發人員來說,寬限期在半夜伺服器宕機的那些無法控制的時刻很有幫助。 最重要的是,永遠不要相信客戶。始終在伺服器端進行驗證。伺服器應該是唯一的事實來源。 預防作弊 我再次強調這一點:確保驗證伺服器端的所有內容。使用者是人類,如果有機會,人類可能會作弊。這是不可避免的。 您可以嘗試:

使用 UTC 時間戳記儲存所有操作。客戶端可以發送本機時間,但伺服器可以立即將其轉換為 UTC 並根據伺服器時間進行驗證。這樣,如果客戶端的時間戳可疑地太遠,系統可以將其視為錯誤而拒絕,並且 UI 可以做出相應的回應。 使用基於事件的追蹤。換句話說,使用元資料儲存每個操作的記錄,其中包括使用者 ID、執行的操作類型以及時間戳記和時區等資訊。這有助於驗證。

建構 Streak 系統引擎 這不是一個代碼教程,所以我會避免向你扔一堆代碼。我將保持實用性,並描述通常如何在架構、流程和可靠性方面操作 streak 系統引擎。 核心架構 正如我多次說過的,讓伺服器成為連續資料的唯一真實來源。伺服器上的架構可以是這樣的:

將每個使用者的資料儲存在資料庫中。 將目前 streak 儲存(預設為 0)儲存為整數。 儲存時區首選項,即 IANA 時區字串(隱式來自本機時間戳記或明確要求使用者選擇其時區)。例如,“美國/紐約”。 處理所有邏輯以確定連續記錄是繼續還是中斷,並進行相對於使用者本地時區的時區檢查。

同時,在客戶端:

顯示目前的連勝,通常從伺服器取得。 以元資料形式將完成的操作傳送到伺服器,以驗證使用者是否確實完成了合格的連續操作。 根據伺服器回應提供視覺回饋。

所以,簡而言之,大腦在伺服器上,而客戶端則用於顯示目的和提交事件。這可以為您節省大量故障和邊緣情況,並且使更新和修復變得更加容易。 邏輯流程 讓我們模擬一下當使用者完成一個操作時,最低效率的連續系統引擎將如何運作:

使用者完成合格的連續動作。 客戶端將事件作為元資料傳送到伺服器。這可以是「使用者 X 在時間戳 Z 完成操作 Y」。 伺服器接收此事件並進行基本驗證。這是真實使用者嗎?他們經過身份驗證嗎?該行動是否有效?時區是否一致? 如果通過,伺服器將從資料庫中檢索使用者的連勝資料。 然後,將收到的操作時間戳記轉換為使用者的本機時區。 讓伺服器比較使用者本地時區的日曆日期(不是時間戳記): 如果是同一天,則該操作是多餘的並且沒有變化條紋。 如果是第二天,則連續記錄會延長並增加 1。 如果差距超過一天,連續走勢就會中斷。然而,這就是您可以應用恩典機制的地方。 如果錯過了寬限機制,則將 streak 重設為 1。

如果您選擇儲存里程碑成就的歷史數據,請更新「最長連續記錄」或「總活躍天數」等變數。 然後伺服器更新資料庫並回應客戶端。像這樣的東西:

{ 「目前條紋」:48, 「最長的條紋」:50, 「總活躍天數」:120, 「streak_extended」:正確, }

作為進一步的措施,伺服器應該重試或拒絕,並在過程中出現任何失敗時通知客戶端。 增強韌性 如前所述,由於錯誤或伺服器停機而導致使用者連續失敗的使用者體驗非常糟糕,並且使用者不會期望為此承擔責任。因此,您的條紋系統應該針對這些情況提供保護措施。 如果伺服器因維護(或任何原因)而停機,請考慮允許臨時的額外時間視窗來修復它,以便可以延遲提交操作並且仍然有效。您也可以選擇通知用戶,特別是當情況能夠影響持續的連續記錄時。 注意:建立一個管理員後門,可以手動恢復資料。錯誤是不可避免的,有些用戶會打電話給您的應用程式或尋求支持,因為他們無法控制的原因導致他們的連續中斷。如果經過調查,使用者是正確的,您應該能夠手動恢復條紋。 結論 有一點是明確的:由於人類心理學在基本層面上的運作方式,連續性確實非常強大。 最好的連勝系統是使用者不會有意識地思考的系統。它已經成為一種立竿見影或明顯進步的例行公事,就像刷牙一樣,成為一種常規習慣。 我只想說:並非所有產品都需要條紋系統。你真的應該僅僅因為想要日常活躍用戶就強制保持一致性嗎?答案很可能是「否」。

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free