手把手教你用 SQL 实现电商产品用户分析
作者介紹
@吃飯第一名的 Claire
美國德克薩斯大學(xué)奧斯汀分校商學(xué)院碩士;
美國某物流公司數(shù)據(jù)分析師;
負(fù)責(zé)數(shù)據(jù)收集、清理、分析、建模、可視化等;
美劇重度愛好者,堅(jiān)信美食能解決大部分問題的終極吃貨;
“數(shù)據(jù)人創(chuàng)作者聯(lián)盟”成員。
用戶行為分析是互聯(lián)網(wǎng)公司的核心分析指標(biāo)。這個(gè)過程需要數(shù)據(jù)分析師通過海量交易數(shù)據(jù),分析(新/老)用戶在整個(gè)產(chǎn)品使用環(huán)節(jié)(隨時(shí)間)的行為路徑,從而發(fā)現(xiàn)異常值,探索出現(xiàn)異常的原因,進(jìn)而減少用戶流失、提升用戶的產(chǎn)品參與度、最后幫助產(chǎn)品實(shí)現(xiàn)持續(xù)性營收。
注:這里的互聯(lián)網(wǎng)產(chǎn)品可以是手機(jī)app、網(wǎng)站平臺(tái)等各種SaaS(Software as a Service)產(chǎn)品,以下皆用“app”來代表以簡化語言。
本文我們以電商平臺(tái)的一組數(shù)據(jù)來深度剖析一下如何進(jìn)行用戶分析,有哪些指標(biāo)要關(guān)注,分別說明了什么問題,這些數(shù)據(jù)結(jié)果又如何指導(dǎo)我們決策。本期文章分為 2 個(gè)模塊:
注:為了更有效的凸顯數(shù)據(jù)帶給我們的洞察,不同模塊采取了不同時(shí)段不同來源的數(shù)據(jù)集,所以數(shù)據(jù)前后不一致是正常的。
?
本文的目的是為了幫助大家搭建數(shù)據(jù)分析的思維,學(xué)習(xí)用 SQL 幫助實(shí)現(xiàn)分析,并通過可視化進(jìn)行呈現(xiàn)和匯報(bào)。
注:全文符合 PostgreSQL 語法格式?
1?數(shù)據(jù)表(表名 events)
非常簡單,5 個(gè)字段,每一行表示某 user 在某 date 某 hour 對(duì)某 item 做了某 behavior,其中 behavior 有 pv (瀏覽/點(diǎn)擊)、fav(收藏)、cart(加入購物車)和 buy(下單支付)4 種。
2?整體統(tǒng)計(jì)分析
通常會(huì)涉及時(shí)間段,總天數(shù),總記錄數(shù),總訪問量,總用戶數(shù),購買用戶數(shù),平均日瀏覽量,平均日用戶量,平均跳出率。
以下是 SQL 代碼:
說明數(shù)據(jù)是從 2020 年 11 月 25 日至 2020 年 12 月 2 日。
我們要面對(duì)的是 8 天將近 90M 的數(shù)據(jù)。
總訪問量,總用戶數(shù)及比值
PV 是 page view,app 被瀏覽/刷新/點(diǎn)擊都算一次。
UV 是 unique visitor,每個(gè)訪問 app 的終端算一個(gè)獨(dú)立訪客。
PV/UV=81 表示在這 8 天的數(shù)據(jù)中,平均每個(gè)用戶訪問頁面 81 次。
購買用戶數(shù)(643,832人)
平均日瀏覽量(10M)要先按 date group by 算出 pv,再求平均值。
平均日用戶量(760K 人)同理
Bounce rate 跳出率(只有一次點(diǎn)擊行為的用戶/總用戶數(shù))
假設(shè)只有一個(gè)頁面可以瀏覽,用戶點(diǎn)進(jìn)頁面后要么收藏加購付款,要么跳出。
得到 8% 的跳失率,說明 8% 的用戶點(diǎn)進(jìn)來,沒有往下轉(zhuǎn)化就流失掉了,公司應(yīng)對(duì)此查看商品詳情頁是不是還需改進(jìn),網(wǎng)頁加載有沒有延遲等問題。
3?用戶行為路徑分析
3.1?漏斗分析
可以是行為數(shù)漏斗,也可以是獨(dú)立訪客數(shù)漏斗,我們這里用后者進(jìn)行分析。
先按用戶,統(tǒng)計(jì)每個(gè)人的行為:
? ?
再計(jì)算每個(gè)行為的用戶數(shù),最后計(jì)算轉(zhuǎn)化率,這里我們的轉(zhuǎn)化率是以 view/click -> favorite/add to cart -> purchase 路徑為基準(zhǔn)進(jìn)行的計(jì)算,并且將收藏和加入購物車的行為進(jìn)行了合并(考慮到這兩個(gè)階段不分先后順序,而且都是確定購買意向的行為)。
這里表示有點(diǎn)擊行為的用戶中,86% 的人都點(diǎn)了加購或者收藏,有上述行為的人又購買的人占所有點(diǎn)擊人數(shù)的 58%。這樣的轉(zhuǎn)化率可是非常不錯(cuò)!
3.2?AARRR 框架
3.2.1 用戶獲取:我們來看看每日新增訪問和購買用戶
每日新增訪問用戶數(shù):
每日新增購買用戶數(shù):
每日新增用戶整體來看都是逐漸減少,12 月 1 日新增購買用戶有一個(gè)回彈,在 11 月27 日以后,每日新增購買用戶數(shù)超過每日新增瀏覽用戶數(shù),說明一部分之前瀏覽的用戶在幾天后開始下單,可以聯(lián)系業(yè)務(wù)部門查看公司有做什么活動(dòng)推進(jìn)了用戶的支付。
3.2.2 用戶留存
是什么:用戶留存率是一批用戶在一定時(shí)間間隔里,某些行為重復(fù)發(fā)生的比例。
用戶可以分為新活躍用戶、老活躍用戶;
時(shí)間通常有次日、7 日、30 日留存,不同 app 由于產(chǎn)品屬性和用戶使用頻率的不同而采用的時(shí)間間隔也不同,內(nèi)容社交類 app 更看重次日留存,電商類可以是按周或者按月,也取決于電商品類,出行旅游類 app 則由于用戶使用頻率低而看重月留存率;
注:行業(yè)基準(zhǔn)(Benchmark)電商產(chǎn)品的平均用戶留存率是 30%,超過 35% 是良好的產(chǎn)品表現(xiàn)。
行為針對(duì)不同 app 可以是完成一次購買,觀看一次視頻,查看一次地圖等。
為什么:用戶留存分析是衡量用戶粘性(持續(xù)使用 APP)的重要指標(biāo),不能只看 DAU/MAU(只能表面的展示產(chǎn)品使用情況),拉新用戶會(huì)掩蓋流失用戶的問題。一個(gè)典型的比喻是把 app 看成水桶,拉新是蓄水,用戶流失是流水,留存率低就意味著水不斷流走,這樣的水桶很難保證恒定的水量,這樣的 app 也不會(huì)有長久穩(wěn)定的發(fā)展。更重要的是拉新的成本是留住老用戶的 5-7 倍。把握好用戶留存能讓你事半功倍。
怎么做:提高用戶留存的方法有很多維度,比如通過郵件、app 消息推送、投放廣告等提醒用戶采取行動(dòng);縮短用戶行為路徑,減少用戶使用 app 成本;給用戶提供多樣的獎(jiǎng)勵(lì);培養(yǎng)用戶習(xí)慣,強(qiáng)化用戶對(duì)產(chǎn)品的依賴等。
我們?cè)谶@里著重介紹如何進(jìn)行用戶留存的分析:同期群分析(Cohort analysis)是用戶留存分析的重要分析方法。
同期群(cohort)是一組在特定時(shí)間做同樣事的人,比如都在 1 月 1 日注冊(cè)賬戶的用戶是一個(gè)同期群,都在 1 月 2 日注冊(cè)賬戶的用戶是另一個(gè)同期群。
同期群分析是一個(gè)測(cè)量用戶對(duì) app 隨時(shí)間參與度的工具,他最常見的分析方式是畫類似如下圖的同期群用戶留存表。
圖源https://clevertap.com/blog/cohort-analysis/,版權(quán)歸作者所有
我先解釋上圖表格每個(gè)維度代表的含義,再展示如何用我們已有的數(shù)據(jù)生成這個(gè)表格。
表格的每一行代表一個(gè)群組,群組 Jan 25 表示 1098 個(gè)用戶都在 1 月 25 日開始使用這個(gè) app,從左往右來看,1 天后的留存率是 33.9%,即在 1098 個(gè)用戶中,1098 X 33.9% = 372 個(gè)用戶繼續(xù)使用了這個(gè) app;7 天后還有 1098 X 14.5% = 159 個(gè)用戶用了這個(gè) app,或者說在這 1098 個(gè)用戶中,平均每 7 個(gè)人中有一個(gè)在 7 天后還是活躍用戶。
注:從左到右來的用戶留存率一般是逐漸降低的,但并不絕對(duì),同一行右邊的留存率可能比左邊大,這里的留存率不要求一個(gè)人每天連續(xù)使用。
縱向來看可以比較不同期用戶同一生命周期的留存,用戶生命周期的早期的留存率能反應(yīng)用戶對(duì)產(chǎn)品的第一印象和接受度。
我們的數(shù)據(jù)來源于電商行業(yè),這里我們用一周比較不同群組之間的留存率。
要生成這個(gè)表格,用 Excel 的 pivot table 很容易做到,但是,我要從數(shù)據(jù)庫用 SQL 取什么樣的數(shù)據(jù)呢?自己思考一下再往下看。
答案:付費(fèi)用戶首次購買產(chǎn)品的日期(周),當(dāng)周購買的新用戶人數(shù),付費(fèi)用戶其他時(shí)間(周)購買和首周的間隔,與首周間隔后的購買人數(shù)。
下面上代碼:
通過 Excel pivot table 我們得到以下表格:
-
我們發(fā)現(xiàn) 12-8 那周和 12-29 那周的一周后留存明顯降低,而這兩周的新增用戶激增,很可能與雙 12 和元旦期間做的促銷和上新有關(guān)。節(jié)日過后,一方面用戶購買欲望降低,另一方面促銷結(jié)束,價(jià)格回升,導(dǎo)致了留存率降低。
-
我們還發(fā)現(xiàn) 12-1 那周和 12-22 所在周首次下單的用戶,一周后的用戶留存顯著高于其他同期群,和業(yè)務(wù)部門溝通后,發(fā)現(xiàn)是市場(chǎng)部在節(jié)日一周前專門做了節(jié)日促銷、滿減、送優(yōu)惠券的宣傳,吸引了用戶注冊(cè),這部分用戶也是為了享受下周的優(yōu)惠而停留,優(yōu)惠過后,留存率又回到了平均水平。
-
通過 cohort table,我們還能應(yīng)該分析出 11-24 所在周首次下單的用戶更有粘性,跟業(yè)務(wù)方溝通發(fā)現(xiàn)那批用戶正是產(chǎn)品進(jìn)行 A/B 測(cè)試,進(jìn)行頁面改變的時(shí)間,說明頁面的改變帶來了一定的效益,數(shù)據(jù)分析師可以和做 A/B 測(cè)試組討論,進(jìn)行進(jìn)一步的驗(yàn)證。
-
通過這組數(shù)據(jù)我們可以發(fā)現(xiàn)大概 77% 的新用戶在購買產(chǎn)品一周后就不再購買,第二個(gè)顯著的下降是在 7 周后。下圖說明該 app 還需提升新用戶留存率,可以從簡化用戶購買路徑,優(yōu)化支付按鈕,提高產(chǎn)品質(zhì)量等角度考慮。
注:實(shí)際工作中看留存率變化會(huì)選定一個(gè)基準(zhǔn)日,比如今天是 2 月 4 日,看 10 天內(nèi)的留存率變化就是以 1 月 25 日為起始,而不是選用各 cohort 的平均值。
當(dāng)然 cohort analysis 也不一定要以時(shí)間為周期進(jìn)行劃分,具有某種共同行為特征的用戶也可以劃分為一個(gè) cohort,這里舉一個(gè) Disney+ 的例子:
圖源https://secondmeasure.com/datapoints/Disney-takes-customer-retention-crown-from-netflix/ ,版權(quán)歸Second Measure所屬
Disney+ 是美國的一個(gè)流媒體平臺(tái),這里他把訂閱者分成了 4 類:為了看 Mulan 訂閱的人、為了看 Hamilton 訂閱的人、和其他服務(wù)一起訂閱的人和普通每月訂閱者。這個(gè)圖告訴我們?cè)谀咎m發(fā)行期訂閱的人中,82% 的用戶在下個(gè)月還訂閱了 Disney+,曾在 Hamilton 發(fā)行期訂閱的人中,只有 75% 還訂閱了下個(gè)月的會(huì)員,而平均 1 月后的留存率是 86%。
3.2.3 復(fù)購分析
提升復(fù)購率是增加收入的重要方法,下面我們進(jìn)行 2 個(gè)維度的分析。
3.2.3.1? 整體復(fù)購率 (購買 2 次及以上的用戶比率)
得出 63% 的用戶都進(jìn)行了復(fù)購,還不錯(cuò)。
3.2.3.2? 用戶復(fù)購次數(shù)分布
復(fù)購 5 次以上的用戶僅占總用戶的 10%。
4?小結(jié)
本期我們用 SQL 進(jìn)行了 SaaS 產(chǎn)品用戶數(shù)據(jù)的初探索、用戶漏斗模型、同期群分析、和復(fù)購分析的實(shí)現(xiàn)。希望下次老板再找你做用戶行為分析的時(shí)候,你不會(huì)沒有頭緒或者手忙腳亂了!
后續(xù)計(jì)劃:別看我們討論的數(shù)據(jù)這么簡單,其實(shí)能做的分析可太多了,這期由于篇幅原因我們先說到這里,下期接著說用戶在時(shí)間維度的分析,RFM 模型分析和商品角度的研究。如果你有學(xué)到一點(diǎn)什么,別忘了點(diǎn)贊 收藏 加關(guān)注哦!
總結(jié)
以上是生活随笔為你收集整理的手把手教你用 SQL 实现电商产品用户分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux删除任务进程命令bkill,
- 下一篇: mysql 对结果重新编号_为MySQL