본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 24. 06:44

AI가 데이터를 읽을 수는 있지만 수정할 수는 없었기에, 저는 Google Ads MCP를 만들었습니다

요약

사용자가 Google Ads 데이터를 분석하는 것을 넘어 직접 수정할 수 있도록 돕는 오픈 소스 MCP 서버인 GadsChain을 소개합니다. Claude와 같은 AI가 읽기 전용 분석을 넘어 캠페인 중지, 예산 업데이트 등 실제 행동을 수행할 수 있는 구조를 제안합니다.

핵심 포인트

  • 기존 분석 도구의 한계인 '읽기 전용' 문제를 해결하기 위해 쓰기 권한을 부여하는 MCP 서버 구축
  • Fetch, Transform, Act의 3단계 계층 구조를 통해 AI 에이전트의 실행력 강화
  • Google Ads API와 AI를 연결하여 캠페인 최적화 및 오류 수정을 자동화

저는 아이오와(Iowa)에서 장작 화덕 피자 레스토랑을 운영하고 있습니다. 지난달 저는 제 Google Ads가 돈을 낭비하고 있다는 사실을 발견했습니다. 낮은 전환율(Conversions), 금요일마다 발생하는 이상한 CPC 급등, 그리고 하나의 캠페인이 모든 것을 처리하고 있는 상황이었습니다. 저는 Claude에게 이를 해결하도록 도와달라고 요청했습니다. Claude는 데이터를 읽을 수 있었습니다. 무엇이 잘못되었는지 말해줄 수도 있었습니다. 하지만 실제로 무엇인가를 변경할 수는 없었습니다. 그래서 저는 GadsChain을 만들었습니다.

Windsor.ai나 Supermetrics와 같은 기존 도구들의 문제는 AI를 Google Ads 데이터에 연결해 준다는 점입니다. 이들은 분석(Analytics)에는 훌륭합니다. 하지만 오직 읽기만 가능합니다 — 캠페인을 일시 중지하거나, 예산을 업데이트하거나, 제외 키워드(Negative keywords)를 추가하는 것이 가능할까요? 불가능합니다. 저에게는 단순히 보고하는 것이 아니라 행동할 수 있는 AI가 필요했습니다.

무엇을 만들기 전에, 저는 레스토랑의 지난 28일간 Google Ads 데이터를 추출하여 Claude에게 분석하도록 했습니다:

  • 총 지출: 28일 동안 $51.41
  • 클릭(Clicks): 163
  • 노출(Impressions): 3,389
  • CTR: 4.81% (평균 이상)
  • 전환(Conversions): 3
  • 전환당 비용(Cost/conversion): $17.14

CTR은 실제로 좋았습니다. 문제는 다른 곳에 있었습니다.

발견 1 — 금요일의 이상 현상. 금요일의 CPC는 평균 $0.44인 것에 비해 $0.11였습니다. 이는 디스플레이 네트워크(Display Network) 트래픽이 섞여 들어온 것으로, 의도가 낮고 품질이 낮은 클릭들이 예산을 낭비하고 있었습니다.

발견 2 — 전환 추적(Conversion tracking) 오류. 163번의 클릭 중 28일 동안 단 3건의 전환만 발생했습니다. 대부분의 날에는 0건을 기록했습니다. 추적이 제대로 작동하지 않고 있었습니다.

발견 3 — 목적지 URL(Destination URL) 오류. 캠페인이 몇 달 전 DNS 정리 중에 삭제한 서브도메인을 가리키고 있었습니다. Google은 5월 3일부터 죽은 URL을 크롤링하려고 시도해 왔습니다. 단 하나의 깨진 링크 때문에 3주 동안 노출이 0이었습니다.

발견 4 — 잘못된 캠페인 유형. 검색(Search) 캠페인 대신 실적 최대화 캠페인(Performance Max, PMax)을 실행하고 있었습니다. PMax는 불투명하며 최적화하기 위해서는 30개 이상의 전환이 필요합니다. 3개의 전환만으로는 눈을 가리고 비행하는 것과 같았습니다.

Claude는 이 모든 것을 식별해 냈습니다. 하지만 저는 Google Ads UI를 하나씩 클릭하며 수동으로 수정해야 했습니다. 그것이 바로 GadsChain이 메우는 격차입니다.

GadsChain이 하는 일
GadsChain은 AI 어시스턴트에게 Google Ads에 대한 직접적인 쓰기 권한(Write access)을 부여하는 오픈 소스 MCP 서버입니다.

세 가지 계층: Google Ads API → [Fetch] → [Transform] → [Act] → AI Agent

GAQL micros→$ mutate queries CTR norm campaigns

Fetch — 캠페인, 검색어, 예산 데이터를 위한 GAQL (Google Ads Query Language) 쿼리.

Transform — 가공되지 않은 protobuf 응답을 변환. 마이크로 단위를 달러로, 소수점 CTR을 퍼센트로 변환하며, enum 이름을 추출하고 None 값을 유연하게 처리합니다. AI는 가공되지 않은 API 출력이 아닌 정제된 데이터를 받게 됩니다.

Act — 실제로 변화를 일으키는 6가지 도구:

  • get_campaigns ( customer_id )
  • get_search_terms ( customer_id , campaign_id , days )
  • update_budget ( customer_id , campaign_id , daily_budget_usd )
  • pause_campaign ( customer_id , campaign_id )
  • enable_campaign ( customer_id , campaign_id )
  • add_negative_keywords ( customer_id , campaign_id , keywords )

내장된 안전 제어 장치:

  • REMOVED 상태 차단 — 되돌릴 수 없는 치명적 오류(hard error)로 처리
  • 공유 예산(Shared budgets) 거부 — 여러 캠페인에 영향을 주는 무분별한 변형 대신 명시적 오류 발생
  • 자격 증명 누락 시 — import 시점이 아닌 첫 번째 도구 호출 시 에러 발생

기술 스택:

  • 언어: Python 3.11
  • MCP 계층: FastMCP
  • Google Ads: google-ads >= 24.0.0
  • 검증: Pydantic v2
  • 설정: python-dotenv
  • 컨테이너: Docker
  • 레지스트리: PyPI

우리의 첫 번째 서버인 ThinChain(옵션 체인 데이터, 95% 토큰 감소)과 동일한 스택입니다. 이 패턴은 효과적입니다. FastMCP가 MCP 프로토콜을 처리하므로, 사용자는 도메인 로직에만 집중할 수 있습니다.

수정 후 실제 수치들
대상 URL을 수정하고 검토를 요청한 지 24시간 이내:

  • 광고가 Google의 검토 대기열(review queue)에 다시 진입함
  • 일일 예산이 $7에서 $20로 인상됨
  • 디스플레이 네트워크(Display Network)의 낭비 요소를 식별하고 해결 가능해짐
  • 전환 추적(Conversion tracking) 재구축 중

GadsChain 이전: AI가 광고 데이터를 읽으면, 사용자가 수동으로 수정합니다.
GadsChain 이후: AI가 광고 데이터를 읽고, AI가 직접 수정합니다.

이것이 SnipMCP 패턴입니다.
GadsChain은 SnipMCP 하의 두 번째 서버입니다. 핵심 논지는 이렇습니다: 모든 도메인은 동일한 문제를 가지고 있습니다. 가공되지 않은 API 데이터는 너무 노이즈가 심하고, 너무 크며, 너무 복잡해서 AI 에이전트가 신뢰성 있게 행동하기 어렵습니다. SnipMCP는 데이터가 모델에 도달하기 전에 이를 정제(sanitize), 압축(compress), 구조화(structure)하는 도메인 인지형(domain-aware) MCP 서버를 구축합니다.

ThinChain: 482개의 옵션 스트라이크(option strikes) → 25개의 관련 스트라이크 (95% 토큰 감소)
GadsChain: 수천 개의 광고 지표(ad metrics) → 실행 가능한 신호(actionable signals)
동일한 패턴, 다른 도메인입니다. 우리는 더 많은 것을 구축하고 있습니다.

시작하기:
pip install gadschain

필요한 사항:

  • Google Ads Manager Account (MCC)
  • Developer token (Google Ads API Center에서 신청)
  • Google Cloud Console에서 발급받은 OAuth2 자격 증명 (credentials)

전체 설정 가이드는 README에 있습니다.
GitHub: github.com/SnipMCP/gadschain
ThinChain: github.com/SnipMCP/thinchain
Platform: snipmcp.com

PR(Pull Request)을 환영합니다. 다른 도메인을 위한 MCP 서버를 구축하고 계신다면, 저희와 이야기를 나누고 싶습니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0