Pixel · 클라이언트 사이드
브라우저 → 플랫폼
- 01 사용자가 광고를 클릭하고 사이트에 도착
- 02 브라우저가 JavaScript Pixel을 로드
- 03 행동이 발생하면 브라우저가 이벤트를 전송
- 04 플랫폼이 전환을 기록
iOS ATT · 광고 차단기 · Safari ITP · 네트워크 이슈에 막힐 수 있습니다.
X Ads · External Guide · 2026.06
브라우저 Pixel과 서버 Conversion API를 함께 쓰면 전환 시그널이 살아납니다. 개념, 이벤트 설계, Ads Manager 토큰 발급, 요청 스펙까지 외부 공유용으로 정리했습니다.
00 — 개요
이 문서는 X Ads의 웹 전환 측정 도구인 Pixel과 Conversion API(CAPI)를 광고주·대행사·개발 팀이 바로 적용할 수 있도록 정리한 실무 가이드입니다.
2026년 6월부터 Ads Manager에서 Conversion API 액세스 토큰을 직접 발급하고, OAuth 1.0 없이 서버에서 이벤트를 보낼 수 있습니다. 구현은 쉬워졌지만 어트리뷰션 로직 자체는 바뀌지 않습니다. 이미 Pixel과 CAPI가 건강하게 동작 중이라면 설정을 바꿀 필요는 없습니다.
대상
웹 성과를 측정·최적화하는 광고주, 대행사, 개발 담당자
범위
Pixel vs CAPI 개념, 이벤트 설계, Direct CAPI 구현, 중복 제거
권장
대부분의 광고주는 Pixel + CAPI를 함께 운영하는 것이 업계 표준입니다
01 — 왜 시그널이 중요한가
Pixel이 놓친 전환은 리포트만 빠지는 것이 아닙니다. 입찰 알고리즘이 잘못된 사용자에게 예산을 쓰게 만들고, 실제로는 수익이 나던 캠페인을 끄게 만듭니다.
~25%
iOS 광고 추적 옵트인
ATT 이후 아이폰 사용자 4명 중 3명은 브라우저 Pixel에 보이지 않습니다. 소셜 앱에서는 전 세계 옵트인이 13.85%까지 떨어집니다. (Singular / Purchasely, 2024)
29.5%
글로벌 광고 차단 사용률
전 세계 17.7억 명이 광고 차단 도구를 사용합니다. 퍼포먼스 광고의 핵심 타깃인 18–34세가 차단 사용자의 61%를 차지합니다. (GWI, 2025 Q2)
50%+
브라우저 전환 누락
Safari ITP와 Firefox는 이미 서드파티 쿠키를 차단합니다. Pixel만 쓰는 스토어의 어트리뷰션 정확도는 실제 전환의 약 40% 수준까지 떨어질 수 있습니다. (Meta Transparency Report, 2025)
세 흐름은 모두 구조적이고 더 심해지는 추세입니다. 해결책은 브라우저를 거치지 않는 퍼스트파티 측정, 즉 광고주 서버에서 플랫폼으로 직접 보내는 데이터입니다.
보이지 않는 승자
Ads Manager에서 ROAS 0.9배로 보여 세트를 종료했습니다. 실제로는 Pixel이 보지 못한 전환까지 포함하면 2.7배였을 수 있습니다.
허상의 패자
Pixel이 과대 귀속한 숫자를 보고 스케일했더니, 지출이 늘수록 실제 이익은 줄었습니다. 허구의 시그널을 최적화한 것입니다.
02 — 동작 방식
Pixel은 고객의 브라우저가 심부름을 보냅니다. CAPI는 광고주 서버가 플랫폼 서버에 직접 전화를 겁니다.
Pixel · 클라이언트 사이드
iOS ATT · 광고 차단기 · Safari ITP · 네트워크 이슈에 막힐 수 있습니다.
CAPI · 서버 사이드
브라우저, 광고 차단기, iOS 제한에 막히지 않습니다.
CAPI는 이메일·전화번호 같은 개인정보를 SHA-256으로 해시한 뒤 보냅니다. 플랫폼은 원문을 보지 않고도 사용자를 매칭할 수 있습니다. 설계상 프라이버시 친화적입니다.
| 플랫폼 | 클라이언트 사이드 | 서버 사이드 |
|---|---|---|
| X | X Pixel | Conversion API (CAPI) |
| Meta | Meta Pixel | Conversions API (CAPI) |
| Google Tag / gtag.js | Enhanced Conversions / 서버 사이드 GTM | |
| TikTok | TikTok Pixel | Events API (CAPI) |
03 — 항목별 비교
CAPI가 대부분의 핵심 지표에서 앞섭니다. 다만 Pixel의 실시간 행동 시그널은 서버만으로는 대체하기 어렵습니다. 그래서 정답은 보통 둘 다입니다.
| 항목 | Pixel (클라이언트) | CAPI (서버) | 우위 |
|---|---|---|---|
| 데이터 흐름 | 브라우저 → 플랫폼 | 서버 → 플랫폼 | CAPI |
| 구현 난이도 | 간단 (JS 태그) | 중간 (서버/API 설정) | Pixel |
| iOS에 막히는가 | 예 — 옵트아웃 약 75% | 아니오 — 브라우저를 우회 | CAPI |
| 광고 차단에 막히는가 | 예 — 전 세계 29.5% | 아니오 — 서버 간 전송 | CAPI |
| 실시간 시그널 | 강함 — 즉시 발생 | 양호 — 서버 지연이 있을 수 있음 | Pixel |
| 데이터 완전성 | 실제 전환의 40–70% | 중복 제거 시 90–98% | CAPI |
| PII / 매칭 | 제한적 | 해시된 이메일, 전화, 주소 등 | CAPI |
| 프라이버시 대응 | 정책 변화에 취약 | 퍼스트파티, GDPR 친화 | CAPI |
| 알고리즘 입력 | 부분 시그널 | 완전한 시그널 | CAPI |
04 — 의사결정
우선순위와 긴급도는 트래픽 구성, 개발 리소스, 프라이버시 정책에 따라 달라집니다. 아래 세 가지 중 어디에 해당하는지 먼저 고르면 됩니다.
선택 A
이제 막 시작할 때 · 트래픽이 적을 때 · 빠른 설치가 필요할 때 · 데스크톱 비중이 높을 때
단기에는 가능합니다. 업그레이드 계획을 세우세요.
선택 B
프라이버시 우선 · JS를 심을 수 없을 때 · B2B / 오프라인 전환
드뭅니다. 보통 핵심 시그널이 빠집니다.
선택 C · 권장
이커머스 · 리드젠 · 앱 광고주 · 모바일 비중이 높은 모든 계정
업계 표준입니다. 강하게 권장합니다.
05 — 전환 이벤트
표준 이벤트를 쓰세요. 플랫폼 알고리즘은 표준 이벤트 데이터로 학습합니다. 커스텀 이벤트는 최적화 지능이 약합니다. 핵심 이벤트는 5–10개면 충분합니다.
| 이벤트 | 단계 | 우선순위 | 왜 필요한가 | 볼륨 |
|---|---|---|---|---|
| PageView | 인지 | 필수 | 오디언스와 리타깃팅 풀의 기준. 모든 페이지에서 발생해야 합니다. | 높음 |
| ViewContent* | 고려 | 유용 | 의도 시그널. 상품 페이지 리타깃팅과 유사 오디언스 시드. | 높음 |
| Search* | 고려 | 유용 | 적극적 관심. 검색 의도 오디언스에 유용합니다. | 중간 |
| AddToCart | 의도 | 필수 | 강한 구매 의도. 중간 퍼널 최적화와 이탈 복귀에 핵심. | 중간 |
| InitiateCheckout* | 의도 | 유용 | 구매 직전 시그널. 체크아웃 완료 최적화에 도움이 됩니다. | 중·저 |
| AddPaymentInfo | 의도 | 유용 | 결제 의사가 확인된 상태. 후반 넛지 리타깃팅에 강합니다. | 낮음 |
| Purchase | 전환 | 핵심 | 북극성. 반드시 value와 currency를 넣으세요. 주 최적화 이벤트. | 낮음 |
| Lead | 전환 | 핵심 | 리드젠의 주 이벤트. 폼 제출, 데모 요청, 가입에 매핑합니다. | 낮음 |
* Ads Manager에 없는 항목은 Custom 이벤트로 대체할 수 있습니다. 가능하면 표준 이벤트를 우선하세요.
이커머스
보조: AddToCart, InitiateCheckout, ViewContent. 상품 ID와 금액을 항상 넘기세요. 결제사 리다이렉트에서 Pixel이 자주 끊깁니다. 구매 확정은 CAPI가 담당해야 합니다.
리드 생성
보조: CompleteRegistration, ViewContent, Search. 고마의향 폼마다 Lead를 매핑하세요. B2B는 CRM 적격 리드를 오프라인 전환으로 되돌리면 품질 최적화가 가능해집니다.
SaaS / 구독
보조: Lead(트라이얼 시작), ViewContent, Search. 트라이얼은 Lead, 유료 구독은 Purchase로 매핑하세요. CAPI로 LTV 시그널을 보내면 구독 최적화가 강해집니다.
06 — Direct 구현
자체 웹 서버에 Conversion API를 직접 붙이는 경로입니다. 개발자 포털 승인이나 OAuth 1.0이 더 이상 필요하지 않습니다.
이 경로는 커스텀 테크 스택, 데이터 통제가 중요한 계정, 사내 엔지니어링 팀이 있는 경우, 매장 구매·CRM 이벤트 같은 오프라인 전환이 많은 경우에 맞습니다.
07 — 요청 스펙
인증은 액세스 토큰 한 개입니다. 본문에는 conversions 배열을 넣습니다.
| 구분 | 값 |
|---|---|
| 메서드 / URL | POST https://ads-api.x.com/12/measurement/conversions/:pixel_id |
| 헤더 | X-Pixel-Token: {token} Content-Type: application/json |
| 경로 파라미터 | pixel_id — Events Manager의 X Pixel 이벤트 소스 ID |
| 성공 응답 | HTTP 200, conversions_processed, debug_id |
| 한도 | 계정당 15분 구간 60,000 이벤트. 실패 시 재시도와 로그를 구현하세요. |
| 필드 | 필수 | 설명 |
|---|---|---|
| conversion_time | 필수 | ISO 8601 시각. 예: 2026-06-01T12:34:56.000Z |
| event_id | 필수 | Events Manager의 Event ID. 예: tw-yyyyy-xxxxx |
| identifiers | 필수 | 최소 하나. twclid, hashed_email, hashed_phone_number, 또는 ip_address + user_agent 쌍 |
| conversion_id | 권장 | Pixel과 중복 제거할 고유 키. 주문번호 등을 사용합니다. |
| event_source_url | 선택 | 전환이 발생한 페이지 URL |
| value | 권장 | 전환 금액. Purchase에는 반드시 넣으세요. |
| number_items | 선택 | 구매 수량 |
| description | 선택 | 추가 설명 |
| contents[] | 선택 | content_id, content_name, content_type, content_price, num_items, content_group_id. DPA·상품 단위 측정에 필요합니다. |
curl -X POST "https://ads-api.x.com/12/measurement/conversions/PIXEL_ID" \
-H "X-Pixel-Token: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"conversions": [
{
"conversion_time": "2026-06-01T12:34:56.000Z",
"event_id": "tw-yyyyy-xxxxx",
"event_source_url": "https://www.example.com/checkout",
"conversion_id": "order-9f8b7c6d",
"value": "89000",
"number_items": 1,
"identifiers": [
{
"twclid": "23opevjt88psuo13lu8d020qkn",
"hashed_email": "64hexchars_sha256",
"hashed_phone_number": "64hexchars_sha256",
"ip_address": "192.0.2.1",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
}
]
}
]
}'{
"request": {
"params": { "account_id": "18ce552mlaq" },
"data": {
"conversions_processed": 1,
"debug_id": "ff02e052-36e4-47d6-bdf0-6d8986446562"
}
}
}08 — 식별자
식별자가 하나도 없으면 이벤트는 사용자에게 붙지 않습니다. twclid와 해시된 이메일을 함께 보내는 것이 가장 안정적입니다.
| 필드 | 형식 | 해시 | 메모 |
|---|---|---|---|
| twclid | X가 생성한 클릭 ID | 없음 | 랜딩 URL 쿼리의 twclid를 파싱해 저장합니다. |
| hashed_email | 앞뒤 공백 제거 | SHA-256 | 솔트 없이 해시합니다. 원문을 보내지 마세요. |
| hashed_phone_number | E.164 | SHA-256 | 한국 번호 010-1234-5678 → +821012345678 후 해시. |
| ip_address | 점 표기 IPv4 | 없음 | user_agent와 반드시 함께 보냅니다. |
| user_agent | 브라우저 UA 문자열 | 없음 | ip_address와 쌍입니다. 단독 사용 불가. |
사용자가 X 광고를 클릭하면 랜딩 URL에 twclid가 붙습니다. 결제 완료 페이지까지 쿼리가 유지되지 않는 경우가 많으므로, 도착 즉시 저장해 두었다가 전환 시 CAPI에 실어 보내세요.
const params = new URLSearchParams(window.location.search);
const twclid = params.get("twclid");
if (twclid) {
localStorage.setItem("twclid", twclid);
}import { createHash } from "node:crypto";
function sha256(value) {
return createHash("sha256").update(value).digest("hex");
}
// 이메일: 앞뒤 공백만 제거 후 해시 (솔트 없음)
const hashedEmail = sha256("[email protected]".trim());
// d360d510a224510f373931ce2d6215a799f5a9c1cef221b0149b6b6b50cced62
// 전화번호: E.164 형식(+국가번호, 국내 0 제거) 후 해시
const hashedPhone = sha256("+821012345678");공식 예시: [email protected] → d360d510a224510f373931ce2d6215a799f5a9c1cef221b0149b6b6b50cced62 / +11234567890 → 1fa6b8d986d9b9cd01bf36951815158bbde9f520c0567c835dfe34783d0a4231
09 — 중복 제거
두 파이프라인을 켜는 것 자체가 업계 표준입니다. 중복 키가 없으면 전환이 부풀어 오르고, 성과처럼 보이는 인플레이션이 생깁니다.
같은 전환에 대해 Pixel 스니펫과 CAPI 요청에 동일한 conversion_id를 넣으세요. 주문번호, 예약번호처럼 한 건을 유일하게 가리키는 값을 쓰는 것이 가장 안전합니다.
twq('event', 'tw-PIXEL_ID-EVENT_ID', {
value: 89000,
currency: 'KRW',
conversion_id: 'order-9f8b7c6d'
});10 — 체크리스트
브라우저에 진행 상태가 저장됩니다. 구현 리뷰나 핸드오프 때 그대로 쓰세요.
0 / 14 완료
11 — 검증
Conversion Diagnostics는 Pixel과 CAPI의 실시간 이벤트 볼륨을 한곳에서 보여 줍니다. 구현이 끝났다면 이 화면으로 건강도를 확인하세요.
12 — FAQ
잘 동작하는 설정을 교체할 필요는 없습니다. Diagnostics로 건강도만 확인하고, 아직 CAPI가 없다면 서버 경로를 레이어로 추가하는 것을 검토하세요.
이 경우 Conversion API가 대안입니다. 브라우저 스크립트 없이 서버에서 전환을 전달할 수 있습니다.
아닙니다. Google Tag Manager를 쓰고 있다면 Events Manager의 GTM 연동으로 Pixel과 서버 사이드 CAPI를 배포할 수 있습니다. Direct는 자체 서버와 커스텀 로직이 있을 때 선택하세요.
토큰 발급은 Ads Manager에서 수 분이면 됩니다. 서버 이벤트 매핑은 스택에 따라 15–30분에서 수 시간까지 달라집니다. 배포 직후 Diagnostics로 수신을 확인하세요.
conversion_id로 중복 제거를 하지 않으면 그렇습니다. 양쪽 요청에 같은 키를 넣는 것은 광고주 구현의 일부입니다.
X는 Tealium, Datahash, Metarouter 등 서버 사이드 파트너 연동을 지원합니다. 자체 서버 Direct와 GTM 경로도 함께 사용할 수 있습니다.
참고: X Ads Events Manager, Conversion API Direct Implementation Guide (2026년 6월), X Ads API Web Conversions 문서. 이 가이드는 광고주 공유용 구현 설명서이며, 캠페인 어트리뷰션 정책을 변경하지 않습니다.