Google Ads 커넥터
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 연락처로 가져오기
사전 요구 사항
시작하기 전에 다음이 준비되어 있는지 확인하십시오.
- API 접근이 활성화된 Google Ads 계정
- Google Ads API가 활성화된 Google Cloud 프로젝트
- OAuth 2.0 자격 증명 (Client ID 및 Client Secret)
- Google Ads 개발자 토큰 (Google Ads API Center에서 신청)
- API 접근이 가능한 Brevo 계정
- API 자격 증명이 있는 Tajo 계정
인증
OAuth 2.0
Google Ads API는 인증에 OAuth 2.0을 사용합니다. OAuth 동의 플로를 통해 새로 고침 토큰을 얻어야 합니다.
# 필수 OAuth 범위https://www.googleapis.com/auth/adwords개발자 토큰
개발자 토큰은 모든 Google Ads API 요청에 필요하며 Google의 승인을 받아야 합니다.
# 인증 헤더 설정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"구성
기본 설정
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 오디언스로 업로드합니다.
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오프라인 전환 가져오기
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 커넥터 초기화
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 오디언스 업로드
// Brevo 목록을 Google Ads Customer Match로 동기화await tajo.connectors.syncAudience('google-ads', { brevoListId: 5, audienceName: 'High Value Customers', matchType: 'CONTACT_INFO', syncMode: 'mirror'});오프라인 전환 가져오기
// 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)
// 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 접근 수준 및 계정 연결 확인 |
모범 사례
- 관리자 계정 사용 - 단일 관리자(MCC) 계정을 통해 여러 Ads 계정 관리
- Customer Match 데이터 해시 - Customer Match에 업로드하기 전에 항상 PII를 SHA-256으로 해시
- GCLID 추적 - 오프라인 전환 추적을 위해 Google Click ID를 Brevo 속성에 저장
- 전환 업로드 배치 처리 - 실시간 업로드보다는 일일 배치로 전환 그룹화
- 보고에 GAQL 사용 - 유연한 캠페인 보고를 위해 Google Ads Query Language 활용
- 매칭률 모니터링 - Customer Match 오디언스 매칭률을 추적하고 데이터 품질 개선
- Enhanced Conversions 설정 - 더 정확한 전환 측정을 위해 Enhanced Conversions 사용
보안
- OAuth 2.0 - 새로 고침 토큰을 사용한 보안 토큰 기반 인증
- SHA-256 해시 - Customer Match 데이터는 업로드 전에 해시됨
- 데이터 최소화 - 필수 필드만 Google로 전송됨
- Google Cloud 규정 준수 - SOC 2, ISO 27001, GDPR 준수
- 범위 지정 접근 - API 권한이 특정 고객 계정으로 범위 지정됨
- 감사 로깅 - 모든 API 요청이 Google Ads 변경 기록에 로깅됨