-
2. A/B 테스트부터 뉴스레터까지, 마케터의 파이썬 활용법마케터 관점의 데이터분석/마케터의 파이썬 활용법 2025. 6. 18. 17:29

01. 광고 캠페인을 함수로 활용
메시지 자동화 : 고객 세그먼트 별 문구 생성
리포트 자동화 : 구매 지표 계산
퍼너별 콘텐츠 템플릿화
기획 → 반복 → 자동화고객 세그먼트 분류에 따라 다른 카피를 작성하고
날짜별로 캠페인 변경과 매주 리포트를 만들 때 마다 엑셀 복붙 작업에...
마케팅 종사자들은 알 것이다.
마케터의 일은 반복 작업이 많다는것...
- 매달 보내는 뉴스레터
- 유입 채널별 웰컴 메시지
- 장바구니 방치 고객 알람
- 결제 완료 후 NPS 요청까지
여기에 있는 모든 마케팅 메시지들을 파이썬 함수(function)로 활용해
마케터들의 반복 업무를 줄일 수 있다.
함수란 무엇인가?
함수를 작업 템플릿라고 생각하는 게 더 편하다.
입력값을 받아 일정한 로직을 처리한 뒤, 결과를 반환하는 작업단위이다.
반복되는 마케팅 메시지, 개인화 로직을 함수로 묶어보자.
함수 기본 구조
def 함수이름(매개변수): 실행할 코드 return 결과값- def : define, 함수 정의 시작
- 매개변수 : 함수에 전달할 값들
- return : 결과값을 되돌려주는 키워드
def welcome_message(name): return f"{name}님, 가입을 환영합니다!"마케팅 퍼널에서 첫 단계 인사는 이런 간단한 로직으로 만들 수 있다.
이걸 수십 수백명에게 적용하기 위해서 함수로 묶을 수 있다.

리마케팅 메시지 함수화 하기
def retargeting_messase(name,benefit): return f"{name}님, 아직 구매하지 않으셨군요! 지금 구매 시 {benefit}"활용 예시:
print(retargting_massage("예지","무료배송")) >> 예지님, 아직 구매하지 않으셨군요! 지금 구매 시 무료배송 혜택을 드려요.함수의 강점은 재사용성이다.
매개변수(parameter)는 메시지를 커스터마이징할 수 있게 해준다.
def send_coupon(name, coupon_code): return f"{name}님, 쿠폰 {coupon_code}를 사용하세요!"A/B 테스트
def cta_text(version): if version == "A": return "지금 할인 받기" else: return "혜택 확인하러 가기"반복 실행해보기
def free_shipping(name): return f"{name}님, 무료배송 쿠폰을 드립니다." for user in ["민지","수빈","지후"]: print(free_shipping(user))customers = [ {"name": "흰둥이", "grade": "VVIP"}, {"name": "철수", "grade": "VIP"}, {"name": "짱아", "grade": "신규"} ] def make_message(name, grade): if grade == "VVIP": return f"{name} 고객님, 프리미엄 혜택을 확인하세요!" elif grade == "VIP": return f"{name} 고객님, VIP 전용 혜택이 도착했습니다." else: return f"{name} 고객님, 신규 고객 할인 쿠폰이 발급되었습니다." for customer in customers: print(make_message(customer["name"], customer["grade"]))마케팅 리포트용 구매지수 계산해 보기
def score_customer(purchase_count, days_sinse_last): score = (purchaes_count * 10) - (days_since_last * 0.5) return score print(score_customer(5,10)) # 누적 구매 5회, 최근 10일 전 마지막 구매 >> 45.0마케팅에서 자주 쓰는 함수 패턴
함수 구조 사용 맥락 def cta(name): CTA 문구 맞춤형 설계 def message(name, product): 상품 추천 메시지 def ab_test(ver): A/B 테스트 메시지 출력 def funnel_text(stage): 퍼널 단계별 카피 분기 def template(**kwargs): 여러 변수 기반 메시지 조합 마케터의 함수
개념 의미 적용 def 함수 선언 메시지 구조 정의 return 실행결과 반환 카피/콘텐츠 출력 매개변수 입력값 고객이름, 등급, 혜택, 구매 수 등 인수 전달값 각 고객 데이터 반복문 + 함수 자동화 구조 다수 고객 메시지 발송 참고:
- 함수 이름은 의도가 드러나게 하기 : send_welcome(), generate_discount_message()...
- 매개변수는 구조 기준으로 : 고객 이름, 채널, 등급, 구매이력 등...
- return은 메시지 최종 결과/실행
- 하나의 함수 = 하나의 캠페인/목적
02. 반복문으로 일괄 콘텐츠 발송 실행해 보자
지금까지 리스트로 고객을 분류하고
딕셔너리로 속성을 읽고
조건문으로 타겟을 나누고
함수로 메시지를 템플릿화했다.
하지만 마케터의 현실은 한 명의 고객에게 아니라 1,000명에게 메시지를 보내야 한다.
이제 반복문으로 이 모든걸 연결해서 자동화 할 수 있다.
- VIP 고객 200명에게 감사 메시지 발송
- 이탈 유저 500명에게 재참여 쿠폰 발송
- 신규 가입자에게 7일간 자동화된 온보딩 메일 시리즈 제공
이런 반복적인 메시지를 수백명에게 보낼 때 파이썬 반복문으로 활용 가능하다.

for문으로 다수의 고객에게 메시지 보내기
users = ["하늘","바다","초원","구름"] for name in users: print(f"{name}님, 6월 혜택이 도착했습니다.")이름만 바꾸고 메시지는 같을 때 for문으로 사용하면 된다.
반복문 + 조건문 + 함수
def send_message(name, tier): if tier == "vip": return f"{name}님, VIP 전용 쿠폰을 확인하세요!" elif tier == "gold": return f"{name}님, 프리미엄 멤버십 혜택이 도착했어요!" else: return f"{name}님, 신규 고객 할인 놓치지 마세요!" customers = [ {"name": "짱아", "tier": "vip"}, {"name": "철수", "tier": "gold"}, {"name": "유리", "tier": "basic"} ] for customer in customers: msg = send_message(customer["name"], customer["tier"]) print(msg)UTM 링크 자동 생성
campaigns = ["summer_sale", "fall_launch", "winter_clearan"] for campaign in campaigns: url = f"https://brand.com/?utm_source=newsletter&utm_campaign={campaign}" print(url)예시 결과
https://brand.com/?utm_source=newsletter&utm_campaign=summer_sale https://brand.com/?utm_source=newsletter&utm_campaign=fall_launch https://brand.com/?utm_source=newsletter&utm_campaign=winter_clearance구매 횟수에 따른 등급 분류
users = [ {"name": "짱아", "purchase": 1}, {"name": "유리", "purchase": 5}, {"name": "맹구", "purchase": 10} ] for user in users: name = user["name"] count = user["purchase"] if count >= 10: grade = "VVIP" elif count >= 5: grade = "VIP" else: grade = "일반" print(f"{name} 고객님은 {grade} 등급입니다.")
while문 알아보기
특정 조건이 True일 때 계속 반복하는 구조
→ 일반적인 마케팅 작업에서는 for가 더 자주 쓸 것 같지만
반복 횟수를 정하지 않고 조건 기반 루프를 만들고 싶을 때 쓸 수 있다.n = 0 while n < 3: print("혜택 알림 발송") # CTA 클릭 유도 메시지 발송 n += 1고객 N명에게 순차적으로 발송하며 특정 조건에서 멈추 보자
customers = ["한우", "삼겹살", "항정살", "연어"] i = 0 while i < len(customers): print(f"{customers[i]}님, 6월 소식 전해드립니다.") i += 1
break & continue
- break: 조건을 만족하면 반복을 종료
- continue: 특정 조건은 건너뛰고 다음으로 넘어감
users = [ {"name": "볶음밥", "responded": False}, {"name": "우육면", "responded": True}, {"name": "닭강정", "responded": False} ] for user in users: if user["responded"]: continue print(f"{user['name']}님, 할인 기간이 얼마 안 남았습니다! 놓치지 마세요!")
A/B 테스트 시나리오 분배
1. 짝, 홀수 인덱스 분배
users = ["고양이", "강아지", "병아리"] versions = ["A", "B"] for i in range(len(users)): version = versions[i % 2] print(f"{users[i]}님, {version} 버전 메시지 발송")균등하게 샘플 빠르게 나누고 싶을 때
2. 랜덤 분배
import random users = ["감자", "고구마", "옥수수", "콩나물", "미나리"] versions = ["A", "B"] for user in users: version = random.choice(versions) print(f"{user}님, {version} 버전 메시지 발송")실험군 무작위 추출할 때, 정확안 샘플링이 어려울 경우.
3. 성별, 채널 등 속성 따라 분배
users = [ {"name": "감자", "channel": "email"}, {"name": "옥수수", "channel": "kakao"}, {"name": "고구마", "channel": "email"}, ] for user in users: if user["channel"] == "email": version = "A" else: version = "B" print(f"{user['name']}님, {version} 버전 메시지 발송")퍼포먼스 할 때 가장 많이 활용.
4. 고정 실험군 테스트
import random users = ["삼겹살", "한우", "우삼겹", "항정살", "목살"] test_group = ["감자", "고구마", "삼겹살"] for user in users: if user in test_group: version = random.choice(["A", "B"]) print(f"{user}님, {version} 버전 메시지 발송") else: version = "C" print(f"{user}님, {version} 버전 메시지 발송")
반복문 요약:
문법 설명 마케팅 적용 for 리스트 순회 다수 고객 대상 콘텐츠 발송 while 조건 반복 퍼널 이탈 고객 조건 체크 break 반복 종료 조건 도달 시 발송 중지 continue 조건 건너뛰기 응답자 제외 등 예외 처리 range() 숫자 기반 반복 N일 캠페인, 반복 테스트
03. 문자열로 카피라이팅 자동화해보기
- CTA 문구 생성
- 퍼너별 카피 분기
- 메시지 A/B테스트
캠페인 타이틀, CTA 문구, SNS 텍스트, 메일 본문작성, 상품명, 쿠폰 메시지 등
어떤 고객에게, 어떤 메시지를, 어떻게 보낼 것인가?
마케터들은 계속 고민하고 하루 종일 텍스트를 다룬다.
파이썬에서는 '문자열(string)' 이라는 자료형으로 표현 할 수 있다.
문자열이란?
큰 따움표 ("") 또는 작은 따움표 ('') 안에 있는 텍스트이다.
title = "2025 썸머 시즌오프 세일" cta = "지금 구매하고 20% 할인 받기"CTA 문구 생성
def generate_cta(discount, urgency): return f"지금{discount}% 할인받기! {urgency}까지 한정!" print(generate_cta(15,"오늘밤"))
문자열 조합으로 카피 A/B 테스트해 보기
a_version = "혜택 받고" b_version = "지금 신청하기" common_tail = "무료배송 받으세요!" print(a_version + " " + common_tail) print(b_version + " " + common_tail)문자열 메서드
메서드 의미 예시 .upper() 대문자화 "welcome".upper() → "WELCOME" .lower() 소문자화 "FREE".lower() → "free" .replace() 텍스트 일부 바꾸기 "무료배송".replace("무료","특별")
→ "특별배송".strip() 앞뒤 공백 제거 " CTA 문구 ".strip() → "CTA 문구" .spilt() 기준나누기 퍼너별 텍스트 생성
def funnel_message(stage): if stage == "awareness": return "지금 브랜드를 처음 만났다면, 이 콘텐츠부터 시작해보세요!" elif stage == "interest": return "관심 있으신가요? 장바구니에 담긴 제품에 혜택이 있어요." elif stage == "conversion": return "결제 단계입니다. 지금 구매하면 사은품을 드려요!" print(funnel_message("interest"))
문자열 연결
prefix = "https://brand.com/promo/" campaign = "summer_sale" link = prefix + campaign print(link)
문자열 길이, 포함 여부, 나누기
text = "지금 구매하면 무료배송 + 10% 쿠폰" print(len(text)) print("무료배송" in text) print(text.split("+"))텍스트 정리할 때
email = "USER@Example.COM" cleaned = email.strip().lower() print(cleaned)
'마케터 관점의 데이터분석 > 마케터의 파이썬 활용법' 카테고리의 다른 글
6. 페이스북 광고 캠페인 전환 분석 (8) 2025.07.22 5. 정적페이지와 동적페이지 데이터 수집 (5) 2025.07.14 4. 웹크롤링으로 마케팅 리서치 해보기 (6) 2025.07.04 3. 전환 조건부터 퍼널 분석까지, 마케터의 파이썬 공부 (5) 2025.06.23 1. 고객 세그먼트부터 타겟팅 로직까지 (4) 2025.06.12