프로젝트 목록
02아이스크림아트유입 캠페인과 성과 분석

가입은 늘었지만, 우리가 찾던 고객은 아니었습니다

그림 MBTI 캠페인을 기획하고 퍼포먼스 마케터와 협업했습니다. SQL과 Python으로 일별 가입/구입 데이터를 제공하며, 유입 규모와 타깃 적합성의 차이를 확인했습니다.

CRMSQLPython캠페인 모니터링
맡은 역할캠페인 기획 / SQL 데이터 추출 / Python 집계 / A/B 테스트용 일별 데이터 제공프로젝트 시기2024

실제 자료로 보는 프로젝트

일별 캠페인 현황 보고2024-08-21_mbti_repo.txt / 원문
MBTI 현황 보고 드립니다_2024-08-21
MBTI 25% 쿠폰 발급 누 고객수 : 1505명
오픈 후(7/10) 가입 및 MBTI 진행 고객수 : 1414명
기존 고객 중 MBTI 진행 고객수 : 91명
MBTI 쿠폰 활용 유료결제 고객수 : 19명

쿠폰 발급과 신규/기존 참여, 유료결제를 함께 보고했습니다. 당시 누적 집계이며 캠페인의 순증 효과를 뜻하지 않습니다.

보고에 필요한 고객 행동을 SQL로 추출

쿠폰 발급 여부와 사용 여부를 구분한 원본 쿼리입니다.

SQL / 240730_for_MBTI.sql실제 작성 코드 발췌
    CASE WHEN EXISTS (
        SELECT 1
        FROM bonbon.Coupon C
        WHERE C.user_id = U.id
        AND C.type = 'MBTI_25'
    ) THEN TRUE ELSE FALSE END AS Is_MBTI25,
    CASE WHEN EXISTS (
        SELECT 1
        FROM bonbon.Coupon C
        WHERE C.user_id = U.id
        AND C.type = 'MBTI_25'
        AND C.order_id IS NOT NULL
    ) THEN TRUE ELSE FALSE END AS Is_MBTI25_used,

CASE WHEN EXISTS로 고객별 쿠폰 발급/사용 여부를 확인했습니다. 원본 전체 쿼리는 하단에 제공합니다.

나의 역할기획과 데이터 지원

유입 캠페인 기획, 일별 가입/구입 집계, A/B 테스트에 필요한 데이터 제공

퍼포먼스 마케터의 역할광고 운영과 테스트

매체와 고객군 설정, 광고 집행, A/B 테스트 진행

어떤 문제에서 시작했는가

많은 사람이 가입하면, 성공한 캠페인일까?

아이가 있는 엄마들의 유입과 가입을 늘리기 위해 재미있게 참여할 수 있는 그림 MBTI 캠페인을 기획했습니다. 퍼포먼스 마케터가 매체와 고객군을 설정하고 A/B 테스트 및 광고 집행을 맡았고, 저는 일별 가입과 구입 데이터를 제공했습니다.

판단을 실행으로 연결한 과정

01

퍼포먼스 마케터와 역할을 나눠 실행

캠페인의 유입 아이디어를 구체화하고, 광고 운영에 필요한 데이터를 지원했습니다. 매체 선정, 광고 타깃 설정과 집행은 퍼포먼스 마케터가 담당했습니다.

02

SQL로 가입 이후 행동 확인

회원, 자녀, 주문, 쿠폰 데이터를 연결해 가입 시점과 쿠폰 발급/사용, 결제 현황을 추출했습니다. 광고 운영자가 A/B 테스트를 판단할 수 있도록 일별 데이터를 전달했습니다.

03

Python으로 일별 집계와 보고

pandas로 고객 정보를 정리하고 신규/기존 참여 고객을 구분했습니다. 날짜별 보고서와 CSV를 만들어 반복적으로 현황을 확인했습니다.

남긴 결과

유입과 가입 수치는 나쁘지 않았지만, 실제로는 아이가 있는 엄마보다 MBTI에 관심이 많은 20대 여성의 유입이 많았습니다. 목표 고객을 확보하려던 목적에는 미치지 못한 캠페인이었습니다.

1,505쿠폰 발급 고객
1,414오픈 후 가입 참여 고객
91기존 참여 고객

2024.08.21 원본 보고서의 집계 현황이며 캠페인의 순증 성과가 아닙니다. 유입 고객의 특성과 캠페인 평가는 본인의 수행 경험에 근거합니다.

+

이 경험이 제 일하는 방식에 남긴 것

참여를 유도하는 소재가 제품의 구매 대상과도 맞는지 확인해야 합니다. 이후 캠페인에서는 가입 규모와 함께 타깃 적합성, 가입 후 상품 이용 행동을 판단 기준으로 삼아야 한다고 배웠습니다.

출처와 추가 자료

  • MBTI_report.ipynb
  • 240730_for_MBTI.sql
  • 2024-08-21_mbti_repo.txt
원본 SQL / 고객과 쿠폰, 주문 정보 연결
USE bonbon;

SELECT 
	DATE_ADD(NOW(), INTERVAL 9 HOUR) AS query_time, U.phone_no AS phone_number, U.email_addr AS email, CASE WHEN U.with_drawed_at IS NOT NULL THEN TRUE ELSE FALSE END AS Is_withdrawed,
    U.id AS ID,
    U.created_at AS ID_created_at,
    U.name AS Parent_name,
    S.name AS Student_name,
    S.birth_date AS Student_birthdate,
    CASE WHEN U.marketing_argreed_at IS NOT NULL THEN TRUE ELSE FALSE END AS Is_marketing_agreed,
    U.last_logined_at AS Last_logined_at,
    CASE WHEN EXISTS (
        SELECT 1
        FROM bonbon.Coupon C
        WHERE C.user_id = U.id
        AND C.type = 'MBTI_25'
    ) THEN TRUE ELSE FALSE END AS Is_MBTI25,
    CASE WHEN EXISTS (
        SELECT 1
        FROM bonbon.Coupon C
        WHERE C.user_id = U.id
        AND C.type = 'MBTI_25'
        AND C.order_id IS NOT NULL
    ) THEN TRUE ELSE FALSE END AS Is_MBTI25_used,
    O.package_name AS Latest_payment_product,
    O.price AS Latest_payment_price,
    O.created_at AS Latest_payment_time
FROM 
    bonbon.User U
JOIN 
    bonbon.Student S ON S.user_id = U.id
LEFT JOIN 
    bonbon.Order O ON O.student_id = S.id
LEFT JOIN 
    (
        SELECT 
            student_id,
            MAX(created_at) AS latest_order
        FROM 
            bonbon.Order
        GROUP BY 
            student_id
    ) LO ON O.student_id = LO.student_id AND O.created_at = LO.latest_order

ORDER BY 
    U.id;

참고 자료 / 실제 광고 소재

그림 MBTI 캠페인에 사용한 카카오용 소재입니다. 소재별 테스트 결과를 뜻하지는 않습니다.

그림 MBTI 광고 소재 1안
카카오용 광고 소재 / 1안
그림 MBTI 광고 소재 3안
카카오용 광고 소재 / 3안
원본 자료