14.1. Segmentation14.1.1. Customer(๊ณ ๊ฐ) Segmentation14.1.2. Market(์์ฅ) Segmentation14.2. RFM ๋ถ์14.3. ์ฝํธํธ ๋ถ์
ย
14.1. Segmentation
Segmentation์ ๊ณ ๊ฐ์ด๋ ์์ฅ์ ์ ์ฌํ ํน์ฑ์ ๊ฐ์ง ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฅํ๊ณ , ๊ฐ Segment์ ๋ํ ๋ง์ถคํ ๋ง์ผํ
์ ๋ต์ ์๋ฆฝํ๋ ๊ณผ์ ์
๋๋ค. ์ด๋ฅผ ํตํด ๊ธฐ์
์ ๊ณ ๊ฐ์ ๋ ํจ๊ณผ์ ์ผ๋ก ํ์
ํ์ฌ ๋ง์ถคํ ์ ํ ๋๋ ์๋น์ค๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ๊ณ ๊ฐ ๋ง์กฑ๋๋ฅผ ๋์ด๊ณ ๊ฒฝ์ ์ฐ์๋ฅผ ํ๋ณดํ ์ ์์ต๋๋ค.
Segment๋ฅผ ๋๋๋ ๊ธฐ์ค์ ๋ฐ์ดํฐ ๋ถ์์ ๋ชฉ์ ๊ณผ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ธ๊ตฌ ํต๊ณํ์ ๋ถํ , ํ๋์ ๋ถํ , ์ฌ๋ฆฌ์ ๋ถํ ๋ฑ์ ๊ธฐ์ค์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์๋์์๋ ๋ง์ผํ
๋ถ์ผ์ ์ฃผ์ํ ๋ Segmentation์ ๋ํด ์ค๋ช
ํ๊ณ ์ ํฉ๋๋ค.
ย
14.1.1. Customer(๊ณ ๊ฐ) Segmentation
Customer Segmentation์ ๊ณ ๊ฐ์ ๋น์ทํ ํน์ฑ์ ๊ฐ์ง ๊ทธ๋ฃน์ผ๋ก ๋๋์ด, ํน์ ์ ํ, ์๋น์ค ๋๋ ๋ง์ผํ
์ ๋ต์ ๊ณ ๊ฐ์ ๋ค์ํ ์๊ตฌ์ฌํญ๊ณผ ํน์ฑ์ ๋ง๊ฒ ์๋ฆฝํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค.
- ๊ธฐ์ค: ์ง๋ฆฌ์ ์์น, ๋์ด, ์ฑ๋ณ, ์๋, ๊ด์ฌ์ฌ, ๊ตฌ๋งค ๊ธฐ๋ก ๋ฑ
- ๋ชฉ์ : ํน์ ๊ณ ๊ฐ ๊ทธ๋ฃน์ ์๋ณํ์ฌ ๊ทธ๋ฃน๋ณ๋ก ๋ค๋ฅธ ๋ง์ผํ ์ ๋ต, ๊ด๊ณ , ๊ฐ๊ฒฉ ์ ์ฑ ๋ฑ์ ์ํํ์ฌ ๊ณ ๊ฐ๋ค์๊ฒ ๋ ํฐ ๊ฐ์น๋ฅผ ์ ๊ณตํ๊ณ ์ด์ต์ ๊ทน๋ํ
- ์์: โ๋ฏธํผ ๋จ์ฑ, 25-34์ธ, ์๋๊ถ ๊ฑฐ์ฃผ์โ์ ๊ฐ์ด ๊ณ ๊ฐ์ ๊ฒฐํผ ์ฌ๋ถ, ๋์ด, ์ง๋ฆฌ์ ์์น์ ๋ฐ๋ผ ๋ถ๋ฅํ๊ณ , ํด๋น ๊ณ ๊ฐ ๊ทธ๋ฃน์๊ฒ ํํ์ ์ ๊ณตํ๊ฑฐ๋ ํน์ ๊ด๊ณ ๋ฅผ ์ ๋ฌํฉ๋๋ค.
ย
14.1.2. Market(์์ฅ) Segmentation
Market segmentation์ ์์ฅ ์ ์ฒด๋ฅผ ๋ค์ํ segment ํน์ ๋ถ๋ถ ์์ฅ์ผ๋ก ๋๋์ด, ์์ฅ์ ๋ํ ์ดํด๋ฅผ ๋์ด๊ณ ํน์ ๊ณ ๊ฐ ๊ทธ๋ฃน์ ์๋ณํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค.
- ๊ธฐ์ค: ๊ณ ๊ฐ์ ํน์ฑ, ์์ฅ์ ํน์ฑ ๋ฐ ๊ฒฝ์ ์ํฉ(์์ฅ ํฌ๊ธฐ, ๊ฒฝ์์ฌ์ ์ ์ง ๋ฑ)
- ๋ชฉ์ : ๊ฐ ๋ถ๋ถ ์์ฅ์ ๋ํ ํน์ฑ์ ํ์ ํ๊ณ , ์ด์ ๋ฐ๋ผ ๋ง์ผํ ์ ๋ต์ ์กฐ์ ํ์ฌ ์์ฅ์์์ ๊ฒฝ์๋ ฅ ํ๋ณด
- ์์: โ์ปคํผ ์์ฅโ, โํ์ฐ์๋ฃ ์์ฅโ, โ๊ณผ์ผยท์ฑ์๋ฅ ์๋ฃ ์์ฅโ๊ณผ ๊ฐ์ด ์์ฅ์ ์๋ฃ ์ข ๋ฅ์ ๋ฐ๋ผ ๋ถ๋ถ ์์ฅ์ผ๋ก ๋ถ๋ฅํ๊ณ , ๊ฐ ์์ฅ์ ๋ฐ๋ฅธ ๋ง์ผํ ์ ๋ต์ ์ ์ฉํฉ๋๋ค.
ย
14.2. RFM ๋ถ์
RFM ๋ถ์์ด๋ ๊ณ ๊ฐ์ ๊ฐ์น๋ฅผ ๋ถ์ํ๊ธฐ ์ํ ๊ณ ๊ฐ๊ฐ์น ํ๊ฐ ๋ชจํ์
๋๋ค. ๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ ๋ฐ๋ผ ์ธ๋ถํํ๋ฉฐ, ๋ค์ ์ธ ๊ฐ์ง ์์์ ์ฝ์๋ฅผ ํตํด ์ด๋ฆ์ด ์ง์ด์ก์ต๋๋ค.
- Recency (๊ฑฐ๋์ ์ต๊ทผ์ฑ): ๊ณ ๊ฐ์ด ๋ง์ง๋ง์ผ๋ก ๊ฑฐ๋๋ฅผ ํ ๋ ์ง๋ฅผ ๋ํ๋ ๋๋ค. ๊ณ ๊ฐ์ ํ๋ฐ์ฑ์ ๋ํ๋ด๋ฉฐ, ์ต๊ทผ ๊ตฌ๋งคํ ๊ณ ๊ฐ์ ๋ ํ๋ฐํ ๊ณ ๊ฐ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
- Frequency (๊ฑฐ๋์ ๋น๋): ํน์ ๊ธฐ๊ฐ ๋์ ๊ณ ๊ฐ์ด ๊ฑฐ๋๋ฅผ ์ผ๋ง๋ ์์ฃผ ํ๋์ง๋ฅผ ๋ํ๋ ๋๋ค. ๊ณ ๊ฐ์ ์ถฉ์ฑ๋๋ฅผ ๋ํ๋ด๋ฉฐ, ์์ฃผ ๊ตฌ๋งคํ๋ ๊ณ ๊ฐ์ ๋ธ๋๋๋ ์ ํ์ ๋์ ์ถฉ์ฑ๋๋ฅผ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
- Monetary (๊ฑฐ๋์ ๊ท๋ชจ): ๊ณ ๊ฐ์ด ์ผ๋ง๋ ๋ง์ ๊ธ์ก์ ์ง์ถํ๋์ง๋ฅผ ๋ํ๋ ๋๋ค. ๊ณ ๊ฐ์ ๊ฐ์น๋ฅผ ๋ํ๋ด๋ฉฐ, ๋ง์ ๊ธ์ก์ ์ง์ถํ๋ ๊ณ ๊ฐ์ ๊ธฐ์ ์ ๋ ํฐ ๊ฐ์น๋ฅผ ์ ๊ณตํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
ย
RFM ๋ถ์์ ํตํด ๋ถ๋ฅ๋ ๊ณ ๊ฐ ๊ทธ๋ฃน์ ๋ฐ๋ผ ์ฐจ๋ณํ๋ ๋ง์ผํ
์ ๋ต์ ์ธ์ธ ์ ์์ต๋๋ค.
- ๊ณ ๊ฐ ์ดํ ๋ฐฉ์ง: ์ดํ ์ํ ๊ณ ๊ฐ์ ์๋ณํ๊ณ , ์ดํ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์กฐ์น๋ฅผ ์ทจํฉ๋๋ค.
์) ์์ฃผ ๊ตฌ๋งคํ์ง๋ง, ์ต๊ทผ์๋ ๊ตฌ๋งคํ์ง ์์ ๊ณ ๊ฐ์ด ์ดํํ ์ํ์ด ์์ต๋๋ค.
- ์ต๊ณ ๊ณ ๊ฐ ์๋ณ: ๋ง์ ์ง์ถ์ ํ๋ ๊ณ ๊ฐ์น ๊ณ ๊ฐ์ ์๋ณํ๊ณ , ํจ๊ณผ์ ์ผ๋ก ํ๊ฒํ ํฉ๋๋ค.
์) ์ต๊ณ ๊ณ ๊ฐ์๊ฒ ๊ฐ๋ณํ๋ ํํ์ ์ ๊ณตํ์ฌ ์ถฉ์ฑ๋๋ฅผ ๋์ด๊ณ ๋งค์ถ์ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
- ์ ์ฌ ๊ณ ๊ฐ ์๋ณ: ์๋ก์ด ๊ณ ๊ฐ์ ํ๋ณดํ๊ณ , ์ด๋ฅผ ํตํด ์๋ก์ด ์์ฅ์ ๊ฐ์ฒํฉ๋๋ค.
์) ์ง์ถ์ ๋ง์ง๋ง, ์์ฃผ ๊ตฌ๋งคํ์ง ์๋ ๊ณ ๊ฐ์๊ฒ ์ ์ ํ ํํ์ ์ ๊ณตํ์ฌ ์ ๊ธฐ์ ์ธ ๊ตฌ๋งค๋ฅผ ์ ๋ํ ์ ์์ต๋๋ค.
ย
Google Merchandise Store ๋ฐ์ดํฐ์
์ ํตํด ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ฐ์ดํฐ์
์ ์น์ฌ์ดํธ ์ฌ์ฉ์ ๋ฐฉ๋ฌธ ์ ๋ณด์ ๊ด๋ จ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ์ผ๋ณ๋ก ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ฑฐ๋, ์ํ๋ ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํด ์์ผ๋ ์นด๋ ํ
์ด๋ธ์ ์ฌ์ฉํฉ๋๋ค.
์๋ ์์๋ "customer_id" ๋ณ๋ก Recency, Frequency, Monetary๋ฅผ ๊ตฌํ๋ ์ฟผ๋ฆฌ์
๋๋ค.
- Recency: Recency๋ ๊ณ ๊ฐ์ ์ต๊ทผ ํ๋์ ๋ํ๋ด๋ ์งํ๋ก, ๋ฐ์ดํฐ์ ์ date(์ธ์ ๋ ์ง) ์ปฌ๋ผ์ ๊ฐ์ด 20170801๊น์ง ๊ธฐ๋ก์ด ์์ผ๋ฏ๋ก ํด๋น ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ต๊ทผ ๊ฒฐ์ ๊ฐ ์ด๋ฃจ์ด์ง ๋ ์ง์์ ์ฐจ์ด ์ค์์ ์ต์๊ฐ์ ๋ํ๋ ๋๋ค. ์ฆ, ๊ณ ๊ฐ์ด ์ผ๋ง๋ ์ต๊ทผ์ ๊ฒฐ์ ํ ๊ฒ์ธ์ง๋ฅผ ๋ํ๋ด๋ฉฐ, ๊ฐ์ด ์์์๋ก ๋ ์ต๊ทผ์ ๊ฒฐ์ ํ๋ค๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
- Frequency: Frequency๋ ๊ณ ๊ฐ์ด ๊ตฌ๋งคํ ๋น๋๋ฅผ ๋ํ๋ด๋ ์งํ๋ก, ๊ฐ ๊ณ ๊ฐ์ ํ๋ ๋ ์ง๋ฅผ ๊ธฐ๋กํ ๋ฐ์ดํฐ์์ ์ค๋ณต์ ์ ์ธํ ๊ณ ์ ํ ๋ ์ง์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์ด๋ก์จ ๊ฐ ๊ณ ๊ฐ์ ์ธ์ ๋ ์ง ์ค์์ ์ผ๋ง๋ ๋ค์ํ ๋ ์ ํ๋ํ๋์ง๋ฅผ ๋ํ๋ ๋๋ค.
- Monetary: Monetary๋ ๊ณ ๊ฐ์ด ์ด ๊ตฌ๋งคํ ๊ธ์ก์ ๋ํ๋ด๋ ์งํ๋ก, ๊ฐ ๊ณ ๊ฐ์ ์ด ๊ตฌ๋งค ๊ธ์ก์ ํฉ์ฐํ ๊ฐ์ ๋ํ๋ ๋๋ค.
WITH customer_data AS ( SELECT fullVisitorId AS customer_id , DATE_DIFF(DATE '2017-08-01', PARSE_DATE('%Y%m%d', date), DAY) AS recency , COUNT(DISTINCT PARSE_DATE('%Y%m%d', date)) AS frequency , SUM(totals.totalTransactionRevenue) AS monetary FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE totals.transactions IS NOT NULL GROUP BY customer_id, recency ) SELECT customer_id, MIN(recency) AS recency , SUM(frequency) AS frequency , SUM(monetary) AS monetary FROM customer_data GROUP BY customer_id ORDER BY frequency DESC;

์ฟผ๋ฆฌ์ ์ผ๋ถ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ๊ณ ๋ก ํ์ฌ, RFM์ ๋ฐ๋ผ ์์์ ๊ธฐ์ค์ ์ธ์ฐ๊ฒ ์ต๋๋ค.
ย
๊ธฐ์ค
- Recency
- ์ต๊ทผ ๊ฒฐ์ ๋ ์ง๊ฐ โ2017-08-01โ์ ๊ธฐ์ค์ผ๋ก 30์ผ ์ด๋ด์ธ ์ฌ์ฉ์๋ฅผ โrecentโ๋ก ๋ถ๋ฅ
- ๊ทธ๋ ์ง ์์ ์ฌ์ฉ์๋ฅผ โpastโ๋ก ๋ถ๋ฅ
- Frequency
- ์ด ๊ฒฐ์ ํ์๊ฐ 10ํ ์ด์์ธ ์ฌ์ฉ์๋ฅผ โfrequentโ๋ก ๋ถ๋ฅ
- ๊ทธ๋ ์ง ์์ ์ฌ์ฉ์๋ฅผ โinfrequentโ๋ก ๋ถ๋ฅ
- Monetary
- ์ด ๊ฒฐ์ ๊ธ์ก์ด 5000000000 ์ด์์ธ ์ฌ์ฉ์๋ฅผ โhigh-spendingโ์ผ๋ก ๋ถ๋ฅ
- ๊ทธ๋ ์ง ์์ ์ฌ์ฉ์๋ฅผ โlow-spendingโ์ผ๋ก ๋ถ๋ฅ
ย
ํด๋น ๊ธฐ์ค์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. "customer_id"๋ ์์์ ๊ฐ์ผ๋ก ์ฒ๋ฆฌํ์์ต๋๋ค.
ํ | customer_id | Recency | Frequency | Monetary | ๋ถ๋ฅ |
1 | a | past | frequent | low-spending | LHL |
2 | b | recent | frequent | high-spending | HHH |
3 | c | past | frequent | low-spending | LHL |
4 | d | past | frequent | high-spending | LHH |
5 | e | past | frequent | high-spending | LHH |
6 | f | recent | frequent | low-spending | HHL |
7 | g | recent | frequent | high-spending | HHH |
8 | h | past | frequent | low-spending | LHL |
9 | i | recent | frequent | low-spending | HHL |
10 | j | past | frequent | high-spending | LHH |
11 | k | recent | infrequent | high-spending | HLH |
12 | l | past | infrequent | high-spending | LLH |
13 | m | past | infrequent | low-spending | LLL |
14 | n | past | infrequent | low-spending | LLL |
๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก "customer_id"๋ฅผ ๋ถ๋ฅํ๊ณ , ์ฃผ๋ชฉํ ๋งํ ์ฌ์ฉ์ ๊ทธ๋ฃน์ ๋ํด ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
ย
๋ถ๋ฅ
Recency, Frequency, Monetary๋ฅผ ์ํธ์์ฉ ๋น๋์ ๋ฐ๋ผ H(High)์ L(Low)๋ก ๋๋์ด ๋ถ๋ฅํ์ต๋๋ค.
- H(high): R, F, M์ด ๊ฐ๊ฐ recent, frequent, high-spending๊ณผ ๊ฐ์ด ๋์ ์ํธ์์ฉ์ ๋ณด์ด๋ ๊ฒฝ์ฐ
- L(row): R, F, M์ด ๊ฐ๊ฐ past, infrequent, low-spending๊ณผ ๊ฐ์ด ๋ฎ์ ์ํธ์์ฉ์ ๋ณด์ด๋ ๊ฒฝ์ฐ
ย
์ฌ์ฉ์ ๊ทธ๋ฃน
- HHH(b, g): ์ต๊ทผ์ ์์ฃผ ๊ตฌ๋งคํ๊ณ ํฐ ๊ธ์ก์ ์ง๋ถํ ๊ณ ๊ฐ์ผ๋ก, ์์ต์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ์ค์ํ๊ณ ๊ฐ์ฅ ๊ฐ์น ์๋ ๊ณ ๊ฐ ๊ทธ๋ฃน์ ๋๋ค. ์ด ๊ทธ๋ฃน์๋ ํ๋ก๋ชจ์ ๋ฐ ๋ง์ถคํ ํํ์ ์ ๊ณตํ์ฌ ์ถฉ์ฑ๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
- HHL(f, i): ์ต๊ทผ์ ์์ฃผ ๊ตฌ๋งคํ์ง๋ง ์๋์ ์ผ๋ก ์ ์ ๊ธ์ก์ ์ง๋ถํ๋ ๊ณ ๊ฐ์ผ๋ก, ํ์ฌ์ ์ง์์ ์ธ ์ํธ ์์ฉ์ ์ ์งํ๊ณ ์๋ ์ค์ํ ์ถฉ์ฑ ๊ณ ๊ฐ ๊ทธ๋ฃน์ ๋๋ค. ์ถ๊ฐ์ ์ธ ๋ง์ถคํ ํํ ๋ฐ ํ๋ก๋ชจ์ ์ ํตํด ๊ณ์ํด์ ํ์ฌ์์ ๊ด๊ณ๋ฅผ ์ ์งํ๊ณ ํ์ฑํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- LLL(m, n): ์ค๋ ๊ธฐ๊ฐ ๋์ ๊ตฌ๋งคํ์ง ์๊ณ ๊ตฌ๋งค ๋น๋์ ๊ธ์ก ๋ชจ๋ ๋ฎ์ ๊ณ ๊ฐ์ผ๋ก, ์ดํํ ๊ณ ๊ฐ์ ๋ค์ ์ฐพ์์ค๊ฑฐ๋ ์ฌ์ด์ฉํ๋๋ก ์ ๋ํ๋ ๊ฒ์ด ์ค์ํ ์ ์์ต๋๋ค. ์ดํ ๋ฐฉ์ง ์ ๋ต์ ์ ์ฉํ์ฌ ์ดํ๋ฅ ์ ๋ฎ์ถ ์ ์์ต๋๋ค.
ย
๋ฐ๋ผ์, ๊ณ ๊ฐ ์ธ๋ถํ์ RFM ๋ถ์์ ๊ธฐ์
์ ๋น์ฆ๋์ค ์ ๋ต์ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ด๋ฉฐ, ๋ ๋์ ๊ณ ๊ฐ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ๋์์ ์ค ๊ฒ์
๋๋ค. ๊ธฐ์
์ ์ด๋ฅผ ํ ๋๋ก ๊ณ ๊ฐ์ ์ฌ๋ฌ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด ์ค์ํ ๊ณ ๊ฐ์ ์๋ณํ๊ณ ๊ทธ๋ค์๊ฒ ๋ง์ถคํ ๋ง์ผํ
์ ๋ต์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ๊ณ ๊ฐ ๊ฐ์น๋ฅผ ๊ทน๋ํํ๊ณ ์ด์ต์ ํฅ์ํ๊ธฐ ์ํด ์ด๋ฌํ ๊ทธ๋ฃนํ๋ ์ ๊ทผ ๋ฐฉ์์ ํตํด ๋ ๋ง์ ๊ณ ๊ฐ์ ์ ์นํ๊ณ ์ ์งํ ์ ์์ ๊ฒ์
๋๋ค.
ย
14.3. ์ฝํธํธ ๋ถ์
์ฝํธํธ ๋ถ์์ ํน์ ๊ธฐ๊ฐ ๋์ ๊ณตํต๋ ํน์ง์ ๊ฐ๋ ๊ณ ๊ฐ ๊ทธ๋ฃน์ ํ์
ํ๊ณ , ์ด๋ฌํ ๊ณ ๊ฐ ๊ทธ๋ฃน์ ํ๋ ๋ฐ ํน์ฑ์ ํ์
ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์
๋๋ค.

๋ค์์ ์ฌ์ฉ์๊ฐ ์ฑ์ ์ต์ด๋ก ์คํํ ํ, 10์ผ๊ฐ์ ์ฑ ํ์ฑ๋์ ๋ํ ์ฝํธํธ ์งํ์
๋๋ค.
- ์ฌ์ฉ์๋ค์ ์ฑ ํ์ฑ๋๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ฐ์ํ๋ ์ถ์ธ๋ฅผ ๋ณด์ ๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ฑ์ ์ต์ด ์คํํ ๋ ์ง๊ฐ ๋ฆ์์๋ก ์ฑ ํ์ฑ๋๊ฐ ๋ ๋ฎ์ ๊ฒฝํฅ์ ๋ณด์ ๋๋ค.
ย
์ด๋ฌํ ๋ ๊ฐ์ง ์ฌ์ค์ ํตํด, ์งํ์ ๊ฐ๋ก๋ก ํ์๋ ์ฌ์ฉ์ ์๋ช
์ฃผ๊ธฐ(user lifetime)์ ์งํ์ ์ธ๋ก๋ก ํ์๋ ์ ํ ์๋ช
์ฃผ๊ธฐ(product lifetime)๋ฅผ ํ์
ํ ์ ์์ต๋๋ค.
ย
- ๊ณ ๊ฐ ์ดํ ๋ฐฉ์ง: ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ํน์ ๊ตฌ๊ฐ์์ ์ผ๋ง๋ ๋ง์ ๊ณ ๊ฐ์ด ๋์์ค๋์ง ํ์ ํ ์ ์์ผ๋ฏ๋ก, ๊ธฐ์ ์ ๊ณ ๊ฐ์ ์ดํ ํจํด์ ์๋ณํ์ฌ ์ ์ง์จ์ ๋์ด๊ธฐ ์ํ ๋์ฑ ์ ๋ง๋ จํ ์ ์์ต๋๋ค.
- ์ ํ/์๋น์ค ์ํฅ ์ธก์ : ์ ํ ์ ๋ฐ์ดํธ ํ ์ ์ง์จ์ด ๊ฐ์๊ธฐ ๋จ์ด์ง๊ฑฐ๋ ๊ธ์ฆํ๋ฉด ๊ธฐ์ ์ ์ค์ํ ํผ๋๋ฐฑ์ ์ค ์ ์์ต๋๋ค.
- ๋ง์ผํ ํจ๊ณผ ์ธก์ : ํน์ ๋ง์ผํ ์บ ํ์ธ์ ๋ ธ์ถ๋ ๊ณ ๊ฐ ์ง๋จ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ์ฌ ์บ ํ์ธ์ ํจ๊ณผ๋ฅผ ํ์ ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ง์ผํ ์ ๋ต์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
ย
์์ 1
์๋ ์์๋ Google Merchandise Store ๋ฐ์ดํฐ์
์ ํ์ฉํ์ฌ 2016๋
10์์ ์ผ์ ๋ณ ๋ฐฉ๋ฌธ์ ์๋ฅผ ๋ถ์ํ๋ ์ฟผ๋ฆฌ์
๋๋ค.
์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ํตํด ์ฝํธํธ์ ๋ฐ๋ฅธ ํ์ฑ ๋ฐฉ๋ฌธ์ ์์ ๋ํฅ์ ํ์
ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 2016๋
10์ 1์ผ์ ๋ฐฉ๋ฌธํ ์ฌ์ฉ์๊ฐ 2016๋
10์ 2์ผ, 2016๋
10์ 3์ผ ๋ฑ์๋ ๋ฐฉ๋ฌธํ๋์ง๋ฅผ ํ์ธํ์ฌ ์ฌ์ฉ์๊ฐ ๊พธ์คํ ๋ฐฉ๋ฌธํ๋์ง, ์ธ์ ์ดํ๋ฅ ์ด ๋์์ง๋์ง ๋ฑ์ ํ์
ํ ์ ์์ต๋๋ค.
WITH cohort_data AS ( SELECT fullVisitorId AS user_id , PARSE_DATE('%Y%m%d', date) AS visit_date FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20161001' AND '20161031' ), cohort_first_visit AS ( SELECT user_id , MIN(visit_date) AS cohort_date FROM cohort_data GROUP BY user_id ) SELECT cohort_first_visit.cohort_date , cohort_data.visit_date , COUNT(DISTINCT cohort_data.user_id) AS active_users FROM cohort_data JOIN cohort_first_visit ON cohort_data.user_id = cohort_first_visit.user_id GROUP BY cohort_first_visit.cohort_date, cohort_data.visit_date ORDER BY cohort_first_visit.cohort_date, cohort_data.visit_date;


- โcohort_dataโ์์๋ ํน์ ๊ธฐ๊ฐ์ ํ ์ด๋ธ์ ์ ํํ๊ณ , ์ฌ์ฉ์์ ID ๋ฐ ๋ฐฉ๋ฌธ์ผ์ ์ถ์ถํฉ๋๋ค.
- โcohort_first_visitโ์์๋ ์ฌ์ฉ์์ ID ๋ฐ ์ฝํธํธ ๋ ์ง(์ต์ด ๋ฐฉ๋ฌธ์ผ)์ ์ถ์ถํฉ๋๋ค.
- โcohort_activityโ์์๋ ์ฌ์ฉ์์ ์ฝํธํธ ๋ ์ง(์ต์ด ๋ฐฉ๋ฌธ์ผ) ๋ฐ ๋ฐฉ๋ฌธ์ผ ๋ณ ํ์ฑ ์ฌ์ฉ์ ์๋ฅผ ์ถ์ถํฉ๋๋ค.
์ฟผ๋ฆฌ์ ์ผ๋ถ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ์ ๋, ์ฌ์ฉ์์ ์ฝํธํธ ๋ ์ง๋ณ ๋ฐฉ๋ฌธ์ผ์ ํ์ฑ ์ฌ์ฉ์ ์๋ฅผ ์ดํด๋ณด๋ฉด ์๊ฐ์ด ํ๋ฅผ์๋ก ํ์ฑ ์ฌ์ฉ์ ์๋ ๊ฐ์ํ๋ ์ถ์ธ์์ ํ์
ํ ์ ์์ต๋๋ค. ํนํ, ์ฌ์ฉ์๊ฐ ์ฒ์ ๋ฐฉ๋ฌธํ ๋ ๊ณผ ๊ทธ๋ค์ ๋ ์ ํ์ฑ ์ฌ์ฉ์ ์์ ์ฐจ์ด๊ฐ ๊ฐ์ฅ ๊ธ๊ฒฉํ๋ค๋ ๊ฒ์ ํ์
ํ ์ ์์ต๋๋ค.
ย
์์ 2
์๋ ์์๋ ์์ 1๊ณผ ๋์ผํ ์ฟผ๋ฆฌ์
WHERE
์ ์ ์ฝํธํธ ๋ ์ง์ ๋ฐฉ๋ฌธ์ผ์ด ๊ฐ์ ๊ฒฝ์ฐ์ ์กฐ๊ฑด์ ์ถ๊ฐํ์ฌ, ๋ ์ง๋ณ ์ต์ด ๋ฐฉ๋ฌธ์ ์๋ฅผ ๋น๊ต ๋ถ์ํ๋ ์ฟผ๋ฆฌ์
๋๋ค.์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ํตํด ์ฝํธํธ๋ณ ํ์ฑ ์ฌ์ฉ์์ ์๋ฅผ ํ์
ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 2016๋
10์ 1์ผ์ ์ต์ด ๋ฐฉ๋ฌธํ ์ฌ์ฉ์์ ์์ 2016๋
10์ 2์ผ, 2016๋
10์ 3์ผ ๋ฑ์ ์ต์ด ๋ฐฉ๋ฌธํ ์ฌ์ฉ์์ ์๋ฅผ ํ์ธํ์ฌ ์ธ์ ์ ๊ท ์ฌ์ฉ์์ ์๊ฐ ์ฆ๊ฐ ํน์ ๊ฐ์ํ๋์ง๋ฅผ ํ์
ํ ์ ์์ต๋๋ค.
WITH cohort_data AS ( SELECT fullVisitorId AS user_id , PARSE_DATE('%Y%m%d', date) AS visit_date FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20161001' AND '20161031' ), cohort_first_visit AS ( SELECT user_id , MIN(visit_date) AS cohort_date FROM cohort_data GROUP BY user_id ) SELECT cohort_first_visit.cohort_date , cohort_data.visit_date , COUNT(DISTINCT cohort_data.user_id) AS active_users FROM cohort_data JOIN cohort_first_visit ON cohort_data.user_id = cohort_first_visit.user_id WHERE cohort_first_visit.cohort_date = cohort_data.visit_date GROUP BY cohort_first_visit.cohort_date, cohort_data.visit_date ORDER BY cohort_first_visit.cohort_date;


์ฟผ๋ฆฌ์ ์ผ๋ถ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ์ ๋, ์ฌ์ฉ์์ ์ฝํธํธ ๋ ์ง๋ณ ํ์ฑ ์ฌ์ฉ์ ์๋ฅผ ์ดํด๋ณด๋ฉด ์๊ฐ์ด ํ๋ฅผ์๋ก ํ์ฑ ์ฌ์ฉ์ ์๋ ์ฆ๊ฐํ๋ ์ถ์ธ์์ ํ์
ํ ์ ์์ต๋๋ค.
ย
๋ค์์ ์ ์ฟผ๋ฆฌ์ ์ผ๋ถ ๊ฒฐ๊ณผ๋ฅผ ํ๋ก ๋ํ๋ธ ๊ฒ์
๋๋ค. ์ด ํ๋ ์ฌ์ฉ์๊ฐ ์๋น์ค๋ฅผ ์ฒ์ ์ด์ฉํ ์์ ์ ๊ธฐ์ค์ผ๋ก N์ผ ํ ์ฌ๋ฐฉ๋ฌธํ ํ์ฑ ์ฌ์ฉ์์ ์๋ฅผ ์ธก์ ํ๋ ์งํ๋ก, ์ด๋ ๊ณง Retention(์ ์ง์จ) ์งํ์
๋๋ค. Retention์ ๋ํ ์์ธํ ์ค๋ช
์ ๋ค์ ์ฅ์ ์ฐธ๊ณ ํ์ญ์์ค.
active_users /
cohort_date | day 1 | day 2 | day 3 | day 4 | day 5 | day 6 | day 7 |
2016-10-01 | 1513 | 49 | 23 | 15 | 15 | 10 | 13 |
2016-10-02 | 1573 | 41 | 27 | 23 | 10 | 13 | 13 |
2016-10-03 | 2253 | 99 | 56 | 33 | 34 | 19 | 18 |
2016-10-04 | 3909 | 122 | 55 | 40 | 15 | 16 | 43 |
2016-10-05 | 3298 | 95 | 56 | 28 | 23 | 36 | 18 |
2016-10-06 | 2613 | 66 | 20 | 16 | 35 | 27 | 17 |
2016-10-07 | 2462 | 36 | 21 | 33 | 24 | 22 | 14 |
์ด๋ฌํ ๊ฒฐ๊ณผ๋ฅผ ํตํด ์ฌ์ฉ์์ ์ฝํธํธ ๋ ์ง์ ๋ฐ๋ฅธ ํ์ฑ ์ฌ์ฉ์ ๋ํฅ์ ๋ช
ํํ๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
ย
๋ถ์ ๊ฒฐ๊ณผ 1
์ฌ์ฉ์๊ฐ ์ฒ์ ๋ฐฉ๋ฌธํ ๋ ์ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ก ๋ค์ ๋ ํ์ฑ ์ฌ์ฉ์ ์๊ฐ ๊ธ๊ฒฉํ๊ฒ ๊ฐ์ํ๋ ํ์์ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ๋ ์ฌ์ฉ์๊ฐ ์ด๊ธฐ ์ ๊ทผ ํ์ ์ง์์ ์ผ๋ก ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ ์ ์์์ ๋ํ๋ด๋ฉฐ, ์ด์ ๋ํ ๊ฐ์ ๋ฐ ์ ์ง ์ ๋ต์ ๊ฒํ ํ ํ์์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
ย
๋ถ์ ๊ฒฐ๊ณผ 2
2016๋
10์ 04์ผ์ ๋ฐฉ๋ฌธํ ์ฌ์ฉ์ ์๊ฐ 3,909๋ช
์ผ๋ก ๊ธ๊ฒฉํ๊ฒ ์ฆ๊ฐํ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋, ์ดํ 05์ผ, 06์ผ, 07์ผ๋ก ๊ฐ์๋ก ์ฌ์ฉ์ ์๊ฐ ๊ฐ์ํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝํฅ์ ์ด๊ธฐ์ ๊ธ์ฆํ ์ฌ์ฉ์๊ฐ ์ดํ์๋ ์ ์ง๋์ง ์๊ณ , ์ฌ์ฉ์ ์๊ฐ ๊ฐ์ํ๋ ์ถ์ธ๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ, ์ด๋ ์ดํ๋ฅ ์ด ์ฆ๊ฐํ๊ฑฐ๋ ์ฌ์ฉ์์ ๊ด์ฌ์ด ์ ์ฐจ ๋จ์ด์ง๊ณ ์์์ ๋ํ๋
๋๋ค.
์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด์๋ 2016๋
10์ 04์ผ์ ๋ฐ์ํ ๊ธ์ฆํ ์ฌ์ฉ์ ์์ ๋ํ ์์ธ์ ๋ถ์ ๋ฐ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ฉํ์ฌ, ์ฌ์ฉ์ ์ดํ์ ์ค์ด๋ ๋ฏธ๋์ ๋ง์ผํ
์ ๋ต์ ๊ฐ๋ฐํ๊ณ ์ฌ์ฉ์์ ์ฅ๊ธฐ์ ์ธ ์ ์ง๋ฅผ ์ด์งํ๋ ๋
ธ๋ ฅ์ด ํ์ํฉ๋๋ค.