본 사례는 실제 외주 프로젝트 수행 기록을 바탕으로 작성했습니다.
병목은 API 연결이 아니라 ‘같은 조건의 숫자’를 고객 보고서까지 유지하는 일이었습니다
저희 OO마케팅대행사는 Google Ads 관리자 계정(MCC) 아래 여러 고객 계정을 운영하고 있었습니다. API로 노출, 클릭, 비용과 전환을 내려받는 작업도 이미 해뒀고, CSV를 AI에 넣어 주간 코멘트를 써 보는 시도도 했습니다. 그런데 월요일 보고서 작업은 여전히 담당자마다 결과가 달랐습니다.
고객 계정별 시간대와 통화가 달랐고, 보고기간을 한국 시간으로 잘라 조회하면 현지 계정 화면과 일자가 어긋나는 경우가 있었습니다. 비용은 cost_micros를 실제 통화 단위로 바꿔야 했으며, GAQL에서 캠페인 상태 조건을 명시하지 않으면 화면에서는 보이지 않던 REMOVED 캠페인이 결과에 섞일 수 있었습니다. 고객마다 주 전환으로 보는 전환 액션도 달랐습니다.
특히 전주 전환수는 보고서를 만드는 시점에 확정값이 아니었습니다. 클릭 이후 전환이 늦게 들어오거나 기여 모델에 따라 집계가 갱신되면, 지난 월요일에 만든 보고서와 이번에 같은 기간을 다시 조회한 숫자가 달라졌습니다. 그 상태에서 AI가 “전환이 감소했다”고 문장을 만들면 담당자가 원인을 해석하기 전에 수치부터 다시 검증해야 했습니다. 실제 병목은 데이터를 한 번 받는 일이 아니라, 조회 조건·최신성·근거 행을 고정해 고객사 슬라이드까지 같은 버전으로 재생성하는 운영이었습니다.
기존 AI는 인증된 조회를 실행하거나 보고서의 데이터 상태를 기억하지 못했습니다
대화형 AI는 업로드한 표를 요약하고 증감률을 계산하는 데는 유용했습니다. 하지만 MCC에서 어느 고객 ID를 조회해야 하는지, 계정 시간대와 통화가 무엇인지, 어떤 전환 액션을 포함할지 스스로 확인한 뒤 인증된 GAQL 쿼리를 실행하지는 못했습니다. 빈 결과가 실제 무실적인지 인증 만료·권한 누락·쿼리 오류인지 판단하고 다시 수집하는 것도 담당자 몫이었습니다.
또 AI는 “전환 18건”이라는 셀만 보고 그 값이 조회 직후의 잠정값인지, 전환 지연을 반영해 다시 조회한 값인지 알 수 없었습니다. 수치를 만든 고객 ID, GAQL 조건, 조회 시각과 원본 행이 문장·차트에 연결되지 않으면 다음 주에 같은 보고서를 재현할 수도 없었습니다. 즉, 기존 AI가 실패한 지점은 문장력이 아니라 인증된 외부 계정에서 데이터를 가져오고, 수집 성공·최신성·보고서 버전을 끝까지 상태로 관리하는 부분이었습니다.
yaap에 문의해 ‘Google Ads 주간보고서 재생성 플러그인’을 만들었습니다
플러그인의 목표는 성과 원인을 대신 판단하는 것이 아니었습니다. 고객별 조회 규칙을 입력으로 고정하고, 인증된 수집부터 근거 행·차트·고객사 슬라이드 생성까지 같은 실행 이력으로 남기는 것이었습니다.
1. 고객별 조회 계약을 먼저 만들었습니다 — MCC와 고객 ID, 계정 시간대·통화, 보고기간, 포함할 전환 액션, 캠페인 상태 필터, 목표값과 고객사 템플릿을 설정표로 관리했습니다. 설정이 빠지거나 계정 통화가 기대값과 다르면 보고서를 만들지 않고 설정 확인 대기로 돌렸습니다.
2. 승인된 GAQL을 실제 계정에서 실행했습니다 — 고객별 인증 상태를 확인한 뒤 캠페인·일자·전환 액션 단위로 조회하고, 요청 ID와 조회 시각, 사용한 쿼리 조건을 수집 이력에 남겼습니다. 권한 오류, 만료된 인증, 빈 응답과 일부 계정 실패를 구분해 실패한 고객만 재실행할 수 있게 했습니다.
3. 화면과 어긋나는 조건을 정규화했습니다 — cost_micros를 계정 통화로 변환하고, 계정 시간대를 기준으로 날짜를 맞추고, REMOVED 포함 여부와 선택한 전환 액션을 명시했습니다. 원본 행과 변환 후 행의 합계를 대조해 통화 불일치, 기간 경계, 제거 캠페인, 전환 정의 예외표를 함께 만들었습니다.
4. 최신성과 전환 지연을 보고서 상태로 표시했습니다 — 최근 구간은 확정 수치처럼 쓰지 않고 잠정, 재조회 예정, 확정 구간으로 구분했습니다. 같은 보고기간을 재조회했을 때 전환·전환가치가 바뀌면 이전 버전과의 차이를 기록하고, 전주 대비 문장과 차트도 새 근거 행으로 다시 생성했습니다.
5. 근거 행에서 고객사 슬라이드까지 한 번에 생성했습니다 — 검증된 데이터셋, 계정별 최신성표, 누락 계정 대기열, 표·차트용 범위와 고객사 슬라이드 초안을 같은 버전으로 출력했습니다. 담당자는 예산 변경, 프로모션, 소재 교체와 영업 상황을 확인해 인과 해석과 최종 코멘트를 작성하고 배포를 승인했습니다.
보고서 작성이 화면 복사 작업에서 예외·해석 검토로 바뀌었습니다
이전에는 담당자가 MCC 화면과 스프레드시트를 오가며 고객별 기간과 필터를 다시 맞추고, 숫자가 달라지면 어느 파일이 최신인지부터 찾았습니다. 지금은 같은 설정과 조회 이력으로 보고서를 다시 만들 수 있고, 차트나 문장에 이상이 있으면 연결된 고객 ID·GAQL 조건·원본 행까지 거슬러 확인할 수 있습니다.
업무 효율의 변화는 보고서 수보다 검토 방식에서 나타났습니다. 모든 고객의 수치를 다시 복사하고 검산하는 대신, 인증 실패 계정, 시간대·통화 불일치, 제거 캠페인, 전환 지연으로 값이 변한 구간만 대기열에서 확인하게 됐습니다. 고객사 템플릿이 바뀌어도 수집 로직을 다시 만드는 것이 아니라 검증된 데이터에서 출력물만 재생성할 수 있게 됐습니다.
성과가 오른 이유나 캠페인 변화의 의미를 판단하는 일은 담당자가 계속 맡습니다. yaap 플러그인은 원인을 대신 단정하지 않습니다. 사람이 해석할 수 있도록 인증된 원본, 조회 조건, 최신성 상태와 보고서 초안을 반복 가능한 하나의 실행으로 연결한 것이 이 사례의 핵심이었습니다.
