會員筆記[2]: 都知道行銷有4P,但會員經營居然也有4P?

施昕揚
11 min readJul 17, 2024

--

學過行銷的朋友對4P肯定不陌生,也就是 product (產品) 、price (價格) 、place (地點) 、promotion(促銷),而後每一項分別還衍生了4C的概念,Customer (顧客)、Cost (成本)、Convenience (便利)、Communication (溝通),我們可以透過這些面思考不同的行銷組合。

但沒想到,會員經營上居然也有4P?

<MARTECH經營大數據會員行銷>書中就介紹會員三組變數 RFM-4P-TCC

其中會員4P的概念,就是按照購買週期(Purchase cycle)價格敏感度(Price sensitive)促銷敏感度(Promotion sensitive)獲利程度(Profitability)對用戶進行分類。(也能參考大數據會員行銷從「行為分類」開始:這3組顧客變數,你能掌握嗎?一文,一樣是由作者高端訓先生所撰寫),下面來一一幫大家介紹:

購買週期(Purchase cycle)

如果你在看上一篇會員筆記[1]: RFM模型的應用與實踐的Recency(最近一次購買時間,或者作者所說的回籠時間)感到困惑,不確定該怎麼去區分"活躍"與"不活躍"的分界的話,就可以先來確認手上用戶群的購買週期為何。

簡單來說,購買週期可以定義為最近訂單跟上一單的平均間隔天數。以手機為例,目前全球平均換機週期可能已經超過3年,所以買了手機的一般消費者,在3年內買新機的機率就會比較低(當然啦,果粉或手機盤商例外),所以他1年2年都沒有回來消費或瀏覽手機也是很正常的。但如果我們的主力商品是零食餅乾,購買週期可以是一個月甚至一周,而有個用戶3個月都沒回來買,這時可能就要想我們是不是失去這個用戶了。

瞭解這個數字對我們的重要性後,來看看我們怎麼用SQL撈取到用戶的購買週期吧! 一樣假設你已經有個包含會員編號、訂單日期等資訊的order表 (範例中的order_database):

order_rank AS (
SELECT
`會員編號`,
`訂單日期`,
RANK() OVER (PARTITION BY `會員編號` ORDER BY `訂單日期` DESC) AS order_rank
--以每個會員編號分群,用日期排名,最近的日期 RANK = 1
FROM order_database
)

order_cycle AS(
SELECT
DISTINCT od1.`會員編號`,
TIMESTAMP_DIFF(od2.`訂單日期`, od1.`訂單日期`, DAY) AS `訂單間隔天數`
FROM
order_rank AS od1
INNER JOIN
order_rank AS od2
ON
od1.`會員編號` = od2.`會員編號`
WHERE
od1.order_rank = 2
AND od2.order_rank = 1 --自匹配找到最近和次近的訂單日期
)

SELECT
ROUND(AVG(`訂單間隔天數`),0) AS `平均數`,
APPROX_QUANTILES(`訂單間隔天數`, 4)[OFFSET(1)] AS `第一四分位數`,
APPROX_QUANTILES(`訂單間隔天數`, 4)[OFFSET(2)] AS `中位數`,
APPROX_QUANTILES(`訂單間隔天數`, 4)[OFFSET(3)] AS `第三四分位數`
FROM order_cycle;

透過上面資料撈取,我們就能得知用戶訂單間隔天數的基本輪廓,並且可以為"什麼時候該去和用戶溝通"這件事上面有些頭緒。

通常收到這種東西代表你最近都沒消費…

價格敏感度(Price sensitive)促銷敏感度(Promotion sensitive)

在書上兩者是不一樣的維度,但因為彼此有些相似之處我還是把它們擺在一起看!(絕對不是因為我對價格敏感度的操作比較少)

價格敏感度指的是,用戶對商品價格的傾向性,同一類別的產品有不同的價格,有的用戶傾向買低價格的產品,在意CP值; 而另一群用戶傾向高價格的產品,覺得能換來更高的品質。可能這時你會聯想到跟Monetary(營收貢獻)的連結,營收貢獻 = P(件均價)*Q(購買商品件數),價格敏感度會著重去看用戶的購買價格。舉例來說,電動刮鬍刀的價差可能從一千到好幾萬都有,我們就可以透過這個指標去決定對特定用戶個性化推薦時,應該是出現多少價位的刮鬍刀。(另一方面,你也許也對同一商品的價格上升下降會導致多少銷售量變化有興趣,但這就比較像經濟學講的價格彈性,在此就不多著墨)

促銷敏感度則是指在用戶對商品折扣的偏好程度,用戶是否只在行銷活動期間購買? 或也可以直接從訂單資訊判斷,用戶有使用折價券折抵的訂單比例多高? 這些資訊可以讓我們去調整對用戶發送訊息的時間內容。若該用戶折價券折抵的訂單比例如果比較高,搭配上面價格敏感度推送對應的價格門檻和折扣力度,也許這個用戶就會手刀下單!

SQL撈取部分,如果資料庫已經有訂單折抵金額或是是否使用折價券的欄位就非常好操作:

WITH discount_order AS(
SELECT
`會員編號`,
`訂單編號`,
`折前銷售額`,
`折價券折抵金額`,
CASE WHEN `折抵金額`> 0 THEN 1
ELSE 0 END AS `是否用折價券`
FROM order_database
GROUP BY `會員編號`,`訂單編號`
)

SELECT
`會員編號`,
COUNT(DISTINCT`訂單編號`) AS `全訂單`,
SUM(`是否用折價券`) AS `折價券訂單`
ROUND(COUNT(DISTINCT`訂單編號`)/SUM(`是否用折價券`),1) AS `折價券訂單占比`
FROM discount_order

雖然作者沒特別提,但我們可以舉一反三,按照用戶折價券訂單占比的分布去幫他們貼標。假設用戶平均折價券訂單占比的Q1和Q3是20%和60%,可以把20%以下的視為"低促銷敏感",20%~60%視為"中促銷敏感",60%以上的視為"高促銷敏感"。接著可以把促銷簡訊發給這些人來測試看看這個分群能不能有效地分出誰更容易被促銷所驅動!

獲利程度(Profitability)

有點微妙,因為在這邊作者好像突然從用戶維度跳去商品維度,獲利程度指的是哪些商品的獲利(應該泛指毛利)是好的? 有些商品可能價格低賣得多,但從中獲利不多,就是所謂"引流”、"hook” 類型商品,先把人帶進來。以會員經營來說,最常在吸引新戶註冊看到類似的手法如momo $1元星巴克禮券蝦皮新戶免費麥當勞即享券等,就是用超級低價甚至免費的商品來吸引用戶註冊,以求更多人能進站瀏覽、購買其他商品。

看著看著就會想註冊成新會員了!

也有些商品可能默默地帶來不少毛利,也能著手找出放大這些商品銷售量的方法(實務上最簡單的方式就是把這些商品放在能見度更高的版位上)。

剛在講商品,那如果是用戶的獲利程度呢? 這時就不得不提一個觀念叫 "顧客終生價值" (CLV , Customer Lifetime Value),用來估計用戶在與你互動的過程中,平均能產生的獲利貢獻。 但作者把它另外拉出來放在會員三組變數的最後一組 — TCC裡面。

TCC是什麼?

T 指的是消費者的瀏覽及購買時間 (Timing),也就是他們何時進行瀏覽和購買。C 指的是通路 (Channel),例如他們是否會在線下瀏覽商品後在線上購買,或是完全在線上或線下完成購物。最後一個 C 指的就是顧客終生價值。

第一個T,我個人認為用戶瀏覽行為會是一個蠻重要的指標,因為他會是一個很強烈的購物訊號。相比消費紀錄比較像在看後照鏡開車(用戶的生命週期可能隨時戛然而止),如果能確認該用戶最近有瀏覽你的網頁,這可以視為有購買意圖的先行指標,比起未瀏覽的人這些人通常也更容易被溝通到; 另一方面,我們也可以去觀察用戶\大部分會是出沒在早上、中午、下午還是晚上,甚至半夜? 這跟用戶輪廓和他購買的產品性通常也有很大的關係。比方說我觀察到一個用戶,每天早上八點都會固定下單全家冰美式電子票券,我就可以試試在這個時段順帶推播給他麥當勞的豬肉滿福堡。

第二個C,以電商來說不太會去關心線上線下(因為100%是線上),但會去關心渠道。也就是這個用戶是怎麼被吸引進來瀏覽甚至是下單的? 熟悉GA的朋友這時應該就知道這邊指的是Organic, Direct, Paid Media等媒介類型。以個人電商經驗來看,Organic不好就要去優化SEO,Paid Media是廣告媒體負責,Direct則是仰賴整個行銷單位能讓用戶直接點連結進站。

終於講到最後一個C,也就是顧客終生價值(CLV , Customer Lifetime Value,或稱為LTV),直白來說等於 顧客預期生命週期(predicted CLT)*預期產生價值

看到這邊可能就要開始頭痛了,我怎麼會知道一個用戶會跟我互動多久? 更進一步來說,我要怎麼去預測用戶會產生多少利潤呢? 關於這些疑惑,可以參考漸強實驗室(Martech公司)的文章顧客終身價值 LTV/CLV 計算工具!業界案例與常用 3 公式,其中談到幾個要點:

“…首先,品牌通常難以估計出顧客「終身」能夠提供的價值,而是只能針對一段時間去進行估計。再者,品牌通常不會只在意單一消費者的 LTV,而是會更進一步想知道整體顧客平均而言的 LTV,或是某一群顧客的平均值。"

簡單來說,實務上最單純的做法就是去算一段期間內的用戶平均產生貢獻即可,我這邊分享一個簡單的電商版本:

首先,顧客預期生命週期(predicted CLT)直接去抓每個用戶註冊到最近一單的平均天度去估計。

SELECT
DISTINCT `會員編號`,
`會員註冊日期`,
max(`訂單日期`) AS `最近訂單日期`,
DATE_DIFF(max(`訂單日期`),`會員註冊日期`,day) AS `生命週期`
-- 用戶註冊到最近一單的天度
FROM order_database
GROUP BY `會員編號`,`會員註冊日期`
HAVING max(`訂單日期`) IS NOT NULL
ORDER by `會員編號`

預期產生價值的部分,漸強的文章提到可以用"平均客單價"和"平均購買頻率"去相乘(但我其實不太能理解這樣做的好處,因為似乎只是增加了計算的複雜性,但也許是方便後續分析使用 ex. 要增加顧客價值可以從客單價或購買頻率著手),或是也可以直接去抓用戶一段期間內產生的平均銷售額去估計(實務上我是用毛額,因為銷售額其實不代表你從用戶身上賺到的錢):

SELECT
DISTINCT `會員編號`,
`會員註冊日期`,
max(`訂單日期`) AS `最近訂單日期`,
max(`訂單編號`) AS `最近訂單編號`,
DATE_DIFF(max(`訂單日期`),`會員註冊日期`,day) AS `生命週期`,
SUM(`折扣後毛額`) AS `顧客價值`
-- 用戶註冊到最近一單的毛額
FROM order_database
GROUP BY `會員編號`,`會員註冊日期`
HAVING max(`訂單日期`) IS NOT NULL
ORDER by `會員編號`

假設算出來生命週期平均是200天,一天平均能貢獻0.6元毛額,那CLV就是200*0.6=120元。這個數字可以用來幹嘛? 這可以拿來當作行銷活動的一個尺度,比方說你要做一個拉新客活動,在CLV是120元的前提下,150元的拉客成本(CPA)可能就太高了。當然,如果公司的策略是拉人不擇手段,也是可以虧錢去做侵略性的搶奪市佔率。最後,因為這個指標要算可以很複雜,網路上也有很多資源在介紹這個指標,關於更多CLV的計算也可以先參考這篇文章你不能不知道的增長指標 — 用戶全生命週期價值 Customer Lifetime Value (CLTV or CLV)!

介紹完 RFM-4P-TCC,看完所有的變數,相信我們對於會員的輪廓與行為都有更深入的了解,未來有機會會分享更多會員相關的實踐與應用!

--

--