## 한 번에 세 개
Google Cloud 프로젝트 **하나**에서 아래 세 연동의 OAuth 를 모두 발급할 수 있습니다.
- Google Ads (광고)
- YouTube (SNS)
- Gmail (이메일)
따라서 첫 플랫폼으로 Google 을 하는 것이 가장 효율적입니다.
## 사전 준비물
- [ ] Google 계정 — **회사 도메인 계정 권장** (개인 계정은 담당자 퇴사 시 문제)
- [ ] 결제 카드 등록 (무료 한도 내에서 쓰더라도 등록이 필요합니다)
- [ ] 서비스 도메인 (**HTTPS 필수**)
- [ ] 개인정보 처리방침 · 이용약관 공개 URL
- [ ] 앱 로고 1024×1024 (심사에 유리)
## 등록 절차
### 1. 프로젝트 생성
1. [Google Cloud Console](https://console.cloud.google.com) 접속
2. 상단 프로젝트 드롭다운 → **새 프로젝트**
3. 이름: `Morning Insight` (식별 가능한 이름)
### 2. API 활성화
**APIs & Services → Library** 에서 아래를 활성화합니다.
| API | 무엇을 위해 |
|---|---|
| **Google Ads API** | 광고 성과 조회 |
| **YouTube Data API v3** | 채널·영상 통계 |
| YouTube Analytics API | 시청 시간 등 (필요 시) |
| Gmail API | 메일 연동 (필요 시) |
> API 활성화를 빠뜨리면 OAuth 는 통과하는데 데이터 조회가 실패합니다.
### 3. OAuth 동의 화면 구성
**APIs & Services → OAuth consent screen** (최신 UI: Google 인증 플랫폼 → 대상)
| 항목 | 값 |
|---|---|
| User Type | **External** |
| App name | `Morning Insight` |
| User support email | 운영 담당 이메일 |
| App logo | 1024×1024 PNG (선택, 심사에 유리) |
| **Authorized domains** | 서비스 도메인 |
| Developer contact | 운영 담당 이메일 |
**Scopes** 에 필요한 범위를 추가합니다.
| Scope | 용도 |
|---|---|
| `.../auth/adwords` | Google Ads |
| `.../auth/youtube.readonly` | YouTube 조회 |
| `.../auth/yt-analytics.readonly` | YouTube Analytics (필요 시) |
| `.../auth/gmail.readonly` 또는 `https://mail.google.com/` | Gmail (필요 시) |
**Test users** 에 운영자 본인과 데모 계정을 추가합니다.
> ⚠️ 심사 통과 전에는 **이 목록에 등록된 계정만** OAuth 로그인이 가능합니다.
> 최대 100명, 토큰 유효기간 7일 제한이 걸립니다.
### 4. OAuth 클라이언트 ID 발급
**Credentials → + CREATE CREDENTIALS → OAuth client ID**
| 항목 | 값 |
|---|---|
| Application type | **Web application** |
| Name | `Morning Insight Web` |
**Authorized redirect URIs** 에 필요한 경로를 모두 등록합니다.
```
https://<서비스 도메인>/auth/youtube/callback
https://<서비스 도메인>/auth/gmail/callback
https://<서비스 도메인>/auth/google/callback ← 소셜 로그인을 쓰면
```
**CREATE** → Client ID / Client Secret 이 표시됩니다.
> **Client Secret 은 이 팝업에서만 전체 값이 보입니다.**
> 놓쳤다면 클라이언트 목록의 **JSON 다운로드** 또는 상세 화면의 **+ Add secret** 을 쓰세요.
## 모닝인사이트에 입력
`/admin` 운영자 콘솔 → OAuth 자격증명 → Google 섹션
| 항목 | 값 |
|---|---|
| YouTube Client ID / Secret | 위에서 발급한 값 |
| Gmail Client ID / Secret | **같은 값을 넣어도 됩니다** |
저장 후 시크릿 모드에서 고객 시점 테스트를 수행하세요.
## 심사 (Verification)
| 단계 | 조건 |
|---|---|
| **테스트** | Test users 에 등록된 계정만 · 최대 100명 · **토큰 7일 만료** |
| **Production** | 모든 Google 계정 가능 · 토큰 만료 제한 해제 |
Production 전환에는 Google 검증이 필요하고 **4~6주** 정도 걸립니다.
민감한 scope 를 요청하면 보안 평가가 추가될 수 있습니다.
심사 신청 시 요구되는 것은 [심사 준비 체크리스트](/news/guide/operator-review)에 정리해 두었습니다.
> **가장 먼저 신청하세요.** 이 심사가 전체 일정의 임계 경로입니다.
## Google Ads Developer Token 은 별개입니다
혼동하기 쉬운 부분입니다.
| | 발급 주체 | 어디서 |
|---|---|---|
| **OAuth Client ID/Secret** | 운영자 (1회) | Google Cloud Console |
| **Developer Token** | **고객** (각자) | 고객의 Google Ads 계정 → API 센터 |
Developer Token 은 고객이 자기 Ads 계정에서 발급받아 입력하는 값입니다
→ [Google Ads 연동](/news/guide/google-ads)
## 자주 나는 오류
| 오류 | 원인 | 해결 |
|---|---|---|
| `redirect_uri_mismatch` | 등록 URI 불일치 | 프로토콜·포트·경로·끝 슬래시까지 일치 |
| `403 access_denied` | Test users 미등록 | 동의 화면에서 계정 추가 후 1~2분 대기 |
| `invalid_scope` | 동의 화면에 scope 미등록 | Scopes 에 추가 후 저장 |
| 데이터 조회 실패 | API 미활성화 | Library 에서 해당 API 활성화 |
| 7일마다 재인증 | 테스트 단계 | Production 심사 진행 |
## 관련 문서
- [Meta 앱 등록](/news/guide/operator-meta)
- [심사 준비 체크리스트](/news/guide/operator-review)
- 고객용: [YouTube 연동](/news/guide/youtube) · [Gmail 계정 연결](/news/guide/gmail-oauth)
가이드 목록 ▾
광고 연동 3▾
쇼핑몰·매출 연동 5▾
SNS 연동 4▾
금융 연동 4▾
화면별 사용법 7▾
팀·권한 관리 4▾
운영자 가이드 11▾
문제 해결 4▾
검색 결과가 없습니다.