광고비를 집행하는 쪽에서 가장 자주 받는 질문은 "어느 숫자가 맞느냐"입니다. 구글애즈 리포트의 전환이 180건인데 GA4 키이벤트는 120건이고, 메타 광고관리자까지 더하면 합계가 사이트 전체 전환 수를 넘어섭니다. 담당자는 매체가 부풀린다고 의심하고, 매체는 태그가 빠졌다고 말합니다. 그런데 대부분의 경우 어느 쪽도 고장 나지 않았습니다. 세 시스템이 애초에 서로 다른 질문에 답하도록 설계돼 있을 뿐입니다.
퍼포먼스마케팅에서 이 차이를 구조로 이해하지 못하면, 숫자를 맞추느라 시간을 쓰다가 정작 예산 배분을 틀린 숫자로 결정하게 됩니다. 이 글은 매체 리포트와 GA4가 갈리는 지점을 ①귀속 날짜 ②어트리뷰션 모델과 룩백 윈도우 ③세션 정의와 타임존 세 축으로 나누고, 각 매체 공식 문서에 명시된 사양을 표로 정리한 뒤, 같은 데이터로 채널 순위가 뒤집히는 계산과 7단계 검증 절차까지 이어갑니다. 수치 예시는 모두 구조를 보여주기 위한 가정값이며, 사양·기본값은 각 매체 공식 문서 기준입니다.
3줄 요약
- 구글애즈와 메타는 전환을 클릭·노출이 일어난 날에 기록하고, GA4는 전환이 실제로 발생한 날에 기록합니다. 같은 달을 봐도 숫자가 다를 수밖에 없습니다.
- 매체별 전환을 더하면 같은 전환이 여러 번 계상됩니다. 합계가 사이트 실제 전환 수를 넘어서는 순간, 그 합계로 만든 CPA 순위는 신뢰할 수 없습니다.
- 맞출 수 없는 차이와 고쳐야 할 오류를 구분하는 게 핵심입니다. 구조적 차이는 기준을 하나 정해 의사결정에 쓰고, 설치·중복 오류는 검증 절차로 걸러냅니다.
지표 불일치(Data Discrepancy)란?
같은 기간·같은 전환 행동을 두 개 이상의 측정 시스템에서 조회했을 때 숫자가 달라지는 현상입니다. 원인은 크게 두 가지로 나뉩니다. 하나는 정의 차이(귀속 날짜, 어트리뷰션 모델, 룩백 윈도우, 세션 기준, 타임존)로, 설정을 맞추지 않는 한 영원히 일치하지 않습니다. 다른 하나는 구현 오류(태그 누락, 중복 발화, 파라미터 유실, 동의 설정)로, 이것은 고칠 수 있습니다. 불일치를 줄이는 작업은 둘을 분리하는 데서 시작합니다.

1. 퍼포먼스마케팅 지표는 왜 '합계'부터 무너지는가
매체별 리포트를 엑셀에 옮겨 전환 수를 더하는 순간, 그 합계는 실제보다 큽니다. 각 매체는 자기 광고가 기여했다고 판단한 전환을 각자 세기 때문입니다. 한 사용자가 메타 광고를 보고, 며칠 뒤 구글 검색광고를 눌러 문의를 남겼다면 그 한 건의 문의는 메타 리포트에도 1건, 구글애즈 리포트에도 1건으로 잡힐 수 있습니다. 두 매체 모두 거짓말을 하지 않았지만 합계는 2건이 됩니다.
그래서 실무에서 가장 먼저 확인해야 할 것은 "매체 합계가 사이트 전체 전환 수를 넘는가"입니다. 넘는다면 그 합계로 계산한 채널별 CPA·ROAS는 비교 자체가 성립하지 않습니다. 넘지 않더라도 채널 간 중복 비율이 다르면 순위는 여전히 왜곡됩니다. 이 왜곡이 실제로 결론을 어떻게 뒤집는지는 5장에서 숫자로 보겠습니다.
2. 차이 ① — 귀속 날짜: 클릭한 날이냐, 전환한 날이냐
가장 크고 가장 자주 간과되는 차이입니다. 구글애즈 공식 도움말은 이렇게 명시합니다. "Google Ads는 전환으로 이어진 클릭이 발생한 날짜와 시간을 기준으로 전환을 보고하며, 전환 행동 자체가 일어난 날짜를 기준으로 하지 않습니다."
메타도 같은 구조입니다. 메타 마케팅 API의 action_report_time 파라미터 설명은 이를 그대로 보여줍니다. "어떤 사람이 1월 1일에 광고를 보고 1월 2일에 전환했다면, action_report_time=impression으로 조회할 때는 1월 1일에 전환이 보이고", "action_report_time=conversion으로 조회할 때는 1월 2일에 전환이 보입니다." 즉 메타는 조회 파라미터 하나로 같은 데이터가 다른 날짜에 찍힙니다.
반면 GA4는 이벤트가 수집된 시점, 즉 전환이 실제로 일어난 날에 기록합니다. 결과적으로 리드 전환처럼 지연이 긴 전환일수록 월 단위로 끊었을 때 차이가 커집니다.
| 구분 | Google Ads | Meta (Marketing API) | GA4 |
|---|---|---|---|
| 전환 기록 날짜 | 클릭이 발생한 날 | impression=노출·클릭일 / conversion=전환일 (조회 시 선택) |
전환(이벤트)이 발생한 날 |
| 과거 데이터 변동 | 있음 — 전환추적 기간 동안 과거 날짜 수치가 올라감 | 있음 — impression 기준 조회 시 |
상대적으로 작음 — 발생일 고정 |
| 클릭 후 추적 기간 | 기본 30일, 1~30·60·90일 설정 가능(검색·디스플레이) | 1d_click·7d_click·28d_click 등 선택 |
룩백 윈도우 설정값에 따름(3장) |
| 조회 후 추적 기간 | 기본 1일 | 1d_view 선택 (7d_view·28d_view는 2026.1.12부터 제공 중단) |
해당 개념 없음(클릭·세션 기반) |
| 쿠키 수명 | 클릭 후 90일 만료 | — | 최대 2년 |
※ Google Ads 수치는 구글애즈 고객센터 '데이터 차이' 및 '전환추적 기간' 문서, Meta 값은 Marketing API Insights 파라미터 문서 기준입니다.
여기서 실무적으로 중요한 함의가 하나 나옵니다. 월말 마감 시점에 본 CPA는 확정값이 아닙니다. 클릭일 귀속 + 30일 전환추적 기간이라면, 10월 하순 클릭에서 나온 전환이 11월에 발생해도 10월 날짜에 소급 기록됩니다. 가정값으로 10월 광고비 1,000만원에 마감일 전환 100건(CPA 100,000원)을 봤는데 2주 뒤 재조회에서 118건이 됐다면, 실제 10월 CPA는 10,000,000 ÷ 118 ≈ 84,746원입니다. 마감일 숫자로 캠페인을 중단했다면 15% 더 좋은 성과를 오판한 셈입니다.
3. 차이 ② — 어트리뷰션 모델과 룩백 윈도우
GA4는 속성 단위로 보고용 어트리뷰션 모델과 룩백 윈도우를 설정합니다. 이 설정은 화면에서도 바꿀 수 있지만, 실제 값이 무엇인지 확인할 때는 Admin API의 attributionSettings 리소스를 조회하는 편이 확실합니다. 담당자가 바뀌어도 설정이 문서로 남기 때문입니다.
# GA4 Admin API — 속성의 어트리뷰션 설정 조회
GET https://analyticsadmin.googleapis.com/v1alpha/properties/{PROPERTY_ID}/attributionSettings
# 응답 구조
{
"name": "properties/123456789/attributionSettings",
"acquisitionConversionEventLookbackWindow": "ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS",
"otherConversionEventLookbackWindow": "OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_90_DAYS",
"reportingAttributionModel": "PAID_AND_ORGANIC_CHANNELS_DATA_DRIVEN",
"adsWebConversionDataExportScope": "PAID_AND_ORGANIC_CHANNELS"
}
각 필드가 보고서 숫자를 어떻게 바꾸는지 정리하면 다음과 같습니다.
| 필드 | 가능한 값 | 기본값 | 숫자에 미치는 영향 |
|---|---|---|---|
acquisitionConversion |
7일 / 30일 | 30일 | 첫 방문·앱 설치로 이어진 접점을 며칠까지 거슬러 볼지. 짧으면 신규 획득 채널의 기여가 과소평가됩니다. |
otherConversion |
30일 / 60일 / 90일 | 90일 | 그 외 전환의 룩백 기간. 매체 전환추적 기간(기본 30일)과 다르면 같은 전환의 포함 여부가 갈립니다. |
reportingAttributionModel |
데이터 기반(DDA) / 유료·자연 채널 라스트클릭 / 구글 유료채널 라스트클릭 | 데이터 기반 | 가장 크게 숫자를 바꿉니다. 라스트클릭은 마지막 채널에 100%를, DDA는 소수점 단위로 분배합니다. |
adsWebConversion |
유료·자연 채널 / 구글 유료채널만 | 선택 필요 | GA4 전환을 구글애즈로 내보낼 때의 범위. 이 값에 따라 구글애즈로 넘어가는 전환 수가 달라집니다. |
여기서 자주 생기는 함정이 있습니다. GA4 기본값은 데이터 기반 어트리뷰션이고 기타 전환 룩백은 90일인데, 구글애즈 전환추적 기간 기본값은 30일이며 구글애즈는 자체 기준으로 전환을 셉니다. 두 시스템을 "왜 다르냐"고 비교하기 전에, 비교하려는 두 숫자가 같은 모델·같은 기간을 쓰고 있는지부터 확인해야 합니다. 이 조합이 다르면 숫자가 같을 수 없습니다.

4. 차이 ③ — 세션 정의와 타임존
세 번째 축은 "하루를 어디서 끊느냐"와 "방문을 어떻게 묶느냐"입니다. GA4의 세션은 공식 문서상 "사용자가 앱을 포그라운드로 열거나, 활성 세션이 없는 상태에서 페이지·화면을 조회할 때 시작"되며, "기본적으로 30분간 사용자 활동이 없으면 세션이 종료되거나 타임아웃"됩니다. 세션 귀속 정보(gclid, UTM 파라미터, 리퍼러)는 session_start 시점의 정보로 결정됩니다.
이 정의 때문에 생기는 현상이 있습니다. 사용자가 광고를 클릭해 들어와 30분 이상 자리를 비운 뒤 돌아와 전환하면, 전환은 새 세션에서 일어납니다. 그 새 세션의 유입 경로가 직접(Direct)이라면 GA4 라스트클릭 기준에서 광고 기여는 사라집니다. 반면 구글애즈는 클릭 기준으로 30일을 추적하므로 자기 전환으로 계상합니다. 같은 사건, 다른 결론입니다.
타임존은 더 단순하지만 더 자주 놓칩니다. 애널리틱스 공식 문서는 보고서 시간대를 "데이터가 어디서 발생했든 관계없이 보고서의 하루 경계로 사용할 시간대"로 정의하고, "시간대 변경은 이후 데이터에만 적용되며 소급 적용되지 않는다"고 명시합니다. 광고 계정 시간대와 GA4 속성 시간대가 다르면, 일별 리포트는 영원히 어긋납니다.
- GA4 속성 시간대와 구글애즈 계정 시간대, 메타 광고 계정 시간대를 각각 확인합니다.
- 셋 중 하나라도 다르면, 일별 비교는 포기하고 주 단위 이상으로 비교합니다. 하루 경계 차이는 주 단위에서 희석됩니다.
- 시간대를 바꿀 때는 소급 적용되지 않는다는 점을 기억합니다. 변경일 전후로 데이터에 단절이 생깁니다.
- 세션 기준 비교가 필요하면, 매체의 '클릭 수'와 GA4의 '세션 수'를 직접 비교하지 말고 차이율의 추세만 봅니다. 클릭과 세션은 같은 개념이 아닙니다.
5. 계산으로 뒤집히는 것 — 매체 합계 CPA와 GA4 기준 CPA의 순위 역전
여기까지가 구조입니다. 이제 이 구조가 의사결정을 어떻게 바꾸는지 숫자로 보겠습니다. 아래 수치는 모두 구조를 보여주기 위한 가정값이며, 특정 계정의 실측치가 아닙니다.
조건: 한 달간 구글애즈에 1,000만원, 메타에 1,000만원을 집행했습니다. 메타는 조회 기여를 넓게 잡는 설정(예: 7d_click + 1d_view)을 쓰고 있습니다. 사이트 전체에서 GA4가 기록한 문의 키이벤트는 160건입니다.
| 항목 | 구글애즈 | 메타 | 합계 |
|---|---|---|---|
| 광고비 | 10,000,000원 | 10,000,000원 | 20,000,000원 |
| 매체 리포트 전환 | 100건 | 125건 | 225건 |
| 매체 기준 CPA | 100,000원 | 80,000원 ← 우세 | 88,889원 |
| GA4 라스트클릭 귀속 | 90건 | 55건 | 145건 |
| GA4 기준 CPA | 111,111원 ← 우세 | 181,818원 | 137,931원 |
읽는 법은 이렇습니다.
- 합계가 이미 불가능합니다. 매체 합계 전환 225건은 사이트 전체 전환 160건보다 65건 많습니다. 65 ÷ 225 = 약 28.9%가 구조적 중복·과대 계상입니다. 이 합계로 만든 어떤 지표도 그대로 쓸 수 없습니다.
- 순위가 뒤집힙니다. 매체 기준 CPA만 보면 메타(80,000원)가 구글(100,000원)보다 20% 우수해 보입니다. 그런데 GA4 라스트클릭 기준으로는 구글(111,111원)이 메타(181,818원)보다 39% 우수합니다. 예산을 메타로 옮기는 결정과 구글로 옮기는 결정이 같은 데이터에서 나옵니다.
- 감소율이 다른 게 핵심입니다. 구글은 100건→90건으로 10% 줄었는데 메타는 125건→55건으로 56% 줄었습니다. 조회 기여를 넓게 잡은 설정일수록 라스트클릭 기준에서 많이 깎입니다. 이 감소율 차이가 순위를 뒤집는 동력입니다.
주의 — 어느 쪽도 '정답'이 아닙니다. GA4 라스트클릭은 조회 기여를 전부 버리므로 인지 단계 매체를 과소평가합니다. 매체 리포트는 조회 기여를 넉넉히 인정하므로 과대평가합니다. 두 숫자는 상한과 하한에 가깝습니다. 어느 쪽이 진실에 가까운지는 기여 분석이 아니라 증분성 실험으로만 답할 수 있습니다.
이 지점을 더 깊게 보려면 증분성(Incrementality) 측정 — 플랫폼 ROAS 620%가 실제로는 114%였던 이유에서 지역 분할 홀드아웃 설계와 검정력 계산을 정리해 두었습니다.
6. 줄일 수 있는 중복 — event_id 기반 중복 제거
구조적 차이는 못 맞추지만, 같은 시스템 안에서 같은 전환이 두 번 잡히는 것은 고칠 수 있습니다. 가장 흔한 사례가 메타 픽셀과 전환 API(CAPI)를 함께 쓰면서 중복 제거를 걸지 않은 경우입니다.
메타 공식 개발자 문서의 규칙은 명확합니다. 브라우저 픽셀 이벤트의 eventID와 서버 CAPI 이벤트의 event_id가 일치하고 event_name도 같아야 중복으로 인식합니다. 그리고 중복 제거는 "특정 event_id를 가진 첫 이벤트를 수신한 시점으로부터 48시간 이내에 수신된 이벤트에 대해서만" 적용됩니다. event_id를 쓰지 않으면 event_name + fbp 및/또는 external_id 조합으로 대체되지만, 이 방식은 서버 이벤트가 먼저 도착한 경우 브라우저 이벤트를 제대로 버리지 못하는 한계가 있습니다.
<!-- 1) 브라우저: 전환 1건마다 고유 ID를 만들어 픽셀과 함께 보낸다 -->
<script>
// 전환 1건 = ID 1개. 새로고침마다 새로 만들면 중복 제거가 깨진다.
var eventId = (window.crypto && crypto.randomUUID)
? crypto.randomUUID()
: 'lead-' + Date.now() + '-' + Math.random().toString(36).slice(2, 10);
fbq('track', 'Lead', { value: 0, currency: 'KRW' }, { eventID: eventId });
// 같은 ID를 서버로 넘겨 CAPI에서 재사용한다
fetch('/api/capi/lead', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ event_id: eventId, event_name: 'Lead' })
});
</script>
# 2) 서버(CAPI): 브라우저에서 받은 event_id를 그대로 실어 보낸다
{
"data": [
{
"event_name": "Lead",
"event_time": 1760000000,
"event_id": "3f1c9a2e-7b44-4d2a-9d61-0a5e8c7b1234",
"action_source": "website",
"event_source_url": "https://example.com/contact/complete",
"user_data": {
"em": ["<SHA256 해시된 이메일>"],
"ph": ["<SHA256 해시된 전화번호>"],
"fbp": "fb.1.1760000000.1234567890",
"client_ip_address": "203.0.113.10",
"client_user_agent": "Mozilla/5.0 ..."
}
}
]
}
구글 쪽도 같은 종류의 점검이 필요합니다. GA4 전환을 구글애즈로 가져오면서 구글애즈 자체 전환 태그도 같이 켜 두면, 같은 문의가 두 전환 액션으로 잡혀 입찰 알고리즘이 과대 신호를 학습합니다. 전환 액션 목록에서 '전환에 포함' 체크가 켜진 액션이 몇 개인지부터 세어 보는 게 가장 빠른 점검입니다.
네이버 쪽 설치 검증은 구조가 또 다릅니다. 공통 스크립트와 전환 유형별 호출이 분리돼 있어서, 전환 유형 코드와 호출 위치를 함께 확인해야 합니다. 이 부분은 네이버광고 전환추적 설치 가이드 — wcs.trans 스크립트 구조와 검증까지에 단계별로 정리돼 있습니다.

7. 7단계 검증 절차 — 무엇을 보면 정상인가
아래 순서대로 점검하면, 고칠 수 있는 오류와 받아들여야 할 구조적 차이가 분리됩니다. 각 단계마다 "정상이면 이렇게 보인다"를 함께 적었습니다.
- 합계 초과 여부 — 매체별 전환을 더한 값이 GA4 사이트 전체 키이벤트 수를 넘는지 확인합니다. 정상 기준: 넘더라도 원인(조회 기여·중복 계상)을 설명할 수 있으면 됩니다. 설명이 안 되면 2~4단계로 갑니다.
- 전환 액션 중복 — 구글애즈 전환 액션 목록에서 '전환에 포함'이 켜진 항목을 셉니다. 같은 행동을 측정하는 액션이 둘 이상이면 하나만 남깁니다. 정상 기준: 한 비즈니스 행동 = 전환에 포함된 액션 1개.
- 픽셀·CAPI 중복 제거 — 메타 이벤트 관리자에서 해당 이벤트의 중복 제거 상태를 확인하고, 브라우저와 서버의
event_id가 실제로 같은 값인지 개발자 도구와 서버 로그에서 각각 꺼내 대조합니다. 정상 기준: 두 값이 문자 단위로 일치. - 룩백·전환추적 기간 정렬 — GA4
attributionSettings와 각 매체 전환추적 기간을 한 표에 적습니다. 정상 기준: 값이 달라도 괜찮지만, 비교 리포트에는 "기준이 다름"을 명시해야 합니다. - 타임존 대조 — GA4 속성·구글애즈 계정·메타 광고 계정의 시간대를 확인합니다. 정상 기준: 셋이 같거나, 다르면 일별 비교를 하지 않습니다.
- 파라미터 유실 — 광고 랜딩 URL을 실제로 클릭해 리다이렉트를 거친 뒤, 최종 페이지 URL에
gclid·utm_*·fbclid가 살아 있는지 봅니다. 정상 기준: 리다이렉트 후에도 파라미터가 그대로 남아 있음. - 기준 지표 고정 — 예산 배분에 쓸 단일 기준(예: GA4 라스트클릭 전환)을 정하고 문서에 적습니다. 정상 기준: 월간 리포트에 기준이 한 줄로 명시돼 있고, 담당자가 바뀌어도 같은 기준으로 조회됨.
이 과정을 매달 수작업으로 반복하면 사람이 지칩니다. 점검 항목을 고정하고 자동으로 돌리는 구조를 만드는 쪽이 오래갑니다. 관리 밀도가 성과에 어떻게 복리로 작용하는지는 AI 광고 관리 시스템이 성과를 가르는 이유에서 다뤘고, 해외 B2B 리드처럼 전환 지연이 긴 경우의 측정 설계는 수출바우처 해외광고 B2B 리드 전환 최적화에 정리했습니다.
자주 묻는 질문
Q1. 매체와 GA4 숫자를 완전히 일치시킬 수 있나요?
구조적으로 불가능합니다. 귀속 날짜 기준(클릭일 vs 전환일)이 다르고, 어트리뷰션 모델과 룩백 기간이 다르며, 쿠키 수명과 타임존도 다릅니다. 목표는 일치가 아니라 차이의 크기와 방향을 설명할 수 있는 상태입니다. 차이율이 매달 비슷한 범위 안에 있으면 정상으로 봅니다.
Q2. 그럼 예산 배분은 어떤 숫자로 하나요?
하나를 기준으로 고정하는 게 먼저입니다. 많은 경우 GA4 라스트클릭을 '보수적 하한'으로 두고 매체 리포트를 '상한'으로 함께 봅니다. 두 숫자의 순위가 서로 다르면, 그때가 증분성 실험이 필요한 시점입니다. 순위가 같으면 어느 쪽으로 결정해도 결론은 바뀌지 않습니다.
Q3. 차이가 몇 %까지는 정상인가요?
업종·전환 지연·매체 조합에 따라 폭이 커서 일률적인 기준치를 말씀드리기 어렵습니다. 대신 같은 계정의 차이율 추세를 보십시오. 지난 6개월간 매체 대비 GA4가 70% 선을 유지하다가 이번 달 갑자기 40%로 떨어졌다면, 그건 구조가 아니라 사고(태그 누락, 동의 설정 변경, 리다이렉트 추가)일 가능성이 높습니다.
Q4. 전환 지연이 긴 B2B인데 월 단위 리포트가 계속 틀립니다.
클릭일 귀속 매체는 마감 이후에도 과거 날짜 수치가 올라갑니다. 월간 리포트를 마감 당일에 뽑지 말고, 전환추적 기간이 지난 뒤 같은 기간을 재조회해 확정본을 만드십시오. 확정본과 속보본을 구분해 두면 의사결정 혼선이 줄어듭니다.
마치며
지표가 안 맞는다는 호소의 상당수는 숫자 문제가 아니라 기준 문제입니다. 매체는 자기 광고의 기여를 묻고, GA4는 사이트에서 무슨 일이 일어났는지를 묻습니다. 질문이 다르니 답도 다릅니다. 해야 할 일은 두 답을 억지로 포갤 방법을 찾는 게 아니라, 어느 질문으로 예산을 결정할지 정하고 그 기준을 문서에 남기는 것입니다.
그리고 그 위에서 고칠 수 있는 것만 고치면 됩니다. 전환 액션 중복, event_id 누락, 리다이렉트에서 날아가는 gclid, 서로 다른 타임존 — 이 넷은 오늘 확인해서 오늘 고칠 수 있습니다. 7단계 점검표를 그대로 한 번 돌려 보시면, 지금 계정의 불일치 중 얼마가 구조이고 얼마가 사고인지 바로 갈립니다.
계정 측정 구조 점검
운영 중인 구글애즈·메타·네이버 계정과 GA4 설정을 위 7단계 기준으로 대조해, 구조적 차이와 수정 가능한 오류를 구분한 점검 결과를 정리해 드립니다. 전환 액션 중복, 중복 제거 설정, 룩백·타임존 정렬, 파라미터 유실 여부까지 항목별로 확인합니다.
이노빈(INOBEAN)
구글애즈·메타·네이버·카카오 퍼포먼스 광고 운영과 측정 구조 설계, 기업 홍보영상 제작, 수출바우처·혁신바우처 마케팅 수행을 함께 다루는 광고대행사입니다. 매체 집행과 데이터 정합성을 한 팀에서 보기 때문에, 리포트의 숫자가 어디서 갈라졌는지를 계정 단위로 추적합니다.
대표번호 02-501-1451 · marketing2@inobean.com