搭建賬號體系,需要注意這幾個問題
編輯導讀:賬號體系是平臺的底層系統,在此基礎上,用戶行為、業務發展等因素會引發賬號間交互的需求。在業務發展過程中,賬號體系建設經常會遇到各種問題,本文作者結合項目實踐,對這些問題展開了分析解答,與大家分享。
賬號體系是所有系統都幾乎會面臨的一個難題。可以這么說,我所經歷過的公司基本都不約而同的遇到過,在業務發展過程中,現有賬號體系無法支撐業務而被迫進行改造。
今天就來講講賬號體系建設中最常遇到的幾個棘手的問題。話不多說,直接上干貨。
前提:今天先說同一個系統內的賬號問題,后面有機會再說內部和外部(即N個系統)的賬號打通問題。
01 同一系統內的賬號問題
很多公司存在一個問題,因為歷史原因,在公司和產品發展初期,沒有做好完善的賬號體系規劃,導致對用戶的定義是有問題的,這些問題在后來業務發展中不斷的暴露出來,并帶來很麻煩的賬號體系改造。
比如一些社交電商平臺,初期為了用戶體驗和購物成本最小化,直接通過微信授權登錄后,不強制綁定手機號。但是隨著業務發展,大家開始意識到,如果不以手機號作為唯一身份標識,那整個平臺該如何辨別這個人到底是誰?
比如通過微信openid創建的 uid1 和通過支付寶 user_id 創建的 uid2,可能背后其實是同一個自然人。
這就為平臺未來的諸多業務發展帶來了巨大的限制,比如我們需要對用戶進行風控,要通過用戶行為進行算法推薦,要看平臺的注冊用戶數和活躍用戶數,我們都無法做到準確,甚至會產生很離譜的偏差。
所以對平臺來說,這種不合理的設計一定會在未來某個節點爆發出巨大的瓶頸。
我當初在負責丁香云管家這款產品的時候,也遇到過這個問題,那就是線上的賬號不強制綁定手機號,可以進行很多的業務操作,比如預約、獲得積分等,但是對于診所來說,必須要打通線上和線下的服務場景,比如我在線上預約后,可以到診所進行就診,所以線上線下兩個賬號必然面臨需要綁定的問題,兩個完全不同的用戶(uid不同)該如何打通?
最近還遇到一個賬號問題,和某大廠旗下一款產品A進行合作,我們提供一個sdk給大廠,涉及雙方業務交互,但是A中并沒有用戶手機號數據,且又不愿意在他們的產品中間環節進行手機號綁定(覺得影響他們的用戶體驗),只是在最后付款階段喚起我們的小程序進行付款。
那么這里就會遇到很嚴重的賬號問題,我們想了幾個方案,但幾乎每個方案都有缺陷,留個懸念看看大家怎么解決這個問題,底部可以留言說說你的解決思路~
02 上述問題的解決思路
對于上述的第一個問題,當未來所有用戶都必須綁定手機號的時候,那些老用戶該怎么處理?一般可以采用如下2種方式解決。
1. 賬號合并
既然老用戶(uid=1)沒有手機號,那么第一步就是當他去做一些關鍵行為的時候,強制要求他去綁定手機號,那么這里會有3種情況:
第一種綁定的是一個新手機號(其并沒有在平臺有uid),那么很顯然,綁定成功,且uid依然為1,同時該uid下寫入新手機號數據。
第二種綁定的是一個老手機號(uid=2,其在平臺之前注冊過),那么我們要看該賬號(uid=2)下否存在一些業務數據,比如訂單、優惠券、積分、余額等,如果沒有,那么直接綁定成功,且uid2被注銷,手機號寫入uid1(主賬號)中。
第三種,前面的條件一樣,但是uid2下存在一些業務數據,這個時候如果要綁定,就涉及到業務數據合并的問題了。一般來說,uid1下的數據會被洗到uid2下,進行合并,然后合并后剩下uid2(主賬號),uid1則被注銷。
這里到底是注銷uid1還是uid2,其實都可以,看你自己怎么定規則。
2. 賬號不合并
我們是否可以讓用戶在兩個賬號里2選1,選擇一個作為未來他想要用的賬號,而注銷另一個?
可以當然是可以,但是這樣的前提就是損失用戶體驗,你給用戶的選擇其實是逼著他拋棄一個,或者讓他先把賬戶中的余額、優惠券、積分盡快使用掉,然后把該賬號廢棄,以手機號uid2為主賬號。
從實現難度和工作量來講,毫無疑問方案2更簡單,有的時候其實就是取舍的問題,到底是用戶體驗重要,還是研發投入產出比重要,每個人每個公司都有自己的選擇。
03 數據合并是下下策
業務數據的合并其實并沒那么簡單,甚至有點“惡心”。
我們從簡單的往復雜的講:比如2條訂單合并,一般按照訂單的創建時間進行倒序排列,那么也就是說開發先要把兩個用戶下的所有訂單拉出來,進行時間倒序排序,然后再往uid2的訂單中按照順序依次插入uid1的訂單。
再難點,比如2個余額的合并,那么uid2原來有100元,uid1有50元,那么50元歸入uid2的資金賬戶后,是以什么的形式體現呢?除了賬戶多了50元,你還需要保證賬戶余額和資金明細能夠對上,所以顯然需要人工插一條“莫名其妙”的資金入賬明細,maybe 可以叫“賬戶合并入賬:50元”?
再難點,比如2邊的積分合并,很多平臺積分能決定會員等級,假如uid1有100個積分,會員等級是3級,uid2是200個積分,會員等級是2級,那么除了簡單的積分合并之外,uid2的會員等級甚至會發生變動。
這就會導致除了合并積分數據之外,還要根據新積分進行判斷,自動更新其會員等級,以及會員權益等,帶來一系列的“非自然”變動。
所有上述的改動其實都是由開發主導的數據修復,我們常常叫“洗數據”。這種非用戶自主觸發的業務數據變更,會帶來最惡心的一點就是,很多模塊數據都要洗,影響范圍巨大,且很容易出現洗錯的情況(人工做的事總有可能出錯),且錯誤會波及到不少業務。所以很多時候,開發是非常反感做這種事的,萬一洗錯了,是要背鍋的。
04 小結
賬號問題的核心其實是賬號的唯一標識,如果在系統剛開始設計的時候就能準確的定義好唯一標識,那么后面基本就不會出現太大的問題和改造需求。
#專欄作家#
司馬特小隊,公眾號:司馬特小分隊,人人都是產品經理專欄作家。8年+互聯網資深產品經驗,多年B端產品管理經驗。具有多個從0到1的大型B端產品的孵化、重構、迭代經驗;主要教授產業互聯網產品相關的硬核知識點。
本文原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議。
道理是那個道理,但是兩個賬戶的內容合并,是否真的有必要
現在好像微信授權以后就自動獲取手機號了,我接觸過的幾個后臺都是這樣。
只能通過小程序授權,獲取手機號碼