파이썬광고 성과 분석파이썬

광고 캠페인 성과 진단기를 만드는 전체 흐름

· 2026-08-20 발행· 9분 읽기

목차

첫 번째 글에서는 마케터가 왜 파이썬을 배워야 하는지 이야기했어요. 반복 업무를 사람이 매번 처리하는 대신, 같은 기준으로 다시 실행할 수 있는 시스템으로 바꾸기 위해서였죠.

두 번째 글에서는 그 가능성을 실제 결과물로 보여드렸습니다. 광고 데이터를 입력하면 CTR·CVR·CPC·CPA·ROAS를 계산하고 목표 달성 여부까지 알려주는 광고 캠페인 성과 진단기를 공개했어요.

이번에는 완성된 코드의 세부 문법으로 바로 들어가기 전에 한 걸음 물러나 보려고 합니다.

이 프로그램은 왜 필요했고, 입력한 데이터는 어떤 순서로 움직이며, 그 안에는 어떤 파이썬 개념이 연결되어 있을까요?

긴 코드를 이해하는 첫 단계는 모든 줄을 번역하는 것이 아니라, 프로그램이 어떤 질문을 어떤 순서로 해결하는지 보는 것입니다.

프로그램의 모든 출발은 반복에서 오는 불편함에서 시작한다.

광고 관리자 화면을 열면 광고비·노출·클릭·전환·매출 같은 숫자가 보입니다. 하지만 숫자가 있다는 것과 성과를 판단할 수 있다는 것은 다른 문제예요.

예를 들어 ROAS가 280%인 캠페인이 있다고 해볼게요. 이 숫자만으로는 좋은 성과인지 판단하기 어렵습니다. 목표가 250%였다면 달성한 것이지만, 목표가 400%였다면 개선이 필요하니까요. CPA도 마찬가지입니다. 15,000원이 높거나 낮은지는 우리가 정한 허용 비용과 비교해야 알 수 있어요.

그래서 프로그램을 만들기 전에 먼저 질문을 세 단계로 나눴습니다.

광고 캠페인의 성과를 진단하고 싶다
→ 무엇을 목표 달성의 기준으로 삼을지 정한다
→ 실제 성과를 같은 기준과 비교한다

이 프로그램에서는 목표 ROAS와 목표 CPA를 진단 기준으로 사용합니다. 그리고 캠페인 데이터를 바탕으로 다섯 가지 지표를 계산합니다.

지표 확인하는 질문
CTR 광고를 본 사람 중 얼마나 클릭했는가?
CVR 클릭한 사람 중 얼마나 전환했는가?
CPC 클릭 한 번을 얻는 데 얼마를 썼는가?
CPA 전환 한 건을 얻는 데 얼마를 썼는가?
ROAS 광고비 대비 얼마의 매출을 만들었는가?

CTR·CVR·CPC는 성과가 만들어지는 과정을 살펴보는 지표이고, CPA와 ROAS는 미리 정한 목표와 비교해 최종 상태를 판단하는 기준이 됩니다.

진단은 숫자를 계산하는 데서 끝나는게 아니죠. 계산한 숫자를 미리 정한 기준과 비교하는 그 때, 비로소 판단 할 수 있게 됩니다.

프로그램은 일곱 단계를 차례로 통과합니다

광고 캠페인 성과 진단기의 전체 흐름은 다음과 같습니다.

문제 정의
→ 데이터 입력
→ 입력 검증
→ 성과 지표 계산
→ 목표 기준과 비교
→ 전체 성과 요약
→ 화면 출력과 파일 저장

각 단계에는 분명한 질문과 역할이 있습니다.

단계 프로그램이 묻는 질문 코드가 하는 일
1. 문제 정의 무엇을 판단하려는가? 광고 캠페인의 목표 달성 여부를 진단 대상으로 정한다.
2. 데이터 입력 판단에 어떤 값이 필요한가? 목표 ROAS·CPA와 캠페인별 광고비·노출·클릭·전환·매출을 읽는다.
3. 입력 검증 이 데이터를 계산에 사용해도 되는가? 누락값·음수·중복 캠페인명과 전환 > 클릭 > 노출 같은 잘못된 관계를 찾는다.
4. 지표 계산 원자료를 어떤 의미 있는 숫자로 바꿀 것인가? CTR·CVR·CPC·CPA·ROAS를 계산한다.
5. 목표 판정 계산값이 기준을 충족했는가? 목표 달성·부분 달성·개선 필요·판정 보류로 구분한다.
6. 전체 요약 캠페인을 모두 합치면 성과는 어떠한가? 정상 데이터만 합산해 통합 CPA와 ROAS를 다시 계산한다.
7. 결과 출력 사람이 결과를 어떻게 확인할 것인가? 결과를 화면에 보여주고 JSON 파일로 저장한다.

이 순서에서 중요한 점은 계산보다 검증이 먼저라는 것입니다. 클릭이 노출보다 많거나 전환이 클릭보다 많은 데이터까지 그대로 계산하면, 수식은 작동해도 진단 결과는 믿을 수 없어요.

그래서 잘못된 캠페인은 오류 이유를 남기고 집계에서 제외합니다. 정상 데이터만 계산과 전체 요약 단계로 이동하고요.

좋은 프로그램은 정답만 빠르게 계산하는 코드가 아니라, 잘못된 입력이 정답처럼 보이지 않게 막는 코드이기도 합니다.

데이터 한 건의 이동 경로를 따라가볼게요

목표와 캠페인 한 건을 다음처럼 입력했다고 가정해보겠습니다.

목표 ROAS: 300%
목표 CPA: 20,000원

캠페인: 여름 세일
광고비: 300,000원
노출: 50,000회
클릭: 1,200회
전환: 34건
매출: 1,050,000원

먼저 프로그램은 여섯 개 필수 항목이 모두 있는지, 숫자가 음수는 아닌지, 전환 수가 클릭 수보다 많지는 않은지 확인합니다. 문제가 없다면 다음 지표를 계산해요.

CTR = 1,200 ÷ 50,000 × 100 = 2.40%
CVR = 34 ÷ 1,200 × 100 ≈ 2.83%
CPC = 300,000 ÷ 1,200 = 250원
CPA = 300,000 ÷ 34 ≈ 8,824원
ROAS = 1,050,000 ÷ 300,000 × 100 = 350%

그다음 계산 결과를 목표와 비교합니다.

  • ROAS 350%는 목표 300% 이상입니다.
  • CPA 약 8,824원은 목표 20,000원 이하입니다.
  • 두 기준을 모두 충족했으므로 이 캠페인은 목표 달성으로 판정됩니다.

캠페인이 여러 개라면 같은 과정을 반복합니다. 마지막에는 오류가 없는 캠페인의 광고비·전환·매출을 각각 합친 뒤, 전체 CPA와 ROAS를 다시 계산합니다. 개별 캠페인의 비율을 단순 평균하지 않고 전체 합계에서 다시 계산해야 캠페인 규모가 제대로 반영되기 때문이에요.

이 프로그램으로 배우게 될 파이썬의 큰 개념

이제 전체 흐름을 파이썬 학습 지도로 바꿔보겠습니다. 지금은 문법을 외우기보다 각 개념이 프로그램에서 어떤 문제를 해결하는지만 보면 충분합니다.

1. 입력·처리·출력으로 문제 나누기

모든 프로그램은 무엇을 받아서, 어떤 규칙으로 처리하고, 무엇을 내보낼지 결정하는 일에서 시작합니다.

  • 입력: 목표값과 캠페인 데이터
  • 처리: 검증·계산·판정·집계
  • 출력: 화면 보고서와 결과 JSON

이 구조를 알면 긴 코드도 하나의 덩어리가 아니라, 데이터가 이동하는 경로로 볼 수 있습니다.

2. 자료구조로 업무 데이터를 표현하기

캠페인 하나는 이름·광고비·노출·클릭·전환·매출을 가진 딕셔너리로 표현합니다. 여러 캠페인은 리스트에 담고, 이미 나온 캠페인명은 집합으로 기억합니다.

딕셔너리·리스트·집합은 문법 문제가 아니라 현실의 업무 데이터를 코드 안에서 어떤 모양으로 표현할 것인지에 대한 선택입니다.

3. 함수로 역할 나누기

파일을 읽는 일, 데이터를 검증하는 일, 지표를 계산하는 일, 결과를 출력하는 일을 서로 다른 함수가 맡습니다. 역할을 나누면 한 부분을 수정할 때 다른 부분에 미치는 영향을 줄이고, 원하는 기능만 따로 확인하기도 쉬워집니다.

4. 조건문과 반복문으로 판단을 자동화하기

프로그램은 여러 캠페인을 반복해서 확인하고, 데이터가 정상인지 조건에 따라 나눕니다. ROAS와 CPA가 모두 목표를 달성했는지, 하나만 달성했는지, 둘 다 미달했는지도 조건의 조합으로 판정해요.

사람이 보고 판단하던 업무 규칙이 for, if, all, any 같은 제어 구조로 옮겨지는 지점입니다.

5. 검증과 예외 처리로 신뢰할 수 있는 결과 만들기

파일을 찾을 수 없거나 JSON 형식이 잘못될 수 있습니다. 필수값이 빠지거나 0으로 나눌 수 없는 상황도 생길 수 있고요.

이 프로그램은 오류를 모두 같은 방식으로 처리하지 않습니다. 전체 실행이 불가능한 오류는 중단하고, 캠페인 한 건의 오류는 이유를 기록한 뒤 다음 캠페인을 계속 처리합니다. 즉, 예외 처리는 단순히 에러 메시지를 보여주는 기술이 아니라 프로그램이 실패를 다루는 정책입니다.

6. 계산과 집계로 원자료를 의사결정 정보로 바꾸기

광고비·클릭·전환·매출은 원자료입니다. 이를 나누고 합산해 CTR·CPA·ROAS 같은 지표로 바꾸면 비교 가능한 정보가 됩니다.

여기서는 0으로 나누는 상황, 반올림, 개별 지표와 통합 지표의 차이까지 함께 다루게 됩니다.

7. JSON과 파일 입출력으로 프로그램의 경계 연결하기

프로그램 밖에 있던 JSON 파일을 파이썬 객체로 읽고, 계산한 결과를 다시 JSON 파일로 저장합니다. 이 과정을 통해 코드 내부의 계산이 실제 업무에서 재사용할 수 있는 입력물과 결과물로 연결됩니다.

완성된 프로그램은 어려운 문법 하나로 만들어진 것이 아니라, 작은 역할을 맡은 개념들이 정해진 순서로 협력한 결과입니다.

이제 큰 지도에서 작은 코드로 들어갑니다

이번 글에서는 코드 한 줄 한 줄보다 프로그램의 전체 흐름을 먼저 봤습니다.

왜 만드는가?
→ 무엇을 기준으로 삼는가?
→ 어떤 데이터를 받는가?
→ 잘못된 데이터를 어떻게 막는가?
→ 어떤 지표를 계산하는가?
→ 기준과 어떻게 비교하는가?
→ 결과를 어떻게 보여주는가?

앞으로는 이 지도 위에서 자료구조, 함수, 조건문과 반복문, 검증과 예외 처리, 계산과 집계를 하나씩 떼어 살펴보려고 합니다. 각각의 문법이 어디에 쓰였는지보다, 왜 이 프로그램에 필요했는지를 먼저 설명할게요.

먼저 광고 캠페인 성과 진단기에 예제 데이터를 넣어 입력과 결과가 어떻게 연결되는지 확인해보세요. 전체 코드는 GitHub 저장소에서 볼 수 있습니다.

이제 코드 해부 1편인 파이썬으로 JSON 파일 읽고 저장하기: 광고 데이터의 입력과 출력에서 프로그램의 시작과 끝을 살펴보세요.

이어지는 2편 광고 데이터를 코드 안에 담는 법: 딕셔너리·리스트·집합에서는 광고 데이터가 코드 안에서 어떤 자료구조로 표현되는지 확인할 수 있습니다.

3편 잘못된 광고 데이터를 막는 검증과 예외 처리에서는 그 데이터가 계산에 사용해도 되는지 검증하고, 오류의 범위에 따라 전체 실행과 개별 캠페인을 다르게 처리하는 방법을 살펴봅니다.

4편 0으로 나눌 수 없는 광고 지표는 어떻게 계산할까에서는 검증을 통과한 데이터로 CTR·CVR·CPC·CPA·ROAS를 계산하고, 분모가 0인 값을 안전하게 다루는 방법을 확인합니다.

마지막 5편 전체 성과를 하나로 합치는 조건문·반복문·집계에서는 계산된 지표를 목표와 비교하고, 여러 캠페인에 같은 규칙을 적용해 전체 성과로 집계하는 과정을 완성합니다.

관련 키워드

파이썬광고 성과 분석마케팅 자동화ROASCPA프로그램 설계

앤디의 마케팅노트

마케팅을 시스템으로 만드는 과정을 매주 기록해요. 잘 된 것도, 안 된 것도 같이 봐요.

maily에서 구독하기