카테고리 없음

[TIL] 55일차

unoori 2024. 12. 17. 19:31

주요 KPI 설명

지표 설명 계산식
ROI 투자 대비 수익 (Return on Investment) (Revenue - Cost) / Cost
ROAS 광고비 대비 매출 (Return on Ad Spend) Revenue / Cost
CTR 클릭률 (Click-Through Rate) (Clicks / Impressions) * 100
CVR 전환율 (Conversion Rate) (Conversions / Clicks) * 100
CPA 전환당 비용 (Cost Per Acquisition) Cost / Conversions
CPC 클릭당 비용 (Cost Per Click) Cost / Clicks
CPI 노출당 비용 (Cost Per Impression) Cost / Impressions
Engagement Rate 참여율 (Engagements / Impressions) * 100
Revenue Per Click (RPC) 클릭당 발생 매출 Revenue / Clicks

 

import pandas as pd
import numpy as np

# 데이터 로드
data = pd.read_csv('marketing_data_2016_2024.csv')

# 결측치 처리 (필요시)
data.fillna(0, inplace=True)

# 주요 KPI 계산
data['ROI'] = (data['Revenue'] - data['Cost']) / data['Cost']
data['ROAS'] = data['Revenue'] / data['Cost']
data['CTR'] = (data['Clicks'] / data['Impressions']) * 100
# CTR은 Clicks가 0인 경우 정상적으로 계산되어 0%가 됩니다.

# 클릭이 0일 경우 CVR 및 RPC 계산 방지
data['CVR'] = np.where(data['Clicks'] > 0, (data['Conversions'] / data['Clicks']) * 100, 0)
data['RPC'] = np.where(data['Clicks'] > 0, data['Revenue'] / data['Clicks'], 0)

# 클릭이 0일 경우 CPC 계산 방지
data['CPC'] = np.where(data['Clicks'] > 0, data['Cost'] / data['Clicks'], 0)

# 노출이 0일 경우 CPI 계산 방지
data['CPI'] = np.where(data['Impressions'] > 0, data['Cost'] / data['Impressions'], 0)

# 전환이 0일 경우 CPA 계산 방지
data['CPA'] = np.where(data['Conversions'] > 0, data['Cost'] / data['Conversions'], 0)

# 참여율 (Engagement Rate)
data['Engagement Rate'] = (data['Engagements'] / data['Impressions']) * 100

# KPI 데이터 출력
kpi_columns = ['Campaign Name', 'ROI', 'ROAS', 'CTR', 'CVR', 'CPA', 'CPC', 'CPI', 'Engagement Rate', 'RPC']
kpi_data = data[kpi_columns]

# 결과 저장
kpi_data.to_csv('campaign_kpi_analysis.csv', index=False)

# 출력 확인
print(kpi_data.head())

 

 

  • Impressions는 광고가 화면에 나타난 횟수를 세는 반면, Visibility는 광고가 얼마나 효과적으로 사용자에게 노출되었는지를 측정합니다.
  • Impressions Visibility 포함할 있지만Visibility 광고가 사용자의 화면에서 실제로 얼마나 보였는지에 중점을 둡니다.
지표 목적 이점
ROI (Return on Investment) 광고 투자 대비 수익을 측정하여 캠페인의 효율성을 평가. 캠페인별로 투자 대비 수익이 높은 활동을 파악해 광고비 최적화를 지원.
ROAS (Return on Ad Spend) 광고비 대비 매출 성과를 측정하여 광고 전략의 성과를 확인. 광고비를 어떤 채널, 국가, 캠페인에 배분해야 하는지 데이터 기반 결정을 가능하게 .
CTR (Click-Through Rate) 노출 대비 클릭 비율을 측정하여 광고 콘텐츠의 매력도를 평가. 콘텐츠 또는 타겟팅의 효과성을 파악하고 개선 사항 도출 가능.
CVR (Conversion Rate) 클릭 대비 전환 비율을 측정하여 고객 행동 변환 정도를 평가. 광고의 실질적인 효과(전환 유도 능력) 파악해 전환율이 낮은 영역을 집중적으로 개선 가능.
CPA (Cost Per Acquisition) 고객 명을 전환시키는 드는 평균 비용을 측정. 특정 캠페인의 비용 효율성을 파악하여 자원 낭비를 줄이고 효율적인 광고비 분배 가능.
CPC (Cost Per Click) 클릭당 발생한 비용을 측정하여 클릭 유도 비용을 평가. 비용이 과도한 캠페인을 조정하거나 클릭 유도 방식을 개선할 기회를 제공.
Impressions 광고가 고객에게 노출된 횟수를 측정하여 도달 범위를 평가. 타겟팅된 고객군이 광고를 얼마나 많이 접했는지 확인하여 광고의 노출 전략 조정 가능.
Visibility 광고가 도달할 있는 잠재적인 노출 범위를 측정. 광고의 타겟 도달 가능성을 확인하고, 광고 효과의 기반 데이터로 활용 가능.
Clicks 광고 클릭 횟수를 측정하여 고객의 관심도를 평가. 타겟팅 전략 콘텐츠의 흥미 유발 능력을 직접적으로 평가 가능.
Revenue 캠페인으로 인해 발생한 매출을 측정. 캠페인이 실제로 매출 증가에 얼마나 기여했는지 파악 가능.
Engagement Rate 광고와 고객 간의 상호작용 정도를 평가 (클릭, 좋아요 포함). 캠페인의 콘텐츠 효과와 고객의 관심 수준을 평가하여 나은 콘텐츠 전략 개발 가능.

Visibility 설명

  • 목적: 광고가 노출될 있는 전체 잠재 고객 수를 나타내며, 캠페인의 초기 범위 설정과 관련.
  • 이점: 노출 가능성을 기반으로 Impressions  Clicks 비교하면, **실제 도달률(노출 대비 실현율)** 분석할 있습니다.
  • 활용: Visibility 높지만 CTR이나 Impressions 낮은 경우, 콘텐츠 품질 또는 타겟팅 전략 재조정이 필요합니다.

이렇게 Visibility 추가하면 캠페인의 최초 도달 가능성에서 실제 성과로 이어지는 흐름 구체적으로 이해할 있습니다.

 

 


Visibility가 높지만 CTR(Click-Through Rate)이나 Impressions가 낮은 경우
는 캠페인의 광고 전략과 실행 과정에서 다음과 같은 문제가 있을 수 있습니다.

 

1. 타겟팅 문제 (Audience Mismatch)
• 상황: 광고가 잘못된 고객 그룹에 노출되고 있음.
예를 들어, 제품에 관심이 없거나 구매 가능성이 낮은 연령대, 지역, 또는 관심사를 가진 그룹을 타겟으로 설정한 경우.
• 결과: Visibility는 높지만, 고객이 광고에 반응하지 않아 Impressions와 CTR이 낮게 나옴.
• 해결책:
• 타겟 연령대, 지역, 관심사를 세분화하고 기존 고객 데이터를 기반으로 더 정밀한 타겟팅 적용.
• A/B 테스트를 통해 어떤 타겟 그룹에서 CTR이 높은지 분석.

2. 광고 소재 문제 (Ad Creatives Issue)
• 상황: 광고 디자인, 문구, 또는 메시지가 매력적이지 않음.
예를 들어, 타겟 고객이 클릭하도록 유도할 만한 강렬한 헤드라인이나 시각적 요소가 부족한 경우.
• 결과: 광고가 노출되더라도 관심을 끌지 못해 Impressions는 낮고, 클릭률(CTR) 역시 저조.
• 해결책:
• 광고 카피와 디자인을 개선하여 메시지 전달력을 높임.
• 강력한 Call-to-Action(CTA)을 추가.
• 기존에 CTR이 높은 광고의 특징을 분석하고 유사한 요소를 반영.

3. 광고 배치 문제 (Ad Placement Issue)
• 상황: 광고가 잘못된 플랫폼이나 위치에 노출되고 있음.
예를 들어, 광고가 사용자가 별로 방문하지 않는 웹사이트나 잘 보이지 않는 배너 위치에 게재된 경우.
• 결과: Visibility는 높지만, 실제로 고객이 광고를 접하지 않아 Impressions와 CTR이 낮음.
• 해결책:
• 플랫폼 및 광고 위치 데이터를 분석하여 가장 높은 Impressions와 CTR을 기록한 채널에 예산을 집중 배치.
• Google Ads나 Facebook Ads 등에서 광고 배치 옵션을 재설정하여 최적화.

4. 광고 피로도 (Ad Fatigue)
• 상황: 동일한 광고가 지나치게 많이 노출되어 타겟 고객이 광고를 무시하거나 싫증을 느낌.
• 결과: Visibility는 높지만 고객의 관심이 감소해 Impressions와 CTR이 떨어짐.
• 해결책:
• 광고 크리에이티브를 자주 업데이트하여 신선함 유지.
• 노출 빈도를 제한하는 Frequency Cap 설정.

 

 

Campaign Name Target Audience Reach Impressions Visibility (%)
Campaign A 100,000 80,000 80.0
Campaign B 200,000 150,000 75.0
Campaign C 150,000 140,000 93.33



1 Target Audience Reach: 캠페인이 목표로 설정한 잠재적 노출 수(목표 고객 도달 수).
2 Impressions: 캠페인 실행 중 실제로 광고가 노출된 횟수.

• Impressions를 Target Audience Reach로 나누어 잠재 노출 대비 실제 노출 비율을 계산.
• 결과를 퍼센트로 나타내기 위해 100을 곱함.
8 결과 해석:
• Visibility가 100%에 가까울수록 캠페인이 설정한 목표에 근접하게 도달했음을 의미.
• Visibility가 낮다면 광고 전달이 목표 대비 부족했음을 나타냄.

Visibility가 낮은 경우의 원인
• 캠페인 설정이 현실적이지 않아 목표 고객 도달이 과대평가됨.
• 광고가 부적절한 플랫폼 또는 시간대에 실행됨.
• 경쟁사 광고와의 노출 경쟁에서 밀림.

추가 개선
이 코드를 기반으로 Visibility가 낮은 캠페인을 필터링하거나 추가 분석을 통해 개선 가능성을 탐색할 수 있습니다.