# Google Ads API 연동 모듈 구축 (골격)

## 작업 개요
Meta Ads 모듈(meta_ads_client.py)과 동일 패턴으로 Google Ads API 클라이언트를 구축한다.
인증 정보는 아직 미확보 → 코드 골격 + mock 테스트로 선 구축, 인증 정보 확보 후 실 연동.

## 참고: Meta Ads 모듈 (동일 패턴 적용)
- `/home/jay/workspace/utils/meta_ads_client.py` — 645줄, 17개 메서드
- `/home/jay/workspace/scripts/meta_ads_cli.py` — 250줄, 8개 서브커맨드

## 핵심 구현 사항

### 1. 의존성 설치
```bash
pip install google-ads
```

### 2. Google Ads 클라이언트 모듈
- 경로: `/home/jay/workspace/utils/google_ads_client.py`
- 클래스: `GoogleAdsClient`
- 초기화: .env.keys에서 환경변수 로드 → google.ads.googleads.client.GoogleAdsClient 초기화
- 환경변수 (아직 미입력, 코드에서 참조만):
  - `GOOGLE_ADS_DEVELOPER_TOKEN`
  - `GOOGLE_ADS_CLIENT_ID`
  - `GOOGLE_ADS_CLIENT_SECRET`
  - `GOOGLE_ADS_REFRESH_TOKEN`
  - `GOOGLE_ADS_CUSTOMER_ID`
- 기능 (meta_ads_client.py와 동일 패턴):
  - **인증 관리**: OAuth2 refresh token 기반
  - **캠페인 CRUD**: 생성, 조회, 수정, 삭제
  - **광고그룹 CRUD**: 생성, 조회, 수정, 삭제
  - **키워드 관리**: 추가, 조회, 상태 변경
  - **광고 CRUD**: 반응형 검색 광고, 디스플레이 광고
  - **인사이트 조회**: 캠페인/광고그룹/광고별 성과 리포트
  - **계정 정보 조회**: 계정 상태, 예산 정보

### 3. CLI 인터페이스
- 경로: `/home/jay/workspace/scripts/google_ads_cli.py`
- Meta CLI와 동일 구조:
  - `status` — 인증 상태 + 계정 정보
  - `campaigns list/create/get` — 캠페인 관리
  - `insights --campaign-id <id> --days 7` — 인사이트
  - `keywords list/add` — 키워드 관리

### 4. google-ads.yaml 설정 파일 생성
- 경로: `/home/jay/workspace/config/google-ads.yaml`
- 환경변수에서 값을 채우는 구조 (placeholder)

## 테스트
- Mock 기반 단위 테스트 (실 API 호출 없이)
- 인증 실패 시 에러 메시지 검증
- CRUD 메서드 시그니처 검증
- Meta 모듈과 인터페이스 일관성 검증

## 완료 기준
- google_ads_client.py + google_ads_cli.py 코드 완성
- Mock 테스트 PASS
- 인증 정보 입력 후 바로 동작 가능한 상태
- Meta 모듈과 동일 패턴/인터페이스
- 문서 (사용법 가이드)

## 주의사항
- 인증 정보 미확보 상태 → 실 API 호출 테스트 불가, mock만
- Google Ads API는 GAQL (Google Ads Query Language) 사용 — SQL 유사 문법
- API 버전: v20 (최신)
- .env.keys에 GOOGLE_ADS_* 변수 placeholder 추가
