ChatGPT 트래픽이 'Direct'에 숨겨져 있습니다 — Magento 2에서 AI 검색 리퍼럴(Referrals)을 추적하는 방법
요약
Magento 2 환경에서 ChatGPT 등 AI 엔진을 통한 리퍼럴 트래픽이 GA4에서 'Direct'로 분류되는 문제를 분석합니다. AI 검색 최적화(AEO) 이후 발생하는 트래픽 추적 누락 현상과 GA4의 새로운 AI Assistant 채널 활용법을 다룹니다.
핵심 포인트
- ChatGPT 트래픽은 리퍼러 헤더 누락으로 인해 GA4에서 Direct로 분류될 가능성이 높음
- GA4의 새로운 'AI Assistant' 채널을 통해 AI 플랫폼별 트래픽 식별 가능
- Perplexity, Gemini, Claude는 ChatGPT보다 상대적으로 추적이 용이함
- 정확한 데이터 확인을 위해 GA4 기본 채널 그룹 설정을 점검해야 함
angeo.dev에 처음 게시되었습니다. AI 플랫폼의 동작은 빈번하게 변경됩니다 — 리퍼러 정책(referrer policies)과 크롤러 이름(crawler names)은 게시 시점(2026년 7월) 이후로 진화했을 수 있습니다.
당신은 robots.txt를 업데이트했습니다. llms.txt를 생성했습니다. Product 스키마(schema)를 수정했습니다. 당신의 AEO 감사 점수는 25%에서 85%로 올라갔습니다. 그리고 GA4를 열었지만 — 아무런 특이점도 발견하지 못했습니다.
이것은 Magento 2 스토어에 AEO (AI Engine Optimization, AI 엔진 최적화)를 구현한 후 겪는 가장 흔한 좌절입니다. 작업이 도움이 되지 않았기 때문이 아니라, 표준 분석 도구들이 AI 리퍼럴 트래픽(AI referral traffic)을 추적하도록 설계되지 않았기 때문입니다. 신호는 존재하지만 — 단지 잘못된 범주에 숨겨져 있을 뿐입니다.
요약 (TL;DR)
- **2026년 5월 13일부터 GA4에는 ChatGPT, Gemini
| 플랫폼 (Platform) | 리퍼러(Referrer) 전달 여부 | GA4 기본 인식 값 | 크롤러 UA (Crawler UA) |
|---|---|---|---|
| ChatGPT | ❌ 아니요 | Direct / (없음) | GPTBot, OAI-SearchBot |
| ... |
ChatGPT의 경우 구체적으로: 동작 방식은 링크가 어디에 나타나는지에 따라 달라집니다. 대화형 답변 내의 인라인 링크(Inline links)와 모바일 앱을 통해 열리는 링크는 일반적으로 Referer 헤더 없이 도착합니다. OpenAI는 2025년 중반부터 ChatGPT Search의 "More sources"에 있는 일부 링크에 UTM 파라미터를 추가해 왔으나, 이것이 보장된 동작으로 문서화되어 있지는 않습니다. 사용 가능한 리퍼러(Referrer)를 포함하여 도착하는 ChatGPT 세션의 비율에 대한 발표된 추정치는 출처에 따라 약 10%에서 40% 사이입니다. 단일 벤치마크를 신뢰하기보다는 귀하의 서버 로그를 통해 직접 확인하십시오.
실질적인 이점: 현재로서는 Perplexity, Gemini, Claude를 합친 것이 ChatGPT보다 더 추적 가능한(trackable) 이커머스 리퍼럴(Referral) 트래픽을 나타낼 가능성이 높으며, 세 서비스 모두 현재 대응이 가능합니다.
방법 0: GA4의 기본 "AI Assistant" 채널 (0분 소요)
2026년 5월 13일, Google은 GA4의 기본 채널 그룹(Default Channel Group)에 네이티브 AI Assistant 채널을 추가했습니다. GA4가 인식된 AI 어시스턴트와 일치하는 리퍼러(Referrer)를 감지하면 자동으로 다음을 할당합니다:
- 매체 (Medium):
ai-assistant - 캠페인 (Campaign):
(ai-assistant) - 기본 채널 그룹 (Default Channel Group):
AI Assistant— Organic Search, Direct 등 바로 옆에 위치 - 소스 (Source): 원래 도메인(
chatgpt.com,gemini.google.com)을 유지하므로 여전히 플랫폼별로 세분화할 수 있음
귀하의 속성(Property)에서 활성화되었는지 확인하려면: **보고서(Reports) → 획득(Acquisition) → 트래픽 획득(Traffic acquisition)**으로 이동하여 기본 측정기준을 _세션 기본 채널 그룹(Session default channel group)_으로 설정하고 "AI Assistant" 행이 있는지 확인하십시오. 만약 보이지 않는다면 날짜 범위를 90일로 확장해 보십시오. 배포는 점진적으로 이루어졌으며, 이 단계에서는 조건에 맞는 세션이 0개인 것도 정상입니다.
알아야 할 세 가지 제한 사항:
- 소급 적용 불가 (Not retroactive). 2026년 5월 13일 이전의 모든 데이터는 Direct/Referral로 분류된 상태로 유지됩니다. 당분간은 깔끔한 전년 대비 (YoY) 비교가 어려울 것입니다.
- 여전히 리퍼러(Referrer)에 의존함. 모바일 앱, 인앱 브라우저(in-app browsers), 복사-붙여넣기 → 여전히 Direct로 분류됩니다. 구조적인 격차가 사라진 것이 아니라, 단지 놓치고 있는 것이 무엇인지 더 쉽게 파악할 수 있게 된 것뿐입니다.
- 문서화된 범위는 ChatGPT, Gemini, Claude입니다. 일부 제3자 소스에서는 더 넓은 범위(Perplexity, Copilot, Grok...)를 주장하지만, Google의 자체 문서에서는 이를 일관되게 확인해주지 않습니다. Perplexity의 경우, 자체 데이터에서 확인하기 전까지는 네이티브 채널을 통한 유입을 미확인 상태로 취급하십시오.
방법 1: 맞춤 채널 그룹 (Custom Channel Group) (5분 소요)
네이티브 채널이 있더라도 여전히 시도할 가치가 있습니다. 주로 Perplexity 커버리지 확보와 지속적인 과거 트렌드 라인을 확인하기 위함입니다.
- GA4 관리 (Admin) → 데이터 표시 (Data display) → 채널 그룹 (Channel groups) → 새 채널 그룹 만들기 (Create new channel group)
- 이름을 **"AI Search"**로 지정하고, 조건 유형을 **세션 소스 포함 (Session source contains)**으로 설정합니다. 도메인당 하나의 규칙을 만들거나, 규칙 사이에 OR 로직을 사용합니다.
- 아래의 도메인들을 추가합니다.
- 저장 후 24~48시간을 기다립니다 (새로운 세션에만 적용됩니다).
perplexity.ai # Perplexity
gemini.google.com # Google Gemini
bard.google.com # legacy
...
저장한 후, 트래픽 획득 (Traffic acquisition)으로 이동하여 기본 측정기준 (primary dimension)을 새로 만든 채널 그룹으로 전환하십시오. 대부분의 쇼핑몰은 존재조차 몰랐던 Perplexity 트래픽을 발견하게 됩니다. 그것은 내내 Referral에 머물러 있었습니다.
네이티브 채널 vs 맞춤 그룹 비교:
| 기능 | 네이티브 AI 어시스턴트 (Native AI Assistant) | 맞춤 채널 그룹 (Custom Channel Group) |
|---|---|---|
| 설정 | 없음 | 약 5분 |
| ... |
방법 2: llms.txt에 UTM 파라미터 사용 (30분 소요)
ChatGPT가 대부분의 링크 유형에서 리퍼러(referrer)를 제거하기 때문에, ChatGPT 트래픽의 최소한 '일부'라도 기여도를 할당하는 가장 실질적인 방법은 AI 탐색 레이어(discovery layers)인 llms.txt 및 실험적 커머스 피드(experimental commerce feeds)를 통해 노출되는 URL에 UTM 파라미터를 사용하는 것입니다. UTM은 리퍼러가 누락되더라도 GA4에 도달합니다.
# llms.txt — UTM 트래킹 포함
# Products
...
만약 실험적인 OpenAI 커머스 피드(commerce feed) 통합을 테스트 중이라면, 해당 URL에도 별도의 소스(source)를 사용하여 태그를 지정하세요. 이를 통해 피드 기반 클릭과 유기적인 ChatGPT 리퍼럴(referrals)을 분리할 수 있습니다:
{
"id": "sku-001",
"name": "Wireless Headphones XM5",
...
알려진 제한 사항: ChatGPT는 때때로 URL을 클릭 가능한 링크가 아닌 일반 텍스트로 렌더링합니다. 사용자가 복사하여 붙여넣는 과정에서 UTM이 제거되는 경우가 많습니다. UTM 트래킹은 '확인된 의도적인 클릭(confirmed intentional clicks)'만을 포착하므로, AI의 영향을 받은 전체 트래픽을 실제보다 적게 집계할 것입니다. 클라이언트 측(client-side)에서의 신뢰할 수 있는 해결책은 없으며, 서버 로그(Method 4)가 그 간극을 메워줍니다.
llms.txt 자체에 대한 참고 사항: 도입 단계에 있으며, 플랫폼마다 이를 소비하는 방식이나 소비 여부가 다릅니다. 이를 보장된 크롤러 지침 표준(crawler instruction standard)이 아닌, 권장되는 베스트 프랙티스 신호 계층(best-practice signal layer)으로 취급하세요. 여기에 UTM을 추가하는 것은 노력이 적게 들며, 어쨌든 수행할 가치가 있습니다.
Method 3: Search Console 크롤 통계 (2분)
GSC는 AI 리퍼럴 트래픽을 보여주지 않습니다. 대신 **AI 크롤러 활동(AI crawler activity)**을 보여주며, 이는 추천 트래픽이 발생하기 며칠 또는 몇 주 전에 나타나는 선행 지표입니다.
**Search Console → 설정(Settings) → 크롤 통계(Crawl stats) → 모든 크롤 요청 보기(See all crawl requests)**를 클릭한 후, 사용자 에이전트(user agent)별로 필터링하세요:
| User agent | Platform | 크롤 빈도 상승의 의미 |
|---|---|---|
GPTBot | ChatGPT | 귀하의 페이지가 답변 후보로 고려될 가능성이 훨씬 높아짐 |
| ... |
robots.txt에서 AI 봇의 차단을 해제하고 llms.txt를 게시한 후, 1~2주 이내에 GPTBot의 크롤 빈도가 상승해야 합니다. 이는 트래픽이 GA4에 도달하기 전, AEO(Answer Engine Optimization) 변경 사항이 효과를 거두고 있다는 첫 번째 측정 가능한 확인 지표입니다.
Method 4: 서버 로그 (15분, 가장 정확함)
서버 로그는 AI 크롤러의 방문과 사용 가능한 리퍼러(referrers)를 포함한 모든 HTTP 요청을 포착합니다. 이는 GSC와 독립적으로 GPTBot의 활동을 확인할 수 있는 유일한 방법입니다.
# AI 봇 요청 수 세기
grep -E "(GPTBot|OAI-SearchBot|PerplexityBot|Google-Extended|ClaudeBot)" /var/log/nginx/access.log \
| awk '{print $1}' | sort | uniq -c | sort -rn | head -20
...
상위 제품 페이지에서 GPTBot의 빈도가 높게 나타나는 것은 좋은 신호입니다. 즉, 해당 페이지들이 ChatGPT 추천을 받을 강력한 후보라는 뜻입니다. Hypernode 호스팅을 사용하는 경우, 로그는 /var/log/nginx/access.log에 저장되며 매일 로테이션(rotation)됩니다. 제공된 명령어들은 그대로 작동합니다.
종합하기: 퍼널(Funnel) 관점
| 단계 | 측정 위치 | 의미 |
|---|---|---|
| AI 봇 크롤링 (Crawling) | GSC → 크롤링 통계 (Crawl Stats) | 인덱싱되었으며 AI 추천 대상이 될 자격이 있음 |
| ... |
GA4 탐색(Explore)에서 _채널 그룹 (channel group) = "AI Assistant" 또는 "AI Search"_로 필터링된 탐색을 하나 생성하세요. 세션은 한 번에 하나의 채널 그룹 정의에만 속할 수 있으므로 중복 집계(double-counting)되지 않습니다.
BigQuery로 데이터를 내보낸다면 (모든 GA4 속성에서 무료), 더 나아갈 수 있습니다. 서버 로그의 GPTBot 크롤링 이벤트와 이후 48시간 동안의 세션 급증(spikes) 사이의 상관관계를 분석하거나, AI 세션을 제품 카테고리별로 세분화(segment)하여 카탈로그의 어느 부분이 추천되는지 확인할 수 있습니다.
벤치마크: AI 트래픽은 어느 정도가 "정상"인가?
커뮤니티 보고서와 초기 도입자 데이터에 기반한 방향성 범위이며, 보장된 수치는 아닙니다:
| 스토어 프로필 | 세션 중 AI 비중 | 주요 소스 |
|---|---|---|
| AEO 작업 없음 | 0.1–0.5% | Perplexity (대부분 추적되지 않음) |
| ... |
익명화된 한 사례: 한 Magento 의류 스토어는 네 가지 변경 사항(GPTBot 허용, llms.txt 추가, 공급업체 복사본 설명 재작성, Product 스키마(schema) 수정)을 적용한 후 약 90일 동안 AI 비중이 ~0.3%에서 ~2.1%로 증가했습니다. 초기에는 Perplexity가 측정 가능한 리퍼럴(referrals)의 대부분을 주도했으며, ChatGPT 기여도(attribution)는 부분적이고 UTM에 의존적인 상태로 유지되었습니다.
솔직한 부분: 기여도(Attribution)는 확률적입니다
네 가지 방법을 모두 설정하면 현저히 더 나은 그림을 그릴 수 있지만, 완벽한 것은 아닙니다. 그 격차는 구조적인 문제입니다:
| 격차 (Gap) | 이유 (Why) | 해결 방안 (Workaround) |
|---|---|---|
| 다크 ChatGPT 트래픽 (Dark ChatGPT traffic) | 리퍼러(Referrer) 없음; 붙여넣기 시 UTM 파라미터가 제거됨 | UTM은 의도적인 클릭을 포착하고, 로그는 크롤링(Crawls)을 포착함 |
| ... |
실무적인 프레임워크: AI 트래픽 측정을 **방향성 신호 (Directional signal)**로 취급하십시오. 만약 귀하의 AI 채널이 이번 달에 80회의 세션(Sessions)을 기록하고 다음 달에 140회를 기록한다면, 비록 절대적인 수치가 AI의 영향을 받은 트래픽을 40~60% 과소평가하더라도 그 추세는 실제하는 것입니다.
디버깅: "AI 트래픽이 전혀 보이지 않습니다"
먼저, 일반적인 AEO(Answer Engine Optimization) 격차를 확인하십시오: GPTBot/OAI-SearchBot을 차단하는 robots.txt, 404를 반환하는 llms.txt, offers.availability가 누락된 제품 스키마(Product schema)(ChatGPT Shopping은 해당 제품들을 건너뜁니다), AI가 확신을 가지고 추천할 수 없는 공급업체 복제 설명문(Supplier-copy descriptions) 등입니다. 만약 이러한 문제들이 해결되었고 채널 그룹(Channel group) 설정이 완료되었다면, 4~8주 정도 기다려 보십시오. 크롤링에서 트래픽으로 이어지는 지연 시간(Lag)은 실제로 존재합니다.
봇이 크롤링을 하고 있음에도 세션이 여전히 Direct(직접 유입)로 분류된다면 다음을 확인하십시오: Safari/Firefox의 ETP(Enhanced Tracking Protection)/개인정보 보호 확장 프로그램에 의한 리퍼러 제거, Referer를 드롭하는 Cloudflare Transform Rules, 301/302 리다이렉트 체인(리다이렉트 단계에서 리퍼러가 소멸됨), GA4 동의 모드(Consent Mode)에 의한 사전 동의 데이터 차단, 채널 그룹 조건 내 잘못된 일치 유형(Match type), UTM을 제거하는 Magento URL 재작성(URL rewrites).
빠른 진단 방법: 시크릿 모드에서 ?utm_source=test_ai&utm_medium=debug를 포함하여 제품 URL을 방문한 후, GA4 실시간(Realtime) → 트래픽 소스(Traffic sources)를 확인하십시오. UTM이 나타난다면 GA4는 정상이며, 문제는 상류(Upstream)에 있는 것입니다. 나타나지 않는다면, 문제는 데이터 스트림(Data stream) 또는 Magento의 URL 처리 방식에 있습니다.
저는 AEO를 위한 일련의 MIT 라이선스 오픈 소스 Magento 2 모듈(llms.txt 생성, robots.txt AI 봇 관리, 구조화된 데이터(Structured data), MCP/UCP 엔드포인트)을 유지 관리하고 있습니다. 모두 Packagist의 angeo/ 및 GitHub에서 확인하실 수 있습니다. 위의 설정에 대한 질문이 있다면 댓글로 기꺼이 답변해 드리겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기