---
title: "Google Ads 커넥터"
description: "Tajo를 통해 Google Ads의 캠페인 데이터, 오디언스 목록, 전환 추적을 Brevo와 동기화하는 완전한 통합 가이드입니다."
url: https://tajo.io/kr/docs/connectors/marketing/google-ads/
markdown: https://tajo.io/kr/docs/connectors/marketing/google-ads.md
lang: ko-KR
robots: noindex
---

Tajo 사전 이용 신청

이름과 회사 이메일 주소를 입력하세요. Tajo 이용 신청을 확인할 수 있는 링크를 이메일로 보내드립니다.

# Google Ads 커넥터

커넥터 상태: 예정 아직 구축되지 않았습니다. Tajo는 현재 이 커넥터를 실행하지 않습니다.

| 원본 필드 | 대상 필드 | 예시 값 |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Tajo를 통해 Google Ads를 Brevo에 연결하여 광고 오디언스를 동기화하고, 전환 데이터를 가져오며, 유료 획득과 라이프사이클 마케팅을 연결하는 통합 고객 프로필을 생성하십시오.

## 개요

| 속성 | 값 |
| --- | --- |
| **플랫폼** | Google Ads |
| **카테고리** | Marketing |
| **설정 복잡도** | 고급 |
| **공식 통합** | 아니오 |
| **동기화 데이터** | 캠페인, 오디언스, 전환, 고객 |
| **사용 가능한 스킬** | 7 |

## 기능

- **Customer Match 동기화** - Brevo 연락처 목록을 Google Ads에 Customer Match 오디언스로 업로드
- **전환 추적** - Brevo 이벤트의 오프라인 전환을 Google Ads로 가져오기
- **오디언스 동기화** - Brevo 목록과 Google Ads 오디언스 간 양방향 동기화
- **캠페인 보고** - Tajo 대시보드로 캠페인 성능 데이터 가져오기
- **GCLID 추적** - 오프라인 전환 귀속을 위해 Google Click ID 캡처
- **스마트 입찰 데이터** - 입찰 최적화를 위해 전환 값 데이터를 Google에 다시 전달
- **리드 폼 동기화** - Google Ads 리드 폼 제출을 Brevo 연락처로 가져오기

## 사전 요구 사항

시작하기 전에 다음이 준비되어 있는지 확인하십시오.

1. API 접근이 활성화된 Google Ads 계정
2. Google Ads API가 활성화된 Google Cloud 프로젝트
3. OAuth 2.0 자격 증명 (Client ID 및 Client Secret)
4. Google Ads 개발자 토큰 ([Google Ads API Center](https://ads.google.com/aw/apicenter)에서 신청)
5. API 접근이 가능한 Brevo 계정
6. API 자격 증명이 있는 Tajo 계정

## 인증

### OAuth 2.0

Google Ads API는 인증에 OAuth 2.0을 사용합니다. OAuth 동의 플로를 통해 새로 고침 토큰을 얻어야 합니다.

```bash
# 필수 OAuth 범위
https://www.googleapis.com/auth/adwords
```

### 개발자 토큰

개발자 토큰은 모든 Google Ads API 요청에 필요하며 Google의 승인을 받아야 합니다.

```bash
# 인증 헤더 설정
curl -X POST https://googleads.googleapis.com/v18/customers/1234567890/googleAds:search \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "developer-token: DEVELOPER_TOKEN" \
  -H "login-customer-id: MANAGER_ACCOUNT_ID"
```

## 구성

### 기본 설정

```yaml
connectors:
  google_ads:
    enabled: true
    developer_token: "your-developer-token"
    oauth:
      client_id: "your-client-id"
      client_secret: "your-client-secret"
      refresh_token: "your-refresh-token"
    customer_id: "123-456-7890"
    login_customer_id: "111-222-3333"  # 관리자 계정 (선택 사항)

    # 데이터 동기화 옵션
    sync:
      customer_match: true
      conversions: true
      campaigns: true
      lead_forms: true

    # 전환 추적
    conversions:
      action_id: "123456789"
      default_currency: "USD"
```

### Customer Match 구성

Brevo 연락처를 Google Ads 오디언스로 업로드합니다.

```yaml
customer_match:
  enabled: true
  lists:
    - brevo_list_id: 5
      audience_name: "All Customers"
      match_type: "CONTACT_INFO"
    - brevo_list_id: 7
      audience_name: "High Value Customers"
      match_type: "CONTACT_INFO"

  # 매칭할 데이터 필드
  match_fields:
    - email
    - phone
    - first_name
    - last_name
    - country_code
    - zip_code

  # 동기화 일정
  schedule: "daily"
  sync_mode: "mirror"  # mirror, append 또는 remove
```

### 오프라인 전환 가져오기

```yaml
conversion_import:
  enabled: true
  conversion_action: "purchase"
  gclid_attribute: "GCLID"  # GCLID를 저장하는 Brevo 속성
  conversion_events:
    - brevo_event: "order_completed"
      conversion_name: "Purchase"
      value_field: "revenue"
    - brevo_event: "subscription_created"
      conversion_name: "Subscription"
      value_field: "plan_value"
```

## API 엔드포인트

| 메서드 | 엔드포인트 | 설명 |
| --- | --- | --- |
| `POST` | `/v18/customers/{id}/googleAds:search` | 캠페인 및 리소스 검색 (GAQL) |
| `POST` | `/v18/customers/{id}/googleAds:searchStream` | 스트림 검색 결과 |
| `POST` | `/v18/customers/{id}/offlineUserDataJobs:create` | Customer Match 업로드 작업 생성 |
| `POST` | `/v18/customers/{id}/conversionUploads:uploadClickConversions` | 오프라인 전환 업로드 |
| `POST` | `/v18/customers/{id}/conversionUploads:uploadCallConversions` | 통화 전환 업로드 |
| `GET` | `/v18/customers/{id}/campaignBudgets` | 캠페인 예산 가져오기 |
| `POST` | `/v18/customers/{id}/customerLists:mutate` | 고객 목록 관리 |

## 코드 예제

### Google Ads 커넥터 초기화

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Google Ads 계정 연결
await tajo.connectors.connect('google-ads', {
  developerToken: process.env.GOOGLE_ADS_DEV_TOKEN,
  clientId: process.env.GOOGLE_OAUTH_CLIENT_ID,
  clientSecret: process.env.GOOGLE_OAUTH_CLIENT_SECRET,
  refreshToken: process.env.GOOGLE_OAUTH_REFRESH_TOKEN,
  customerId: '123-456-7890'
});
```

### Customer Match 오디언스 업로드

```javascript
// Brevo 목록을 Google Ads Customer Match로 동기화
await tajo.connectors.syncAudience('google-ads', {
  brevoListId: 5,
  audienceName: 'High Value Customers',
  matchType: 'CONTACT_INFO',
  syncMode: 'mirror'
});
```

### 오프라인 전환 가져오기

```javascript
// Brevo 주문 이벤트의 오프라인 전환 업로드
await tajo.connectors.uploadConversions('google-ads', {
  conversionAction: 'customers/123456/conversionActions/789',
  conversions: [
    {
      gclid: 'CjwKCAiA...',
      conversionDateTime: '2024-01-15 10:30:00-05:00',
      conversionValue: 89.99,
      currencyCode: 'USD'
    }
  ]
});
```

### 캠페인 성능 쿼리 (GAQL)

```javascript
// Google Ads Query Language를 사용하여 캠페인 지표 쿼리
const query = `
  SELECT
    campaign.name,
    campaign.status,
    metrics.impressions,
    metrics.clicks,
    metrics.cost_micros,
    metrics.conversions
  FROM campaign
  WHERE segments.date DURING LAST_30_DAYS
  ORDER BY metrics.impressions DESC
  LIMIT 20
`;

const results = await tajo.connectors.query('google-ads', { gaql: query });
```

## 속도 제한

| 리소스 | 제한 | 세부 사항 |
| --- | --- | --- |
| **API 요청** | 15,000/일 | 개발자 토큰당 |
| **Mutate 작업** | 10,000/일 | 고객 계정당 |
| **GAQL 쿼리** | 1,500/일 | 고객 계정당 |
| **Customer Match 업로드** | 10 작업/일 | 고객 목록당 |
| **전환 업로드** | 2,000/요청 | 업로드 배치당 |
| **페이지 크기** | 10,000 행 | 검색 응답당 최대 |

개발자 토큰 승인

Google Ads API는 승인된 개발자 토큰이 필요합니다. 관리자 계정의 Google Ads API Center를 통해 신청하십시오. 테스트 계정은 속도 제한이 감소되어 있습니다.

## 문제 해결

| 문제 | 원인 | 해결 방법 |
| --- | --- | --- |
| `DEVELOPER_TOKEN_NOT_APPROVED` | 토큰 검토 대기 중 | Google 승인을 기다리거나 테스트 계정 사용 |
| `CUSTOMER_NOT_FOUND` | 잘못된 고객 ID | 고객 ID에서 하이픈 제거 또는 관리자 계정 확인 |
| Customer Match 낮은 매칭률 | 데이터 부족 | 여러 식별자(이메일, 전화, 이름, 우편번호) 포함 |
| 전환이 나타나지 않음 | 귀속 기간 | 전환 처리에 최대 24시간 소요 가능 |
| `OAUTH_TOKEN_EXPIRED` | 새로 고침 토큰이 유효하지 않음 | 재인증하여 새 새로 고침 토큰 획득 |
| `PERMISSION_DENIED` | 접근 권한 부족 | API 접근 수준 및 계정 연결 확인 |

## 모범 사례

1. **관리자 계정 사용** - 단일 관리자(MCC) 계정을 통해 여러 Ads 계정 관리
2. **Customer Match 데이터 해시** - Customer Match에 업로드하기 전에 항상 PII를 SHA-256으로 해시
3. **GCLID 추적** - 오프라인 전환 추적을 위해 Google Click ID를 Brevo 속성에 저장
4. **전환 업로드 배치 처리** - 실시간 업로드보다는 일일 배치로 전환 그룹화
5. **보고에 GAQL 사용** - 유연한 캠페인 보고를 위해 Google Ads Query Language 활용
6. **매칭률 모니터링** - Customer Match 오디언스 매칭률을 추적하고 데이터 품질 개선
7. **Enhanced Conversions 설정** - 더 정확한 전환 측정을 위해 Enhanced Conversions 사용

## 보안

- **OAuth 2.0** - 새로 고침 토큰을 사용한 보안 토큰 기반 인증
- **SHA-256 해시** - Customer Match 데이터는 업로드 전에 해시됨
- **데이터 최소화** - 필수 필드만 Google로 전송됨
- **Google Cloud 규정 준수** - SOC 2, ISO 27001, GDPR 준수
- **범위 지정 접근** - API 권한이 특정 고객 계정으로 범위 지정됨
- **감사 로깅** - 모든 API 요청이 Google Ads 변경 기록에 로깅됨

## 관련 리소스

- [Meta Ads 커넥터](https://tajo.io/kr/docs/connectors/marketing/meta-ads)
- [Klaviyo 커넥터](https://tajo.io/kr/docs/connectors/marketing/klaviyo)
- [Brevo 커넥터](https://tajo.io/kr/docs/connectors/marketing/brevo)
- [고객 동기화 스킬](https://tajo.io/kr/docs/skills/data-sync/customer-sync)
