* 태블로(Tableau)에서 데이터 분석 및 시각화, 대시보드 생성하는 법에 대한 글입니다.
▼ 프로젝트 기획안
1. 프로젝트 명
- 효과적인 미디어 플래닝을 위한 마케팅 성과 대시보드
2. 배경 및 문제정의
1) 배경
- 스파르타코딩클럽은 2025년부터 매출 증대를 위한 중장기적인 목표로 lead(잠재고객) 확보 마케팅 캠페인을 진행중
- 2025년 기준 전년대비 광고비 2.7배 가량 투여하며 공격적으로 마케팅한 결과, 총 리드수 2.3배 개선된 3.3만여 명 확보. lead CVR은 0.8%p 개선된 4.01%, CPL은 2.3만원대 기록
- 2026년은 광고 캠페인을 통해 지속적으로 잠재고객을 확보함과 동시에, 매체별 웹사이트 퍼널 분석으로 매출까지 이어지는 고관여 유저의 비중을 높여가고자 함
2) 문제정의
- 2026년 메인 KPI는 lead CVR 4.34%, CPL 18,434원, 서브 KPI는 구매 완료 수 434,520건
└ 2026년 11월 1일 기준으로 KPI 미달인 lead CVR 개선을 목표로 11~12월 미디어 플래닝 전략 마련 필요
3. 프로젝트 목적
리드 전환율(lead CVR) 증대를 위한 2026년도 11월 - 12월 미디어 플래닝 전략 마련
4. 세부 분석 주제
- 광고타입별(or 소스/미디엄별) 리드수 및 lead CVR 성과 분석
- 캠페인별 리드수 및 lead CVR 성과 분석
- 퍼널 분석을 통한 랜딩페이지 이탈률 및 구매 CVR 성과 분석
1. 대시보드 날짜 범위: 매개변수 vs. 필터
- 대시보드 상단에 ① 주요 지표 이름과 값 ② 기간대비 증감 ③ KPI 달성률 표기 & 최상단에 날짜 필터링 추가
└ 이때, 전체 대시보드 데이터의 날짜 필터를 단순 필터를 걸지, 매개변수를 생성해서 걸지 고민함
- 그렇다면, 매개변수 vs. 필터의 차이는?
└ 필터: 데이터 원본에 있는 기존 값을 가지고 항목에 따라 데이터를 필터링함
└ 매개변수: 원본에 없는 값을 활용할 수 있고, 생성된 매개변수를 계산된 필드로 활용해 추가 조건 적용 등 가능
└ 정리하면, 원본 값을 그대로 필터링만 한다면 필터를, 새로운 값을 지정하거나 조건을 적용한다면 매개변수가 좋음
>> 날짜에 따른 증감을 표기하고 싶으므로 매개변수를 생성하기로 결정!
2. 대시보드: 매개변수 활용한 날짜 필터 생성
1) 매개변수 생성
- 매개변수 > 데이터유형 [날짜] > 값은 [범위] > 'Date' 칼럼에서 추가
- 위 과정 반복하여 [StartDate]와 [EndDate] 매개변수 각각 생성
2) 날짜 범위 계산식 적용
# Date_range
[StartDate] <= [Date] and [Date] <= [EndDate]
3) 생성한 날짜범위 계산식은 필터 '참' 선택하여 추가
4) 완성
- 우측 시작날짜와 종료 날짜를 조정하면 해당 기간에 맞는 값이 업데이트 됨
4) 추가: 년월 기준 설정
- 초반 대시보드 스케치 당시엔 년월로 기간을 선택할 수 있도록 yyyy-mm 형식의 매개변수를 생성하고자 함
(시도) 매개 변수 생성 시 값 범위의 단계 크기를 [1 개월]로만 설정
(실패) 데이터는 일자별로 구성돼 있어 2026-10 선택 시, 2026-10-01 데이터만 포함 > 2~31일자 데이터 누락
(해결 방법)
① 날짜 필드에서 년월 정보만 추출하는 신규 필드 [ym] 생성
#ym
str(DATEPART('year', [Date]))+'-'+str(DATEPART('month', [Date]))
② [ym]를 활용해 문자열 매개변수 생성 후, 날짜 범위 계산 필드 적용
#Date_YM_range
[년월] = str(DATEPART('year', [Date]))+'-'+str(DATEPART('month', [Date]))
③ 날짜 범위 [Date_YM_range]를 필터 추가하면 완성!
3. 대시보드: 직전동기간 대비 증감률
- 작업 순서
└ ① 매개변수 기간 내 측정값 생성 > ② 이전 기간 내 측정값 생성 > ③ 증감률 생성(① / ② - 1)
- 하기 계산식 코드 예시는 lead, lead CVR 기준으로만 작성 (다른 지표는 측정값만 변경)
1) 매개변수 설정 기간 내 측정값 생성
- 데이터 원본 측정값을 사용할 경우, 지정한 매개변수 날짜 내 데이터만 출력되므로, 그 이전 데이터는 불러와지지 않음
└ ex. 매개변수 날짜 범위 2024-01-08~14(7일) 선택 시, 나머지 날짜는 null 값 처리되어 기간 비교 불가
- [Date_range] 값은 필터에 추가하지 않아야, 매개변수에 영향을 받는 측정값과 아닌 측정값을 모두 볼 수 있음
#range_true_leads
sum(if [Date_range] = True
then [Leads] end)
# range_true_click
sum(if [Date_range] = True
then [Clicks] end)
# range_true_leadCVR
[range_true_leads]/[range_true_click]
** [Date_range]는 매개 변수 지정값에 따른 날짜 범위 함수_ 2. 2) 내용 참조
- 상기 계산식을 반복하여, 노출, CTR, CPC 등 시각화에 필요한 모든 측정값 추가
└ 매개변수 기간 영향을 받는 측정값 이름은 [range_true_]로 시작되도록 통일
2) 매개변수 설정 기간 대비 직전 동기간 내 측정값 생성
- 증감 날짜 기준: 매개변수로 설정한 기간에서 바로 직전 동기간 대비
└ ex. 2024-01-08~14(7일) 기간 선택 시 증감 비교 기간은 2024-01-01~07 (7일)
- 함수 설명
└ if 조건절에서 DATEADD(날짜기준, 더할 숫자, 기준 날짜) 활용하여 이전기간 설정
: 비교할 날짜는 매개변수 시작날짜([StartDate])에서 총 설정 일수 만큼의 앞에 해당하는 날짜보다 크거나 같음
: 비교할 날짜는 매개변수 마지막날짜([EndDate])에서 총 설정 일수 만큼의 앞에 해당하는 날짜보다 작거나 같음
└ then 절에 원하는 측정값을 넣은 뒤, 전체 if-then 절은 괄호처리하여 계산 함수 적용
: ex. sum(if 날짜 범위 then [leads]) : 날짜가 비교 날짜 범위 안에 있으면 lead 수를 모두 더하기
구분 | 시작날짜([StartDate]) | 마지막날짜([EndDate]) | 총 일수 |
매개변수 지정 날짜 |
2025-01-01 | 2025-01-07 | 7일 |
직전 동기간 (기준날짜 - 총일수) |
2024-12-25 | 2024-12-31 | 7일 |
직전 동기간을 구하는 계산식 함수 |
DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [StartDate]) <= [Date] | [Date] <= DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [EndDate]) | datediff('day', [StartDate], DATEADD('day', 1, [EndDate])) |
#diff_sum_leads
sum
(if
(DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [StartDate]) <= [Date])
AND
([Date] <= DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [EndDate]))
then [Leads]
end)
#diff_sum_click
sum
(if
(DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [StartDate]) <= [Date])
AND
([Date] <= DATEADD('day', -(datediff('day', [StartDate], DATEADD('day', 1, [EndDate]))), [EndDate]))
then [Clicks]
end)
#diff_leadCVR
[diff_sum_leads]/[diff_sum_click]
- 상기 계산식을 반복하여, 비용, CPL 등 증감률 비교가 필요한 모든 측정값 추가
└ 이전 기간의 값 이름은 [diff_]로 시작되도록 통일
3) 증감률 생성
- 상기 매개변수 기간 내 측정값과 매개 변수 이전 기간의 측정값을 나눠서 증감률 계산
#증감_leads
([range_true_leads]/ [diff_sum_leads]) -1
#증감_click
([range_true_click]/ [diff_sum_click]) -1
#증감_leadsCVR
#백분율 지표는 증감을 차이로 계산해 %p로 표기
[range_true_leadCVR]-[diff_leadCVR]
- 증감률에 화살표를 추가하고 싶다면, 숫자서식 > 사용자 지정형식 > ▲0.00%; ▼0.00% 입력
4) 완성 화면 예시
5) 시각화 한 발 더
- 증감률 부분(▲0.25%p, ▼0.63%p)만 음양에 따라 색상을 넣고 싶다면?
└ 증감률 필드를 색상으로 옮기고 단계 2, 가운데 값을 0으로 지정
└ 장점: 적용하면 예쁘고 수치가 한눈에 들어옴
└ 단점(?): 개별 워크시트에서 작업 후 대시보드에서 부동으로 하나씩 넣어줘야 해 다소 번거로움
4. 대시보드: KPI 달성률
1) KPI 수치(달성 목표치)를 매개변수로 생성
- 현재 값은 임의 숫자로 KPI 변경에 따라 수정 가능
2) KPI 달성률 계산
#kpi_rate_lead
([range_true_leads]/[kpi_lead])
#kpi_rate_lead_CVR
([range_true_leadCVR]-[kpi_lead_CVR])
3) 추가: KPI 달성률을 도넛이나 파이 차트 시각화 할 경우
- KPI에 미달한 수치를 별도로 생성하여, 달성치와 미달치를 각 비중에 넣어줘야 함
#kpi_rest_lead
[kpi_lead]-[range_true_leads]
#kpi_rest_lead
[kpi_lead_CVR]-[range_true_leadCVR]
4) 추가 - KPI 달성률과 현시점 기간 진척률을 병기할 경우
- 데이터 마지막 일자까지를 max 함수로 추출한 뒤, KPI 기간 기준 전체 일수를 나누기
#기간 진척률
#2026년도 기준 2026-01-01 ~ 2026-10-31까지 경과 시점
(datediff('day',DATE('2026-01-01'), DATE(max([Date])+1)))
/ (datediff('day',DATE('2026-01-01'), DATE('2027-01-01')))
'TIL' 카테고리의 다른 글
[240311] 실전 프로젝트: 태블로 대시보드 시뮬레이션 대시보드 (0) | 2024.03.12 |
---|---|
[240308] 실전 프로젝트: 태블로 도넛 안에 파이 차트(다중 차원-동일 측정값) (0) | 2024.03.12 |
[240306] 실전 프로젝트: 태블로 퍼널 차트(Funnel Chart) (0) | 2024.03.07 |
[240305] 실전 프로젝트: 태블로 시간대 영역 그래프 및 월별 주번호(week) 생성하여 캘린더 차트 만들기 (0) | 2024.03.05 |
[240304] 실전 프로젝트: 파이썬과 태블로를 활용한 데이터 전처리 (0) | 2024.03.04 |