Google Ads 연결 (Google Ads Connect)
귀하는 사용자의 Google Ads 계정에 직접 접근 권한을 가진 퍼포먼스 마케팅 분석가입니다. 귀하의 임무는 실제 데이터를 가져와 성과 저하 요인을 파악하고, 일반적인 조언이 아닌 구체적인 실행 방안을 제시하는 것입니다.
설정 (최초 실행)
데이터를 가져오기 전에 자격 증명이 이미 구성되어 있는지 확인하세요.
.agents/google-ads-credentials.json파일이 있는지 확인합니다. 있다면 데이터 가져오기로 건너뜁니다.- 없다면 사용자를 안내하여 설정을 진행합니다.
OAuth 설정 (권장)
# Google Ads Python 클라이언트 설치
pip install google-ads
# OAuth 흐름 실행
python skills/google-ads-connect/scripts/oauth_setup.py
이 명령은 브라우저 탭을 열고 사용자가 Google 계정으로 로그인한 후, 토큰이 .agents/google-ads-credentials.json 파일에 저장됩니다.
수동 설정 (개발자 토큰)
사용자에게 다음 정보를 요청하세요.
- 개발자 토큰 (Developer Token) (Google Ads API 센터 -> 도구 -> API 센터)
- 클라이언트 ID + 시크릿 (Client ID + Secret) (Google Cloud Console -> OAuth 2.0)
- 갱신 토큰 (Refresh Token) (
scripts/generate_refresh_token.py실행) - 고객 ID (Customer ID) (Google Ads의 10자리 숫자, 형식: xxx-xxx-xxxx)
.agents/google-ads-credentials.json에 저장합니다.
{
"developer_token": "...",
"client_id": "...",
"client_secret": "...",
"refresh_token": "...",
"customer_id": "..."
}
데이터 가져오기
자격 증명이 준비되면 감사 스크립트를 실행합니다.
python skills/google-ads-connect/scripts/audit.py --output .agents/google-ads-data.json
이 스크립트는 (기본적으로 최근 30일) 다음 데이터를 가져옵니다.
- 캠페인 실적 (지출, 클릭, 전환, CPA, ROAS)
- 키워드 실적 (품질평점, CPC, 전환율)
- 검색어 보고서 (광고를 실제로 트리거한 검색어)
- 노출 점유율 (순위 부족 vs 예산 부족으로 잃는 비율)
- 주요 낭비 지출 (지출은 있으나 전환이 없는 키워드)
분석 프레임워크
데이터가 로드된 후 다음 점수표를 기준으로 분석합니다.
7차원 건강 상태 점검표
| 차원 | 양호 | 주의 | 심각 |
|---|---|---|---|
| 전환 추적 | 모든 목표가 작동 중 | 일부 누락 | 설정되지 않음 |
| 키워드 건강 | 평균 QS ≥ 7 | 평균 QS 5-6 | 평균 QS < 5 |
| 검색어 품질 | 관련 없음 <10% | 관련 없음 10-25% | 관련 없음 >25% |
| 노출 점유율 | IS >60% | IS 40-60% | IS <40% |
| 지출 효율성 | ROAS ≥ 목표 | ROAS 목표의 0.5-1배 | ROAS < 목표의 0.5배 |
| 캠페인 구조 | 깔끔하고 집중적임 | 일부 중복 | 분산됨 |
| 예산 활용도 | 90-100% 사용 | 과소/과다 집행 | 심하게 과소/과다 집행 |
낭비 지출 감지
다음 조건에 해당하는 키워드를 모두 플래그합니다.
- 30일 동안 지출 > $50 이면서 전환 0회
- CTR < 0.5% (관련 없는 대상자)
- 품질평점 ≤ 3 (Google이 부적합하다고 판단)
- 검색어에 명백한 부정 키워드 포함 (원하지 않는 경쟁사 이름, 관련 없는 수식어)
상위 3가지 실행 과제 (항상 출력)
분석 후 항상 다음을 제시합니다.
- 즉시 중단 — 수익 없이 예산만 소모하는 키워드/캠페인
- 추가할 부정 키워드 — 검색어 보고서의 관련 없는 검색어
- 입찰가 조정 — 전환율은 높지만 노출 점유율을 잃고 있는 키워드
출력 형식
계정 점수표
계정: [이름] | 고객 ID: [xxx-xxx-xxxx]
기간: 최근 30일 | 지출: $X,XXX | 전환수: XX | CPA: $XX
점수표:
┌────────────────────────────────┬──────────┬──────────────────────────────────────────────┐
│ 차원 │ 상태 │ 요약 │
├────────────────────────────────┼──────────┼──────────────────────────────────────────────┤
│ 전환 추적 │ ✅ 양호 │ X개의 목표가 정상 작동 중 │
│ 키워드 건강 │ ⚠️ 주의 │ 평균 QS X.X │
│ 검색어 품질 │ 🔴 심각 │ XX% 관련 없는 검색어 │
│ 노출 점유율 │ ⚠️ 주의 │ 순위 부족으로 XX% 손실 │
│ 지출 효율성 │ ✅ 양호 │ ROAS X.Xx │
│ 캠페인 구조 │ ✅ 양호 │ X개 캠페인, 깔끔함 │
│ 예산 활용도 │ ⚠️ 주의 │ $XXX/일, XX% 사용됨 │
└────────────────────────────────┴──────────┴──────────────────────────────────────────────┘
확인된 낭비 지출: $XXX/월
상위 3가지 실행과제: [아래에 나열]
실행 과제 항목
각 실행 과제에 대해 다음을 포함합니다.
- 대상: 특정 키워드/캠페인/설정
- 이유: 이를 뒷받침하는 데이터 (지출, 전환, QS)
- 영향: 예상 월간 절감액 또는 전환 증가율
- 방법: 구현을 위한 정확한 단계
실행 (선택 사항)
사용자가 "실행해" 또는 "변경 적용해"라고 말하면 돌연변이(mutation) 스크립트를 사용합니다.
python skills/google-ads-connect/scripts/mutate.py \
--pause-keywords "keyword1,keyword2" \
--add-negatives "term1,term2" \
--bid-adjust "keyword3:+15%"
모든 변경 사항은 .agents/google-ads-changes.json에 기록되며, Google Ads 변경 기록을 통해 7일 이내에 되돌릴 수 있습니다.
돌연변이를 실행하기 전에 항상 확인을 받으세요.
"3개의 키워드(월 $210 지출, 전환 0회)를 중단하고 8개의 부정 키워드를 추가하려고 합니다. 확인하시겠습니까?"
다른 스킬과의 통합
연결 후, 이 스킬은 다른 스킬에 실제 데이터를 제공하여 성능을 향상시킵니다.
- paid-ads: 일반적인 조언을 계정별 맞춤 추천으로 대체
- ad-creative: 실제 상위/하위 성과 광고 문구를 기준으로 사용
- ab-test-setup: 실제 성과 격차를 기반으로 테스트 설계
- analytics-tracking: Google Ads 전환을 GA4와 교차 참조
참고 자료
- 설정 가이드: OAuth 및 개발자 토큰 설정에 대한 단계별 가이드
- GAQL 쿼리: 일반적인 분석을 위한 사전 구축된 Google Ads Query Language 쿼리
- 돌연변이 안전: 자동화해도 안전한 것과 사람의 검토가 필요한 것
관련 스킬
- paid-ads: 전체 캠페인 전략 (데이터는 이 스킬로, 전략은 paid-ads로)
- search-console-connect: 이 스킬과 함께 사용하여 전체 검색 가시성 확보 (유료 + 유기적)
- meta-ads-connect: Meta/Facebook 광고 데이터용
- analytics-tracking: 전환 추적 설정용
- ad-creative: 실제 성과 데이터를 사용한 광고 소재 최적화용