MySQL留存率和復購率的場景分析
發(fā)布日期:2023/1/28 16:21:07 瀏覽量:
轉(zhuǎn)自博客網(wǎng) 原文鏈接 https://www.cnblogs.com/chengyj/p/17068406.html 如有侵權(quán)請聯(lián)系我們刪除
實際工作中常見的業(yè)務場景是求次日留存率,還有一些會對次日留存率增加限制,例如求新用戶的次日留存率或者求活躍用戶留存率。另外,留存率和復購率看起來都是統(tǒng)計重復出現(xiàn)的概率,但實際求解方法是不一樣的。
【場景】:次日留存率、復購率
【知識點】:留存率的定義、復購率的定義、多表連接、date_sub(dt1, interval 1 day) = dt2、datediff(dt1, dt2) = 1
一、分析思路
1、留存率如何定義?
次日留存率 = (當天活躍的用戶第二天又活躍了的用戶數(shù))/(當天活躍的用戶數(shù))
常見的場景是求次日留存率,本文以次日留存率為例。
擴展: 第N日留存率 = (當天活躍的用戶第N天又活躍了的用戶數(shù))/(當天活躍的用戶數(shù))
舉個例子:如果用戶1在1號、2號、3號活躍;用戶2在1號、2號活躍。那么次日留存率是多少?
- 先把上面的活躍記錄按照日期、活躍用戶、次日留存用戶數(shù)整理成下表:
日期 活躍用戶 次日留存用戶數(shù) 1號 用戶1、用戶2 2 2號 用戶1、用戶2 1 3號 用戶1 0 總計 5 3 次日留存率 = 3/5。
2、如何判斷當日活躍的用戶次日又有活躍記錄?
同一個表看成兩個表做連接,使用
![]()
這樣就得到用戶當日和次日的活躍記錄。
- 用戶當日、次日活躍記錄表
用戶 當日 次日 用戶1 1號 2號 用戶2 1號 2號 用戶1 2號 3號 用戶2 2號 None 用戶1 3號 None
3、計算次日留存率
次日留存率 = 次日留存用戶數(shù) / 當日活躍用戶數(shù)
![]()
二、實例
下面就以三個實例講清楚什么是次日留存率、新用戶的次日留存率和復購率。
三種問題的區(qū)別:
| 問題 | 描述 | 特點 | 使用方法 |
|---|---|---|---|
| 次日留存率 | 次日留存率為當天活躍的用戶數(shù)中第二天又活躍了的用戶數(shù)占比 | 固定時間的記錄 | 先獲取用戶、當日和第n日活躍時間記錄表,后按照留存率公式進行計算 |
| 新用戶次日留存率 | 新用戶的次日留存率為當天新增的用戶數(shù)中第二天又活躍了的用戶數(shù)占比 | 限制條件的留存率 | 先獲取新用戶、當日和第n日活躍時間記錄表,后按照留存率公式進行計算 |
| 復購率 | 復購率指用戶在一段時間內(nèi)對某商品的重復購買比例 | 一段時間內(nèi)的記錄 | 先獲取根據(jù)商品、購買人分組,按照購買時間排序后的購買記錄表,后按照復購率公式進行計算 |
(1)計算次日留存率
題目: 現(xiàn)在運營想要查看用戶在某天刷題后第二天還會再來刷題的平均概率。請你取出相應數(shù)據(jù)。
示例:question_practice_detail
| id | device_id | quest_id | result | date |
|---|---|---|---|---|
| 1 | 2138 | 111 | wrong | 2021-05-03 |
| 2 | 3214 | 112 | wrong | 2021-05-09 |
| 3 | 3214 | 113 | wrong | 2021-06-15 |
| 4 | 6543 | 111 | right | 2021-08-13 |
| 5 | 2315 | 115 | right | 2021-08-13 |
| 6 | 2315 | 116 | right | 2021-08-14 |
| 7 | 2315 | 117 | wrong | 2021-08-15 |
| …… |
根據(jù)示例,你的查詢應返回以下結(jié)果:
| avg_ret |
|---|
| 0.3000 |
求解代碼:
- 用戶當日、次日活躍記錄表
擴展:
前往查看:MySQL 日期函數(shù)、時間函數(shù)在實際場景中的應用
(2)計算新用戶的次日留存率
問題:統(tǒng)計2021年11月每天新用戶的次日留存率(保留2位小數(shù))
用戶行為日志表tb_user_log。(uid-用戶ID, artical_id-文章ID, in_time-進入時間, out_time-離開時間, sign_in-是否簽到)
| id | uid | artical_id | in_time | out_time | sign_cin |
|---|---|---|---|---|---|
| 1 | 101 | 0 | 2021-11-01 10:00:00 | 2021-11-01 10:00:42 | 1 |
| 2 | 102 | 9001 | 2021-11-01 10:00:00 | 2021-11-01 10:00:09 | 0 |
| 3 | 103 | 9001 | 2021-11-01 10:00:01 | 2021-11-01 10:01:50 | 0 |
| 4 | 101 | 9002 | 2021-11-02 10:00:09 | 2021-11-02 10:00:28 | 0 |
| 5 | 103 | 9002 | 2021-11-02 10:00:51 | 2021-11-02 10:00:59 | 0 |
| 6 | 104 | 9001 | 2021-11-02 11:00:28 | 2021-11-02 11:01:24 | 0 |
| 7 | 101 | 9003 | 2021-11-03 11:00:55 | 2021-11-03 11:01:24 | 0 |
| 8 | 104 | 9003 | 2021-11-03 11:00:45 | 2021-11-03 11:00:55 | 0 |
| 9 | 105 | 9003 | 2021-11-03 11:00:53 | 2021-11-03 11:00:59 | 0 |
| 10 | 101 | 9002 | 2021-11-04 11:00:55 | 2021-11-04 11:00:59 | 0 |
注:
- 次日留存率為當天新增的用戶數(shù)中第二天又活躍了的用戶數(shù)占比。
- 如果in_time-進入時間和out_time-離開時間跨天了,在兩天里都記為該用戶活躍過,結(jié)果按日期升序。
輸出示例:
示例數(shù)據(jù)的輸出結(jié)果如下
| dt | uv_left_rate |
|---|---|
| 2021-11-01 | 0.67 |
| 2021-11-02 | 1.00 |
| 2021-11-03 | 0.00 |
解釋:
11.01有3個用戶活躍101、102、103,均為新用戶,在11.02只有101、103兩個又活躍了,因此11.01的次日留存率為0.67;
11.02有104一位新用戶,在11.03又活躍了,因此11.02的次日留存率為1.00;
11.03有105一位新用戶,在11.04未活躍,因此11.03的次日留存率為0.00;
11.04沒有新用戶,不輸出。
分析思路
1、如何計算新用戶的次日留存率?
新用戶的次日留存率 = (當日活躍且次日仍活躍的新用戶數(shù))/(當日活躍的新用戶數(shù))
- 先把上面的活躍記錄按照日期、活躍用戶、次日留存用戶數(shù)、每天的次日留存率整理成下表:
日期 活躍用戶 次日留存新用戶 每天的次日留存率 1號 101、102、103 101、103 2/3 = 0.67 2號 101、103、104 104 1/1 = 1 3號 104、105 None 0
2、如何判斷當日活躍的新用戶次日又有活躍記錄?
同一個表看成兩個表做連接,使用
![]()
這樣就得到新用戶當日和次日的活躍記錄。
- 新用戶當日、次日活躍記錄表
用戶 當日 次日 101 1號 2號 102 1號 None 103 1號 2號 104 2號 3號 105 3號 None
3、計算每天的次日留存率
每天的次日留存率 = 次日留存用戶數(shù) / 當日活躍用戶數(shù)在求每天的次日留存率時,注意需要分組,使用group by。
![]()
求解代碼:
- 新用戶當日、次日活躍記錄表
(3)計算復購率
問題:請統(tǒng)計零食類商品中復購率top3高的商品。
商品信息表tb_product_info。(product_id-商品ID, shop_id-店鋪ID, tag-商品類別標簽, in_price-進貨價格, quantity-進貨數(shù)量, release_time-上架時間)
| id | product_id | shop_id | tag | int_ | quantity | release_time |
|---|---|---|---|---|---|---|
| 1 | 8001 | 901 | 零食 | 60 | 1000 | 2020-01-01 10:00:00 |
| 2 | 8002 | 901 | 零食 | 140 | 500 | 2020-01-01 10:00:00 |
| 3 | 8003 | 901 | 零食 | 160 | 500 | 2020-01-01 10:00:00 |
訂單總表tb_order_overall。(order_id-訂單號, uid-用戶ID, event_time-下單時間, total_amount-訂單總金額, total_cnt-訂單商品總件數(shù), status-訂單狀態(tài))
| id | order_id | uid | event_time | total_amount | total_cnt | status |
|---|---|---|---|---|---|---|
| 1 | 301001 | 101 | 2021-09-30 10:00:00 | 140 | 1 | 1 |
| 2 | 301002 | 102 | 2021-10-01 11:00:00 | 235 | 2 | 1 |
| 3 | 301011 | 102 | 2021-10-31 11:00:00 | 250 | 2 | 1 |
| 4 | 301003 | 101 | 2021-10-02 10:00:00 | 300 | 2 | 1 |
| 5 | 301013 | 105 | 2021-10-02 10:00:00 | 300 | 2 | 1 |
| 6 | 301005 | 104 | 2021-10-03 10:00:00 | 170 | 1 | 1 |
訂單明細表tb_order_detail。(order_id-訂單號, product_id-商品ID, price-商品單價, cnt-下單數(shù)量)
| id | order_id | product_id | price | cnt |
|---|---|---|---|---|
| 1 | 301001 | 8002 | 150 | 1 |
| 2 | 301011 | 8003 | 200 | 1 |
| 3 | 301011 | 8001 | 80 | 1 |
| 4 | 301002 | 8001 | 85 | 1 |
| 5 | 301002 | 8003 | 180 | 1 |
| 6 | 301003 | 8002 | 140 | 1 |
| 7 | 301003 | 8003 | 180 | 1 |
| 8 | 301013 | 8002 | 140 | 2 |
| 9 | 301005 | 8003 | 180 | 1 |
場景邏輯說明:
- 用戶將購物車中多件商品一起下單時,訂單總表會生成一個訂單(但此時未付款, status-訂單狀態(tài)- 訂單狀態(tài)為0表示待付款),在訂單明細表生成該訂單中每個商品的信息;
- 當用戶支付完成時,在訂單總表修改對應訂單記錄的status-訂單狀態(tài)- 訂單狀態(tài)為1表示已付款;
- 若用戶退貨退款,在訂單總表生成一條交易總金額為負值的記錄(表示退款金額,訂單號為退款單號,訂單狀態(tài)為2表示已退款)。
注:復購率指用戶在一段時間內(nèi)對某商品的重復購買比例,復購率越大,則反映出消費者對品牌的忠誠度就越高,也叫回頭率
此處我們定義:某商品復購率 = 近90天內(nèi)購買它至少兩次的人數(shù) ÷ 購買它的總?cè)藬?shù)
近90天指包含最大日期(記為當天)在內(nèi)的近90天。結(jié)果中復購率保留3位小數(shù),并按復購率倒序、商品ID升序排序
輸出示例:
示例數(shù)據(jù)的輸出結(jié)果如下:
| product_id | repurchase_rate |
|---|---|
| 8001 | 1.000 |
| 8002 | 0.500 |
| 8003 | 0.333 |
解釋:
商品8001、8002、8003都是零食類商品,8001只被用戶102購買了兩次,復購率1.000;
商品8002被101購買了兩次,被105購買了1次,復購率0.500;
商品8003被102購買兩次,被101和105各購買1次,復購率為0.333。
分析思路
1、如何計算每個商品的復購率?
某商品復購率 = 近90天內(nèi)購買它至少兩次的人數(shù) / 購買它的總?cè)藬?shù)
- 先把上面的購買記錄按照商品、購買用戶、購買次數(shù)、每個商品的復購率整理成下表:
商品 購買用戶 購買次數(shù) 8001 102 2 8002 101 2 8002 105 1 8003 101 1 8003 102 2 8003 105 1 由表可知每個商品的復購率分別為1.000、0.500、0.333。
2、統(tǒng)計每個商品的購買用戶和購買次數(shù)
統(tǒng)計每個貨物用戶的購買記錄。利用窗口函數(shù)根據(jù)貨號、用戶分組按購買時間排序![]()
這樣就得到每個商品的用戶購買記錄排序表。
- 每個商品的用戶購買記錄排序表
商品 用戶 按照購買時間排序 8001 102 1 8001 102 2 8002 101 1 8002 101 2 8002 105 1 8003 101 1 8003 102 1 8003 102 2 8003 104 1
3、統(tǒng)計復購率top3高的商品及復購率
在求商品的復購率時,注意需要分組,使用group by。
![]()
求解代碼:
- 每個商品的用戶購買記錄排名表
三、適用場景
(1)留存率
留存率的作用
留存率是用于反映網(wǎng)站、互聯(lián)網(wǎng)應用或網(wǎng)絡游戲的運營情況的統(tǒng)計指標,其具體含義為在統(tǒng)計周期(周/月)內(nèi),每日活躍用戶數(shù)在第N日仍啟動該App的用戶數(shù)占比的平均值。其中N通常取2、4、8、15、31,分別對應次日留存率、三日留存率、周留存率、半月留存率和月留存率。
留存率常用于反映用戶粘性,當N取值越大、留存率越高時,用戶粘性越高。
實際應用:
游戲直播行業(yè)中,在資本的扶持下游戲直播行業(yè)穩(wěn)定增長,斗魚、虎牙雙巨頭格局形成。
受短視頻進軍游戲直播的沖擊,斗魚、虎牙新安裝用戶規(guī)模同比有下降趨勢,但斗魚新安裝轉(zhuǎn)化率同比微增。提高用戶留存率成為游戲直播行業(yè)發(fā)展的關(guān)鍵,斗魚、虎牙活躍用戶留存率同比均有不同程度的提高。
游戲直播行業(yè)逐漸完善收入模式,變現(xiàn)能力不斷增強。 [1]
在藥物代謝動力學中指:每隔t小時體內(nèi)留存藥量占原藥量的比率。是除了半衰期(T1/2)外另一描述藥物消除規(guī)律的參數(shù)。
如何提高留存率?
- 1、營銷活動刺激
營銷活動能夠刺激用戶消費,而一個好的購物體驗絕對能夠大幅度提升用戶的留存和復購率。所以,有很多商家會通過優(yōu)惠券、滿減等營銷活動,以此來拉進與顧客之間的距離,實現(xiàn)用戶的積累和留存。
常見的活動有拼團、打折等。另外可以設置限時活動,這樣除了給人一種緊迫感之外,也能在短時間里聚集起用戶,調(diào)動用戶的活躍性,提升點擊率。
- 2、簽到打卡機制
簽到玩法在很多app上也能看到,讓用戶連續(xù)簽到7 天、21 天、40 天等,將會獲得不同的獎品福利。
通過簽到活動讓用戶逐漸形成每天打開app看一看的習慣。如果用戶使用體驗很好,那用戶留存率將直線上升,從而逐漸形成穩(wěn)定的客戶群體。
- 3、優(yōu)質(zhì)內(nèi)容互動
優(yōu)質(zhì)的內(nèi)容是留住用戶的關(guān)鍵,用戶對你的內(nèi)容有需求才會來使用,如果有一天內(nèi)容不再優(yōu)質(zhì)了,用戶得不到想要的東西,自然來的就少了。
- 4、承諾留存獎勵:
這種方法常見于一些知識付費類的社群,設置二十天的課程,堅持聽完二十天并認真做好筆記的最終退還學費或者贈送一份超值大禮品。
- 5、履行承諾:
為了吸粉,為了引流,你的宣傳文案中,設置了懸念也好或是承諾了效果也好,一定拋出了不少噱頭,當粉絲真的到來了之后,就是時候還債了,承諾了“進群領(lǐng)紅包”的就要發(fā)紅包了,吹噓了“十天瘦十斤”的就要運用專業(yè)只是為用戶進行介紹了。總而言之無論怎樣都得讓用戶覺得你就是文案中宣傳的那么回事,不能讓用戶進群之后發(fā)現(xiàn)你是夸大宣傳的。
- 6、設置懸念:
對你承諾的內(nèi)容做一份詳細的時間規(guī)劃,把你能提供的價值做一個詳略得當?shù)牟鸱?,并把價值提供的時間戰(zhàn)線控制得不長不短,最有吸引力的內(nèi)容放在最開始展示,這樣以來能讓用戶剛進群就被吸引住,并對日后的內(nèi)容有很大的期待,這樣以來自然不會輕易退群。
(2)復購率
復購率的作用
商品復購率指消費者對該品牌寶貝或者服務的重復購買次數(shù),重復購買率越多,則反應出消費者對品牌的忠誠度和信賴度就越高,反之則越低。
復購率有兩種計算技巧:一種是所有購買過寶貝的顧客,以每個人人為獨立單位重復購買寶貝的次數(shù);另一種是按交易計算,即重復購買交易次數(shù)與總交易次數(shù)的比值。
復購率高有哪些作用?
1、提高回頭率。當新的消費者對店鋪的整體情況有了一些了解,對寶貝的性價比進行分析之后,應該不會排斥對店鋪的關(guān)注。這樣一來,讓他們再一次關(guān)注店鋪,應該不會有哪些難度。
2、提高店鋪的權(quán)重。老客戶對店鋪的寶貝有一些了解,對店鋪服務也會很滿意。第二次再來購買時,幾乎不會給差評。多一個好評,對店鋪權(quán)重的提高會有很大幫助。
3、提高訪客價值。平時,店鋪需要花錢做直通車、鉆展以及淘寶聯(lián)盟等推廣,拼命吸引訪客,爭取提高轉(zhuǎn)化率。有了老客戶,一切都變得不一樣了。既然老客戶第二次或者第N次進店,一定是有所需求,會帶來訪客和成交量。說不定還會推薦新客戶,帶來更多的免費訪客。
4、提高客單價。對于新客戶來說,不太了解店鋪的寶貝以及服務,不敢輕易下手。但是老客戶不同,每一次看到套餐設置,復購率真的會提高。
5、如果用戶丟失嚴峻,缺少忠誠度,粘性低,這時候就要考慮“復購率”。
如何提高復購率?
- 1、剖析用戶行為數(shù)據(jù)
從購物行為來說,用戶購買行為45%的決議都是出于習慣,未曾經(jīng)過思考。怎么養(yǎng)成用戶的購買習慣,這就需要對用戶的全體概況進行了解,包括累計用戶、新增用戶、訂單量、閱讀量、購買用戶數(shù)、重復購買率等等。
分析這些信息能夠看出:哪些用戶只閱讀,從未下單,甚至連下單期望都沒有;哪些用戶是忠實用戶:看的多,買的也多;哪些用戶有大量的收藏、加購行為,但并未下單;哪些用戶會有相似的購買、閱讀行為等等,了解這些數(shù)據(jù)也為制定營銷計劃提供有利的數(shù)據(jù)支撐。
- 2、解讀用戶行為數(shù)據(jù),把握用戶喜愛
借助數(shù)據(jù)剖析工具,調(diào)查用戶的閱讀、購買、收藏等重要行為數(shù)據(jù),然后分析用戶購買了哪些商品,哪些商品看了(或許收藏了)但沒購買,明確用戶喜歡的商品。
- 3、根據(jù)用戶行為,進行精準推薦
根據(jù)會員行為,尋覓二次出售時機。此外,還能夠根據(jù)產(chǎn)品之間的相關(guān)性,進行產(chǎn)品推薦和套裝,提高單個訂單的出售額,添加出售時機。
- 4、滿意度調(diào)查,精準提升質(zhì)量
對于已經(jīng)購買過商品的老用戶來說,獲取用戶的聯(lián)系手段是最簡單不過的了,所以需要提升用戶對于商品的用后體驗,比如定期對老用戶進行商品使用滿意調(diào)查,根據(jù)反饋提高商品的質(zhì)量和客服人員的服務質(zhì)量;
- 5、關(guān)注微信賬號
引導用戶關(guān)注店鋪或賣家的微信公眾賬號,以此可以第一時間獲取店鋪的最新消息;
- 6、針對老用戶的店鋪活動
在節(jié)假日設置一些假日活動,店鋪活動,老用戶會有折上折之類的活動;
- 7、建立獎勵機制
如果新上線的商品或爆款商品,引導用戶參加好評曬照片,后臺設置抽獎或贈送超級會員卡等。
對于一些中小商家來說,想維護好老用戶,就要送一些優(yōu)惠券。當他們第一次購買物品時,送一些代金券,可以刺激他們再一次來復購。不用給予太大的優(yōu)惠力度,幾塊錢的代金券,會讓顧客感到很高興。
馬上咨詢: 如果您有業(yè)務方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術(shù),還有行業(yè)經(jīng)驗積累。
QQ: 39764417/308460098 Phone: 13 9800 1 9844 / 135 6887 9550 聯(lián)系人:石先生/雷先生