← 업무 목록

ATC붕괴_원인규명.md

ATC율 붕괴 원인규명 — 측정 문제인가 실제 이탈인가

작성 2026-09-18 / 김서연(퍼포먼스팀)

귀속창 7d_click 단일창 / 메타 원천 meta_ad_daily_2602_2609.json / 픽셀 Graph API v21.0 /stats 실조회 / 주문 cafe24_orders_0801_0916.json(결제완료 paid=T만)


1. 한 줄 결론

측정 문제 아니다. 실제 이탈이다. 단, "ATC율 붕괴"의 절반은 ATC 자체가 아니라 랜딩 믹스 교체가 만든 착시다.

근거 3개가 같은 방향을 가리킨다.

① 픽셀은 정상 발화 중       사이트 전체 AddToCart가 브라우저에서 그대로 찍히고 있다.
                          9/01~9/16 사이트 ATC 3,418건 실측. 수집 누락이면 0에 수렴해야 한다.
② 메타 밖에서도 떨어졌다     비메타 유입 ATC/VC 9.36% → 8.16% (−12.8%).
                          픽셀 코드 문제였다면 메타/비메타가 같은 폭으로 떨어져야 한다.
③ 그런데 메타가 3.5배 더 떨어졌다  메타 ATC/VC 10.62% → 5.85% (−44.9%).
                          메타 고유 요인이 추가로 있다 = 랜딩 P/130.

결정타: 같은 기간(8/20~9/09) 동시 집행된 O/130과 P/130을 비교하면

ATC/LPV 27.16% vs 7.24%, z = 19.90. 구매/LPV도 7.16% vs 2.40%, z = 8.39.

시기·계절·경쟁 요인이 전부 제거된 상태에서 랜딩만 다른데 4배 차이가 난다.


2. 주문 대비 ATC 비율 (8월 비공구 vs 9월)

8월은 공구 오염 72.7%이므로 비공구 주문만 사용했다.

공구 분리 기준은 주문 item의 product_name에 공구 키워드(공동구매·티벳동생·티동구독자·마켓) 포함 여부.

구간일수비공구주문일평균메타ATC메타구매ATC÷비공구주문
8/01~8/10 (공구폭발)1042342.32,0848244.93
8/11~8/19 (공구희박)941646.26581621.58
8/20~8/31 (공구2차)1246238.51,1063752.39
9/01~9/161652833.05491721.04
9/09~9/16 (공구 0건급)824430.5209690.86

판정: 비공구 실주문 일평균은 38.5 → 30.5로 −20.7% 줄었다.

같은 기간 메타 ATC 일평균은 77.2 → 26.1로 −66.2% 줄었다.

주문이 20% 줄 때 ATC가 66% 줄었다 → 수요 감소만으로는 설명 안 된다.

그러나 ATC가 0으로 가지 않고 주문과 같은 방향으로 움직였다 → 측정 붕괴도 아니다.

둘 다 아닌 제3의 요인이 남는다.


3. 픽셀 이벤트 실측 (교차 확인 결과 포함)

3-1. 픽셀 상태 — 정상

GET /v21.0/1041654120469920 실조회:

name                      플로에 PLOE
last_fired_time           2026-09-17T23:51:52+0000   ← 살아있다
enable_automatic_matching true
first_party_cookie_status first_party_cookie_enabled
data_use_setting          advertising_and_analytics

GET /da_checks → 진단 2건 모두 passed.

3-2. 일별 이벤트 실측 (/stats?aggregation=event, 시간버킷을 일별 합산)

날짜PageViewViewContentAddToCartInitiateCkPurchaseATC/PV
08-237,2266,52673678621810.19%
08-276,8886,2975779542038.38%
08-314,4703,7063444731247.70%
09-052,4123,121150180346.22%
09-111,9011,756107157305.63%
09-162,2771,970142207526.24%

AddToCart는 27일 내내 단 하루도 0이 아니다. 수집 파이프라인은 끊기지 않았다.

3-3. 교차 확인 — 값이 맞지 않는 지점을 그대로 기록한다

카드에 "주간 131건이 나왔으나 실제는 26.7만 건"이라는 이력이 있어 3경로로 교차했다.

경로결과판정
/stats?aggregation=event8/21~9/16 일별 확보사용 가능
/stats?aggregation=hostploe.co.kr + ploe.cafe24.com 분리 확인합계 정합
픽셀 Purchase ÷ Cafe24 실결제주문1.65 / 1.70 / 1.80배아래 참조

픽셀 Purchase가 실주문의 1.65~1.80배로 과다 발화 중이다.

ploe.co.kr와 ploe.cafe24.com 두 호스트에서 같은 픽셀이 뜨는 것, 그리고 주문완료 페이지 새로고침이 후보다.

다만 배수가 기간 내내 1.65→1.80으로 안정적이므로 기간 간 추세 비교에는 영향이 없다. 절대 CPA 계산에는 영향이 있다.

→ 이건 이번 ATC 건과 별개 이슈이고, 원인 특정은 이 카드 범위 밖이다. 아래 7번에 남긴다.

3-4. 확보 못 한 것 — 픽셀 /stats 리텐션

2026-02-01~03  버킷 0개
2026-06-01~03  버킷 0개
2026-07-01~03  버킷 0개
2026-08-01~03  버킷 0개
2026-08-11~13  버킷 0개
2026-08-20~22  버킷 15개  ← 여기부터 나온다
2026-09-01~03  버킷 48개

픽셀 /stats는 약 28일치만 보존된다. 8/21 이전은 물리적으로 조회 불가.

따라서 "2월 대비 픽셀 발화량" 비교는 불가능하다. 8/21을 기준선으로 쓸 수밖에 없었고, 그 한계를 안고 읽어야 한다.


4. O/130 vs P/130 페이지 차이표

curl + iPhone UA 실측 (2026-09-18). 세 페이지 모두 HTTP 200, 리다이렉트 0회.

항목O/130P/130P/142
HTML 용량301,618 B190,012 B176,754 B
TTFB0.420s0.724s0.592s
total0.450s0.831s0.618s
title단백질 쉐이크단백질 쉐이크첫구매 스타터팩
<select> 개수432
옵션 항목 수152310
soldout class144
disabled option132
displaySoldOut132
장바구니 텍스트377
fbq init222
픽셀ID1041654120469920 단일동일동일
외부 스크립트10개13개14개

옵션 구성 자체(8BOX/12BOX/24BOX, 가격 201,600 / +80,600 / +302,400)는 O/130과 P/130이 동일하다.

차이는 P/130 쪽에 옵션 행이 23개로 더 많고, disabled·soldout 플래그가 3~4배 많다는 것.

여기서 확정할 수 없는 것

displaynone 클래스가 붙은 SOLD OUT 버튼이 대부분이라 정적 HTML만으로는 실제 화면에 품절이 보이는지 확정 못 한다.

aSoldoutDisplay = {"130":"품절"} 변수는 O/130·P/142 양쪽에 다 있어서 이것만으로 판별 불가.

JS 실행 후 DOM을 봐야 확정되는데, 카드가 브라우저를 최후 수단으로 지정했고 curl로 여기까지가 한계다.

→ "P/130 품절 노출"은 미확정이다. 추정으로 결론에 넣지 않았다.

AddToCart 발화 코드

세 페이지 모두 정적 HTML에 fbq('track','AddToCart')가 없다. 0건이다.

Cafe24 기본 연동(agent:'plcafe24')이 런타임에 발화시키는 구조이고, 세 페이지의 fbq 호출 수(7)·init(2)·픽셀ID가 완전히 동일하다.

→ 랜딩 간 픽셀 설치 차이는 없다. ATC율 4배 차이는 코드 차이가 아니다.


5. 리다이렉트·응답시간 실측

surl 은 리다이렉트가 아니었다.

P/130   redirects=0   http=200   ttfb 0.724s   total 0.831s   190,012 B
O/130   redirects=0   http=200   ttfb 0.420s   total 0.450s   301,618 B
P/142   redirects=0   http=200   ttfb 0.592s   total 0.618s   176,754 B

카드의 "surl 리다이렉트 몇 단계인가" 가설은 기각된다. 0단계다.

LPV율 62.5% 건도 다시 봤다. 랜딩별로 갈린다.

랜딩8월 LPV/LC9월 LPV/LC
P/14276.67%74.52%
O/13073.18%67.66%
P/13093.18%73.81%
P/16596.73%—

P/130의 LPV율이 93.18% → 73.81%로 떨어졌다. TTFB 0.724s는 O/130의 1.7배다.

다만 절대값 0.8초는 이탈을 20%p 만들 수준이 아니다. 로딩 속도를 원인으로 지목할 근거는 부족하다.

그리고 이건 9월에 P/130 노출이 8월 대비 급증(비중 7.3%→40.0%)하면서 트래픽 구성이 바뀐 결과일 수도 있다. 분리 못 했다.


6. 원인 분해 — 얼마가 무엇 때문인가

8월 ATC/LPV 17.34% → 9월 8.04%, 차이 −9.30pp.

반사실 분해(9월 랜딩믹스 × 8월 랜딩별 전환율 = 13.52%):

랜딩 믹스 교체 기여    −3.82pp   (41.1%)
랜딩별 전환율 하락 기여  −5.48pp   (58.9%)

6-1. 믹스 교체 (41.1%)

랜딩LPV 비중 8월→9월ATC율 8월→9월
P/16530.6% → 0.0%17.78% → (중단)
O/13014.6% → 5.3%30.12% → 20.33%
P/1307.3% → 40.0%11.00% → 5.23%
P/14241.1% → 39.3%14.44% → 8.56%
URL미확보6.4% → 15.3%11.93% → 9.75%

ATC율 30%짜리 O/130과 17.8%짜리 P/165를 끄고, 5%짜리 P/130에 트래픽의 40%를 몰았다.

P/130 지출은 8월 1,699,641원 → 9월 4,080,742원으로 2.4배 늘었다.

이건 측정 문제가 아니라 편성 문제다.

6-2. 전환율 자체 하락 (58.9%)

모든 랜딩이 동시에 떨어졌다. P/142는 랜딩이 안 바뀌었는데도 14.44% → 8.56%.

그리고 메타 밖에서도 떨어졌다 — 비메타 ATC/VC 9.36% → 8.16%.

사이트 전체 ATC/PV 8.47% → 6.94%, PV 일평균 5,559 → 3,080 (−44.6%).

즉 사이트 전반의 수요·트래픽 질 저하가 배경에 깔려 있고, 그 위에 랜딩 편성 실수가 얹혔다.

다만 메타 하락폭(−44.9%)이 비메타(−12.8%)의 3.5배이므로, 배경 요인만으로는 메타 하락을 설명 못 한다.


7. 확인 못 한 것 (추정으로 채우지 않음)

1. 8/21 이전 픽셀 발화량 — /stats 리텐션 28일. 2월·7월·8월 전반 조회 물리적 불가.

→ 2월 대비 픽셀 비교는 이번에 못 했다.

2. P/130 실제 품절 노출 여부 — displaynone 때문에 정적 HTML로 판별 불가. JS 실행 필요.

3. 과거 시점의 P/142 HTML — 스냅샷 없음. 현재 상태만 기록. 8월과 달라졌는지 비교 불가.

4. URL 미확보 ad 18건 — 91개 중 18개가 creative에서 랜딩 URL을 못 뽑았다.

9월 LPV의 15.3%를 차지하므로 믹스 분해에 그만큼 불확실성이 있다.

5. 픽셀 Purchase 1.65~1.80배 과다 발화의 원인 — 호스트 이중 발화 / 새로고침 중복 중 어느 쪽인지 미특정.

6. P/130 TTFB 0.724s가 이탈에 기여한 정도 — 트래픽 구성 변화와 분리 못 했다.

7. P/130 옵션 23개 vs O/130 15개의 차이가 무엇인지 — 옵션 구성 자체는 동일해 보이나,

추가 8개 행이 무엇인지 정적 HTML에서 확정 못 했다.


8. 제안 (실행 아님 — 대표님 승인 사항)

근거 있는 것만 적는다.

(1) O/130 재개 검토 — 근거 강함

동시 집행 구간 z=19.90, 구매/LPV까지 z=8.39로 유의. 표본 LPV 1,480 / 4,132로 충분.

현재 PAUSED. 단 재개 전 effective_status 재조회 필수.

(2) P/130 비중 축소 — 근거 강함

9월 LPV 40%를 먹으면서 ATC율 5.23%. 지출 4,080,742원. 동일 상품 O/130이 같은 기간 27.16%.

(3) P/130 품절 노출 실물 확인 — 선행 과제

제안이 아니라 확인 요청이다. 위 7-2가 풀려야 P/130을 고칠지 버릴지 결정된다.

(4) 픽셀 Purchase 중복 발화 점검 — 별건

현재 모든 CPA·ROAS가 실제보다 1.65~1.80배 좋게 보일 수 있다. 추세 비교는 무방하나 절대값 판단에는 위험하다.

손익분기 ROAS 1.68 기준으로, 이 중복 발화가 사실이면 지금 흑자로 보이는 캠페인 중 일부가 실제로는 적자일 수 있다.

다만 메타 purchase(7d_click 귀속)와 픽셀 발화는 집계 단위가 달라 1.65배를 그대로 ROAS에 나누면 안 된다. 별도 검증이 필요하다.


자기 검증

1. 8월에서 공구를 걷어냈는가 — 예. 주문 item명 기준 분리, 8월 공구 3,470건 제외하고 비공구 1,301건만 사용.

2. 픽셀 이벤트를 2개 이상 경로로 교차했는가 — 예. aggregation=event / aggregation=host / Cafe24 실주문 대조.

불일치(Purchase 1.65~1.80배)를 발견했고 숨기지 않고 7-5에 기록했다.

3. "원인"에 대조군이 있는가 — 예. 세 겹으로 있다.

- 랜딩 대조: O/130 vs P/130 동시 집행 구간, z=19.90

- 채널 대조: 메타 vs 비메타 ATC/VC 하락폭 3.5배 차이

- 시점 대조: P/142는 랜딩 고정인데도 하락 → 배경 요인 존재 확인

4. 확인 못 한 것을 추정으로 채우지 않았는가 — 예. 7번에 7건 명시.

특히 "P/130 품절"은 정황이 강했으나 JS 미실행으로 확정 불가여서 결론에서 뺐다.

헤르메스 프레임에 대한 이견

헤르메스가 오늘 세운 "랜딩 교체가 원인" 프레임은 41.1%만 맞다.

나머지 58.9%는 랜딩과 무관한 전환율 하락이고, 그 일부는 메타 밖에서도 일어났다(비메타 −12.8%).

"랜딩 교체가 원인"으로 단정하고 O/130만 되살리면 ATC율은 13.52%까지 돌아오고 17.34%로는 못 간다.

숫자로 말하면 −9.30pp 중 −3.82pp만 회수 가능하다는 뜻이다.

동시에 "측정 문제" 가설도 기각한다. 픽셀은 27일 내내 정상 발화했다.