전체 글

대규모 광고 검증: 지리적 진위성 문제

2025년 미국 프로그래매틱 광고는 무효 트래픽으로 370억 달러의 손실을 기록했습니다. 이 지출을 검증하려면 단순한 미국 데이터센터가 아니라 광고를 구매하는 모든 시장의 현지 모니터링이 필요합니다.

Fraudlogix는 2025년 미국 프로그래매틱 무효 트래픽 비율을 20.64%로 추정했습니다. 이는 1,800억 달러의 지출 중 약 370억 달러가 봇, 위조된 인벤토리, 또는 광고 목적 사이트에 제공된 것을 의미합니다. DoubleVerify, IAS, Peer39와 같은 검증 업체는 노출의 일부를 샘플링하고 나머지를 평가합니다. 브랜드는 내부 감사에서 차이가 나타날 때까지 이 평가를 신뢰합니다.

그 차이는 다음과 같습니다. 미국 데이터센터 IP에서 브라질 캠페인을 확인하면 상파울루 모바일 사용자가 보는 것을 볼 수 없습니다. 대체 광고 소재나 다른 입찰 낙찰자가 보이거나 아무것도 보이지 않을 수 있습니다. 현지 관점 없는 검증은 수치가 실제와 일치할지 예측할 수 없는 도박과 같습니다.

사기 비율은 시장마다 동일하지 않습니다. Fraudlogix의 국가별 분석에 따르면 한국은 23.47%, 멕시코는 22.81%, 브라질은 22.33%입니다. 미디어 계획이 여러 국가에 걸쳐 있다면 정확한 평가를 위해 각 국가에 맞는 관점이 필요합니다.

접근 방식

프로그래매틱 광고 검증은 모두 실제 위치 기반 렌더링이 필요한 세 가지 문제로 나뉩니다.

  1. 배치 감사. 광고가 DSP가 보고한 URL의 상단, 안전한 콘텐츠 옆에 표시되었는가?
  2. 소재 확인. 의도한 소재가 렌더링되었는가, 아니면 악성 퍼블리셔가 브랜드와 맞지 않는 다른 것으로 교체했는가?
  3. 목적지 검증. 클릭 시 실제로 어디로 이동하는가? 랜딩 URL은 국가, 기기, 심지어 ISP에 따라 달라질 수 있습니다.

단일 관점에서는 이 중 어느 것도 제대로 작동하지 않습니다. Header 비딩은 시청자의 브라우저에서 실시간 경매를 실행하며 낙찰자는 IP, cookie, 기기 프로필에 따라 달라집니다. 같은 시간에 프랑크푸르트와 상파울루에서 동일한 퍼블리셔 URL을 가져오면 두 개의 서로 다른 HTML 문서가 반환됩니다. 이는 사이트의 버그가 아닙니다. 광고 스택이 설계된 대로 작동하는 것입니다.

일부 검증 환경은 User-Agent를 pt-BR(으)로 고정하고 Accept-Language header를 설정하여 로컬 뷰를 위조하려고 시도합니다. 광고 익스체인지는 이를 신경 쓰지 않습니다. 입찰자는 클라이언트가 주장하는 header가 아니라 보고된 IP의 위치 조회를 기반으로 라우팅합니다. IP가 버지니아 데이터센터로 확인되면 header가 브라질을 가리키더라도 미국 인벤토리를 얻게 됩니다. 네트워크 경로를 우회하는 지름길은 없습니다.

캠페인 타겟팅이 엄격할수록 이 문제는 더 분명해집니다. 우편번호와 모바일 통신사로 정의된 리타겟팅 풀은 프랑크푸르트 데이터센터 출구에서는 노출 없음으로 표시되고, Deutsche Telekom 모바일 가입자 IP에서는 실제 노출로 표시됩니다. 두 결과 모두 관측한 상황에 대해서는 정확합니다. 그러나 구매자가 실제로 본 것을 알려주는 것은 하나뿐입니다.

따라서 인프라는 동시에 세 가지를 수행해야 합니다. 대상 국가의 실제 ISP에서 통신을 시작해야 합니다. 광고 슬롯에 필요할 때 JavaScript를 렌더링해야 합니다. 그리고 청중이 아닌 스크래퍼처럼 보일 정도로 동일한 IP에서 동일한 퍼블리셔에 너무 자주 접근하지 않아야 합니다.

FourA API를 사용한 실용적인 패턴은 다음과 같습니다.

import requests

# Fetch the placement page from a Brazilian exit
r = requests.post(
    "https://api.foura.ai/api/proxy",
    headers={"Authorization": "Bearer pk_live_..."},
    json={
        "exitCountries": ["BR"],
        "maxTries": 5,
        "request": {
            "url": "https://publisher.example.com/article/1234",
            "validate": {
                "status": {"accept": [200]},
                "data":   {"fail":   ["captcha", "Just a moment"]}
            }
        }
    }
).json()

# r["data"] holds the HTML; the response also echoes the country that
# served the request, so you can log the market you observed from.
html = r.get("data")

JavaScript 실행 후에만 광고 슬롯이 확인되는 퍼블리셔의 경우, URL을 /api/auto에 전달하여 렌더링 경로를 선택하도록 하십시오. Auto는 해당 호스트에 콘텐츠를 실제로 제공하는 국가를 학습하고 향후 호출을 해당 국가로 라우팅합니다. 따라서 학습된 세션 풀이 커짐에 따라 수천 개의 URL에 대한 브랜드 안전성 검사가 더 빠르고 저렴해집니다. 부동산 관련 문서에서 다른 버티컬에 대한 동일한 지리적 다양성 패턴을 설명합니다.

결과

일반적인 브랜드 측 설정: 12개국에 걸쳐 모니터링되는 800개의 게재위치 URL을 매일 두 번 확인합니다. 이는 하루 19,200회의 검사이며 각각 단일 API 호출을 수행합니다. 호스트별로 세션이 캐시되므로 대부분의 후속 호출은 브라우저 렌더링을 건너뜁니다. 팀이 최종적으로 확인하는 내용은 다음과 같습니다.

  • 매월 샘플링이 아닌 매일 모든 시장을 감사합니다. 검증 벤더의 한 자릿수 샘플 비율은 비용을 가장 많이 지출하는 URL에 대한 전체 검사로 보완됩니다.
  • 수 시간 내에 불일치를 감지합니다. 캠페인이 예산을 하루 더 소진하기 전에 크리에이티브 교체 또는 게재위치 변경이 플래그로 지정됩니다.
  • 자체 클라우드의 headless 플릿보다 저렴합니다. 모든 리전에서 브라우저 팜을 실행하는 비용과 추가적인 주거용 proxy 계약 비용이 사라집니다. 검사당 하나의 endpoint를 호출하고 렌더링된 페이지를 돌려받습니다.
  • 검사별 감사 추적을 제공합니다. 각 응답에는 렌더링된 HTML, 이를 제공한 국가, 그리고 기록할 수 있는 불투명 proxy ID가 포함됩니다. 불일치가 발생하면 브랜드 팀, 대행사 또는 퍼블리셔에게 전달할 정확한 증거를 확보할 수 있습니다.

실제 지출은 URL 수, 빈도, 전체 브라우저 렌더링이 필요한 URL 수에 따라 다릅니다. 하지만 형태는 동일합니다. 주변 인프라가 아닌, 실제로 제공되는 결과에 대해서만 비용을 지불합니다.

핵심 요약

검증은 측정의 문제입니다. 단일 관점을 더 굳게 신뢰한다고 해서 정확해지지 않습니다. 관점을 추가해야 정확해집니다. 12개의 시장은 12개의 종료 노드를 의미합니다. 그 이하는 보고서가 첨부된 추측에 불과합니다.