본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 15. 22:41

CAPI 중복 제거(Deduplication)의 핵심 기술: 중복 집계 악몽 해결하기

요약

Meta CAPI 운영 시 발생하는 전환 데이터 중복 집계 문제를 분석합니다. event_id를 통한 기술적 중복 제거 메커니즘과 봇에 의한 허위 이벤트 발생 문제를 다룹니다.

핵심 포인트

  • event_id 불일치나 시간대 차이로 인한 중복 집계 위험
  • 중복 제거 실패 시 ROAS가 부풀려져 잘못된 의사결정 유도
  • 봇(Bot)에 의한 완벽하게 중복 제거된 허위 이벤트 문제

CAPI를 활성화한 주에 전환 수가 80% 급증했습니다. ROAS(광고비 대비 매출액)는 놀라워 보였습니다. 당신은 지출을 늘렸습니다. 하지만 매출은 따라오지 않았습니다.

저는 이런 일이 발생하는 것을 셀 수 없이 많이 목격했습니다. 그리고 거의 모든 사후 분석(post-mortem)은 다음 순서대로 동일한 두 가지 진단으로 귀결됩니다. 첫째: 잘못된 event_id로 인해 Meta가 동일한 구매를 두 번 집계하는 경우입니다. 둘째, 막대한 돈이 사라질 때까지 아무도 알아채지 못하는 문제인, 인간이 생성하지 않은 완벽하게 중복 제거된 이벤트들입니다.

이 두 가지는 완전히 다른 문제입니다. 업계에서는 첫 번째 문제에 대해 수만 단어의 글을 써왔습니다. 하지만 두 번째 문제를 다룬 사람은 거의 없습니다.

이 글은 당신이 제대로 처리하지 않을 경우 어트리뷰션(attribution)을 실제로 파괴하게 될 두 가지 문제를 순서대로 다룹니다. 또한 이 분야의 모든 주요 도구들을 살펴보며, 각 도구가 중복 제거(deduplication) 문제를 핵심적으로 어떻게 처리하는지(혹은 처리하지 못하는지)에 대해 솔직하게 다룹니다.

중복 제거(deduplication)가 존재하는 이유와 실제 역할

Meta Pixel과 Conversions API(CAPI)를 동시에 실행할 때 — 이는 반드시 그렇게 해야 합니다 — 당신은 동일한 전환 이벤트(conversion event)를 두 번 보냅니다. 한 번은 브라우저에서, 한 번은 서버에서 보냅니다. 중복 제거(deduplication)가 없다면 Meta는 두 가지를 모두 집계하며, 당신의 보고서에는 전환 수가 두 배로 표시됩니다.

이를 방지하는 메커니즘은 event_id입니다. Pixel과 CAPI 모두 동일한 전환에 대해 동일한 event_id를 보냅니다. Meta가 동일한 event_id와 동일한 이벤트 이름(Purchase, Lead, AddToCart)을 가진 두 이벤트를 수신하면, 전환을 한 번만 집계하고 중복된 것은 폐기합니다. 만약 이벤트 이름이 다르다면, Meta는 ID가 일치하더라도 이를 별개의 이벤트로 취급합니다.

이것이 메커니즘의 전부입니다. 복잡하지 않습니다. 문제는 대부분의 구현 방식이 적어도 한 곳 이상에서 이 메커니즘을 망가뜨린다는 것이며, 많은 경우 누군가 조사하기 전까지 몇 주 동안 마치 성공한 것처럼 보이는 방식으로 망가뜨린다는 점입니다.

이를 망가뜨리는 흔한 실수들: 브라우저와 서버 코드에서 서로 다른 event_id 값을 생성하는 경우. 시간대(Timezone) 불일치로 인해 이벤트가 몇 시간의 간격을 두고 발생하는 경우. 지연된 서버 이벤트가 Meta의 약 2시간 중복 제거(Deduplication) 윈도우(window)를 벗어나 도착하는 경우. 중복 제거가 실패하면, 부풀려진 전환(conversions), 인위적으로 낮은 CPA 수치, 그리고 결과가 실제보다 더 좋다고 판단하여 과도하게 입찰하는 Advantage+ 캠페인을 보게 될 것입니다.

중복 제거 문제를 보이지 않게 만드는 이유는 다음과 같습니다: 수치가 낮아지는 것이 아니라 올라가기 때문입니다. 대부분의 구현 방식은 한쪽은 제대로 처리하지만 다른 한쪽은 놓칩니다. 사람들은 좋아 보이는 숫자를 조사하지 않습니다. 마케팅 팀은 ROAS가 두 배로 증가하는 것을 보고 규모를 확장(scale)하고 싶어 합니다. 감사는 규모 확장이 실패한 후에야 이루어집니다.

하지만 중복 제거 논의에서 아무도 명명하지 않는 문제가 있습니다.

두 번째 중복 제거 문제

event_id 중복 제거는 기반이 되는 이벤트가 실제 사람을 나타낸다고 가정합니다. 하지만 그것이 사람인지 검증하지는 않습니다.

Playwright 봇이 당신의 페이지를 로드합니다. 이 봇은 abc123이라는 event_id를 가진 Pixel 이벤트를 발생시킵니다. 당신의 서버는 동일한 세션 데이터를 수신하고 동일한 abc123으로 CAPI 이벤트를 발생시킵니다. Meta는 완벽하게 중복을 제거합니다. 하나의 전환이 기록됩니다. 깔끔하고, 검증되었으며, 기여(Attributed)되었습니다.

Meta의 중복 제거 시스템 입장에서 그 봇은 고객이었습니다.

이것은 이론적인 이야기가 아닙니다. 추적 과정의 예외 케이스나 드문 설정 오류도 아닙니다. 단 한 번만 카운트되고 완벽하게 중복 제거된 봇의 전환은 중복 카운팅(double-counting)보다 훨씬 발견하기 어렵습니다. 바로 이 점 때문에 더 위험한 것입니다. 중복 카운팅은 누군가 살펴보면 당황스럽고 명백하게 드러납니다. 하지만 깔끔하게 중복 제거를 통과하는 봇 트래픽은 그저 보기 좋은 대시보드일 뿐입니다.

Fraudlogix 2026 데이터에 따르면, 전 세계의 무효 트래픽(invalid traffic)은 20.64%에 달합니다. Meta 플랫폼 전체의 평균 IVT(Invalid Traffic)는 8.20%입니다. Instagram은 38%이며, Audience Network는 67%에 달합니다. 이 봇 이벤트 중 그 어느 것도 중복 제거에 실패하지 않습니다. 그것들은 깔끔하게 통과합니다. Pixel에서 하나, 서버에서 하나, 그리고 당신의 대시보드에는 깔끔한 하나의 전환이 남습니다.

그 숫자가 바로 당신의 Advantage+ 캠페인에 공급되는 데이터입니다. 그 숫자가 당신의 유사 타겟 (Lookalike Audiences)을 최적화하는 신호입니다. 불완전한 픽셀 (Pixel) 데이터로 고객 리스트를 구축하면, 실제 전환한 사람이 아니라 Meta가 추적할 수 있었던 사람들을 기반으로 타겟을 생성하게 됩니다. 당신의 유사 타겟은 그 편향 (Bias)을 그대로 물려받습니다. 이와 동일한 논리를 봇 (Bot) 트래픽에 적용하면, Meta는 당신의 봇과 닮은 타겟을 구축하기 시작하고, 더 많은 봇을 찾아내는 대가로 당신에게 비용을 청구하게 됩니다.

2025년 10월에 완전히 배포될 Project Andromeda는 오염된 전환 신호에 대해 몇 시간 이내에 조치를 취합니다. 만약 중복 제거 (Deduplication)를 깔끔하게 통과하는 봇 전환 데이터를 입력값으로 제공한다면, 알고리즘은 문제를 매우 빠르게 증폭시킵니다.

대부분의 CAPI 도구들은 event_id 레이어에서 중복 제거를 해결합니다. 이벤트가 발생하기 전, 트래픽 레이어에서 이를 해결하는 도구는 거의 없습니다.

아무도 기록하지 않는 세 번째 중복 제거 실패 원인

event_id 문제나 봇 문제 이전에, 이중 추적 (Dual Tracking)의 전제 조건 자체를 무너뜨리는 레이어가 존재합니다.

2026년 1월 13일, Shopify는 기본 앱-픽셀 데이터 공유 설정을 "Always on"에서 "Optimized"로 변경하여, 신호가 끊긴 픽셀의 작동을 제한 (Throttling)하기 시작했습니다. 사전 통지도, 이메일도, 관리자 페이지의 배너도 없었습니다.

이것이 실무에서 의미하는 바는 다음과 같습니다: Apple이 2025년 9월부터 Private Browsing, Mail, Messages 전반에 걸쳐 기본적으로 적용하기 시작한 Link Tracking Protection으로 인해 iOS가 fbclid 클릭 ID를 제거하면, 당신의 픽셀은 일관되게 작동을 멈춥니다. Shopify의 "Optimized" 모드는 기여 (Attribution) 신호를 모니터링합니다. 신호가 감지되지 않으면 픽셀의 작동을 제한합니다. 브라우저 이벤트는 발생하지 않습니다. 당신의 CAPI는 일치하는 픽셀 이벤트가 없는 서버 이벤트를 발생시킵니다. 기술적으로는 중복 제거할 대상이 없습니다. 하지만 이제 당신의 CAPI 이벤트 수가 유일한 카운트가 되며, 이는 대시보드에서 제한되어 침묵하게 된 유령 브라우저 레이어와 비교됩니다.

중복된 픽셀(Pixel)을 실행하면 중복 집계(double-counting)가 발생할 수 있습니다. 동일한 이벤트에 대해 두 가지 방식이 모두 실행되지 않도록 주의하십시오. 반대의 경우, 제한된(throttled) 픽셀을 라이브 CAPI와 함께 실행하면 기여도 격차(attribution gaps)가 발생합니다. 이는 기기 유형별 전환율을 조사하여 iOS 사용자가 사라지는 것을 발견하기 전까지는 일반적인 변동성처럼 보일 수 있습니다.

2026년의 전형적인 Shopify 스토어에서는 세 가지 중복 제거 실패가 순차적으로 쌓입니다: 픽셀이 제한(throttled)되고, CAPI만 단독으로 실행되며, 봇(bot)이 중복 제거 검사를 통과하고, event_id 로직이 시작 전부터 이미 잘못되었던 데이터를 바탕으로 실행되는 것입니다. 하위 레이어가 고장 나 있다면 각 레이어의 수정 사항은 무의미합니다.

빠른 답변

CAPI 중복 제거(Deduplication)란 무엇이며 왜 중요한가요?

중복 제거는 픽셀(Pixel)과 전환 API (Conversions API, CAPI)가 동일한 이벤트를 보낼 때 Meta가 동일한 전환을 두 번 카운트하는 것을 방지합니다. 그 메커니즘은 event_id 파라미터입니다. 이는 각 이벤트에 대해 생성하여 브라우저 측(browser-side)과 서버 측(server-side) 레이어 모두에 전달하는 고유 식별자입니다. Meta가 일치하는 event_idevent_name을 가진 두 이벤트를 받으면, 하나는 유지하고 다른 하나는 폐기합니다. 이것이 없다면 보고된 전환 수가 부풀려지고, CPA(Cost Per Acquisition)는 인위적으로 낮아지며, 입찰 알고리즘(bidding algorithms)은 허구의 데이터를 바탕으로 최적화하게 됩니다.

실제 상황에서 중복 제거가 깨지는 원인은 무엇인가요?

서버가 서로 다른 event_id를 생성하거나, 아예 event_id를 포함하지 않는 경우 Meta는 해당 이벤트를 중복 제거(Deduplication)할 수 없으며, 중복된 전환(Conversions)이 나타나게 됩니다. 가장 흔한 원인은 다음과 같습니다: event_id가 하나의 값을 공유하는 대신 브라우저와 서버에서 각각 별도로 생성되는 경우, Pixel과 CAPI 사이의 event_name이 일치하지 않는 경우(예: Purchase vs purchase, 대소문자 구분), 서버 이벤트가 브라우저 이벤트보다 2시간 이상 늦게 도착하여 Meta의 매칭 윈도우(Matching window)를 벗어나는 경우입니다. Pixel과 CAPI 간의 파라미터(Parameter) 일관성 또한 흔한 실패 지점입니다. 만약 Pixel이 CAPI 구현 방식과 다른 명명 규칙(Naming conventions), 값(Values) 또는 포맷(Formatting)으로 이벤트를 전송하고 있다면, Meta의 중복 제거 기능은 작동하지 않습니다. 결과적으로 전환이 이중으로 집계되거나 이벤트가 누락되는데, 이 두 가지 모두 데이터를 오염시킵니다.

중복 제거가 제대로 작동하는지 어떻게 확인하나요?

Meta 이벤트 관리자(Events Manager)에서 "Browser + Server"라고 표시된 이벤트를 찾으세요. 해당 라벨은 Meta가 두 신호를 모두 수신했으며 이를 중복 제거했음을 확인해 줍니다. 만약 유사한 수치를 가진 "Browser"와 "Server" 라벨이 각각 따로 보인다면, event_id가 일치하지 않는 것입니다. 결합된 총합이 개별 합계의 두 배가 아니라 대략 개별 합계와 비슷하다면 중복 제거가 올바르게 작동하고 있는 것입니다. 만약 총 이벤트 수가 두 배로 나타난다면, event_id 구현 방식을 검토하십시오.

중복 제거가 이벤트 매치 품질(Event Match Quality, EMQ)에 영향을 미치나요?

중복 제거와 EMQ는 서로 상호작용하는 별개의 메커니즘입니다. 중복 제거는 이벤트가 한 번 집계될지 두 번 집계될지를 결정합니다. EMQ는 Meta가 해당 이벤트를 실제 사용자 프로필과 얼마나 잘 연결할 수 있는지를 결정합니다. 이메일, 전화번호, fbp, fbc를 전송하지 않는다면 중복 제거는 완벽하더라도 EMQ는 낮을 수 있습니다. 두 지표 모두 주의를 기울여야 합니다.

2026년 4월에 출시된 Meta의 무료 1클릭 CAPI는 중복 제거를 처리하나요?

이벤트 중복 제거 (Event deduplication)는 자동으로 설정됩니다. event_id 중복 제거 키가 자동으로 생성되어 전파됨으로써 두 채널 간의 중복 제거를 보장합니다. 단순한 설정의 표준 이벤트 (Standard events)의 경우 이 방식이 작동합니다. 하지만 커스텀 이벤트 (Custom events), 오프라인 전환 (Offline conversions), 또는 predicted_ltv 및 구독 갱신 (Subscription renewals)을 포함한 고급 페이로드 커스텀 (Advanced payload customization)의 경우에는 작동하지 않습니다.

광고 차단기 (Ad blocker)에 의해 내 픽셀 (Pixel)이 차단되면 중복 제거는 어떻게 되나요?

브라우저 이벤트가 아예 발생하지 않는다면, 중복 제거할 대상 자체가 없습니다. 이때 CAPI가 이벤트를 발생시킵니다. Meta는 중복 위험 없이 하나의 전환을 기록합니다. 중복 제거 관점에서는 문제가 없습니다. 하지만 EMQ (Event Match Quality) 관점에서는 매칭 품질을 향상시키는 fbpfbc 브라우저 식별자를 잃게 됩니다. 퍼스트 파티 CNAME (First-party CNAME) 설정은 광고 차단기에 노출되는 서드 파티 스크립트 (Third-party scripts)와 비교했을 때 이러한 이벤트의 95% 이상을 복구합니다.

솔직한 도구 이야기

DataCops

DataCops는 이벤트가 발생하기 전, CAPI를 포함한 모든 단계에서 event_id 레이어와 트래픽 레이어 모두에서 중복 제거를 처리합니다. 3,610억 개 이상의 IP 데이터베이스를 통해 세션이 픽셀 (Pixel)이나 서버 사이드 파이프라인 (Server-side pipeline)에 닿기 전, 네트워크 레벨에서 봇 (Bot)을 필터링합니다. Playwright, Selenium, Puppeteer 탐지 기능이 내장되어 있으며, VPN 엔드포인트 (VPN endpoint) 및 프록시 (Proxy) 식별 기능도 포함되어 있습니다. 이는 중복 제거 레이어에 도달하는 이벤트가 이미 인간 유래 트래픽으로 검증되었음을 의미합니다. event_id 페어링은 퍼스트 파티 아키텍처 (First-party architecture) 전반에 걸쳐 네이티브하게 처리됩니다. 즉, 하나의 스크립트 태그, 하나의 CNAME, 그리고 동일한 세션 식별자가 모든 이벤트의 브라우저 및 서버 측 경로를 통해 전파됩니다.

퍼스트 파티 (First-party) CMP는 uBlock Origin이나 Brave가 30~40% 확률로 차단하는 제3자 CDN이 아닌, 귀하의 자체 서브도메인(datacops.yourdomain.com)에서 로드됩니다. 동의가 이루어지면, 쿠키리스 지속적 식별자 (cookieless persistent identity) 아키텍처가 ITP (Intelligent Tracking Prevention) 저하 없이 재방문 사용자를 식별합니다. 해당 지속적 식별자는 세션 전반에 걸쳐 event_id 일관성을 유지하는 것과 동일한 식별자입니다. 쿠키 만료가 없으며, 이벤트의 Pixel 단계와 CAPI 단계 사이에서 ITP가 식별자를 삭제하여 발생하는 세션 간 중복 제거 (deduplication) 오류도 발생하지 않습니다.

멀티 플랫폼 CAPI — Meta, Google, TikTok, LinkedIn — 는 비즈니스 (Business) 티어 ($49/월)에서 동일한 클린 파이프라인을 통해 실행됩니다. 봇 필터링 (Bot filtering)은 상류 (upstream)에서 한 번만 수행됩니다. 정제된 이벤트는 네 가지 플랫폼 모두로 흐릅니다. 각 네트워크마다 별도의 중복 제거 로직을 실행할 필요가 없습니다.

작동하지 않는 부분: SOC 2 Type II 인증이 진행 중이며 완료되지 않았습니다. Elevar나 Stape보다 신생 브랜드입니다. 엔터프라이즈 CDP 시나리오를 위한 통합 카탈로그가 Tealium이나 mParticle보다 좁습니다. HubSpot 연동은 Free 또는 Growth 플랜이 아닌 Business 플랜부터 시작됩니다. CAPI는 $49의 Business 티어가 필요하며, Free 및 Growth 플랜에는 포함되지 않습니다.

플랫폼: Meta CAPI, Google Ads Enhanced Conversions, TikTok Events API, LinkedIn Insight CAPI. Pinterest 및 Snapchat은 지원하지 않습니다.

적합한 대상: 이벤트 레이어(event layer)가 아닌 트래픽 레이어(traffic layer)에서부터 시작되는 중복 제거가 필요한, 여러 플랫폼에 걸쳐 유료 트래픽을 운영하는 운영자. 설정 시간: 5~30분. 가치: 9/10. 가격: Free (CAPI 미포함), Growth $7.99/월 (CAPI 미포함), Business $49/월 (CAPI 시작), Organization $299/월, Enterprise 커스텀.

Elevar

Elevar는 주문 수준의 데이터 충실도(data fidelity)를 중심으로 특별히 구축된, 시장에서 가장 확립된 Shopify 네이티브 서버 사이드 트래킹(server-side tracking) 도구입니다. 중복 제거(deduplication) 아키텍처는 매우 성숙해 있습니다. Elevar는 주문 ID(order ID)와 이벤트 유형(event type)의 조합으로부터 일관된 event_id를 생성하고, 이를 클라이언트 사이드 픽셀(client-side Pixel)과 서버 사이드 CAPI 레이어 모두를 통해 전파하며, 대부분의 자체 구축(DIY) 설정을 망가뜨리는 event_name 정규화(normalization) 문제를 처리합니다. 세션 강화(Session enrichment) — 재방문 사용자를 인식하고 새로운 이벤트에 과거 식별자(historical identifiers)를 추가하는 능력 — 는 기여도 분석(attribution)의 연속성을 위한 진정한 강점입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0