Коннектор Google Ads
Подключите Google Ads к Brevo через Tajo для синхронизации рекламных аудиторий, импорта данных о конверсиях и создания единых профилей клиентов, связывающих платное привлечение с lifecycle-маркетингом.
Обзор
| Свойство | Значение |
|---|---|
| Платформа | 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
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Аккаунт Google Ads с включённым доступом к API
- Проект Google Cloud с включённым Google Ads API
- Учётные данные OAuth 2.0 (Client ID и Client Secret)
- Developer Token для Google Ads (подача заявки через Google Ads API Center)
- Аккаунт Brevo с доступом к API
- Аккаунт Tajo с API-учётными данными
Аутентификация
OAuth 2.0
Google Ads API использует OAuth 2.0 для аутентификации. Необходимо получить refresh token через поток согласия OAuth.
# Необходимые OAuth scopehttps://www.googleapis.com/auth/adwordsDeveloper Token
Developer Token обязателен для всех запросов к 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" # Атрибут Brevo, хранящий GCLID 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 Adsawait 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 с Customer Match в Google Adsawait tajo.connectors.syncAudience('google-ads', { brevoListId: 5, audienceName: 'High Value Customers', matchType: 'CONTACT_INFO', syncMode: 'mirror'});Импорт офлайн-конверсий
// Загрузка офлайн-конверсий из событий заказов Brevoawait 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 Languageconst 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/день | На developer token |
| Mutate-операции | 10 000/день | На аккаунт клиента |
| GAQL-запросы | 1 500/день | На аккаунт клиента |
| Загрузки Customer Match | 10 заданий/день | На список клиентов |
| Загрузки конверсий | 2 000 в запросе | На пакет загрузки |
| Размер страницы | 10 000 строк | Максимум в ответе на поиск |
Одобрение Developer Token
Google Ads API требует одобренного Developer Token. Подайте заявку через Google Ads API Center в вашем аккаунте управляющего. Тестовые аккаунты имеют сниженные лимиты скорости.
Устранение неполадок
| Проблема | Причина | Решение |
|---|---|---|
DEVELOPER_TOKEN_NOT_APPROVED | Токен ожидает проверки | Дождитесь одобрения Google или используйте тестовый аккаунт |
CUSTOMER_NOT_FOUND | Неверный ID клиента | Уберите дефисы из ID клиента или проверьте аккаунт управляющего |
| Низкий процент совпадений Customer Match | Недостаточно данных | Включите несколько идентификаторов (email, телефон, имя, индекс) |
| Конверсии не появляются | Окно атрибуции | Конверсии могут обрабатываться до 24 часов |
OAUTH_TOKEN_EXPIRED | Refresh token недействителен | Повторно аутентифицируйтесь и получите новый refresh token |
PERMISSION_DENIED | Недостаточно прав | Проверьте уровень API-доступа и привязку аккаунта |
Лучшие практики
- Используйте аккаунт управляющего, управляйте несколькими аккаунтами Ads через единый аккаунт управляющего (MCC)
- Хешируйте данные Customer Match, всегда хешируйте PII с SHA-256 перед загрузкой в Customer Match
- Отслеживайте GCLID, сохраняйте Google Click ID в атрибутах Brevo для трекинга офлайн-конверсий
- Пакетная загрузка конверсий, группируйте конверсии в ежедневные пакеты, а не загружайте в реальном времени
- Используйте GAQL для отчётности, применяйте Google Ads Query Language для гибкой отчётности по кампаниям
- Следите за процентом совпадений, отслеживайте процент совпадений аудитории Customer Match и улучшайте качество данных
- Настройте Enhanced Conversions, используйте расширенные конверсии для более точного измерения
Безопасность
- OAuth 2.0, безопасная аутентификация на основе токенов с refresh tokens
- SHA-256-хеширование, данные Customer Match хешируются перед загрузкой
- Минимизация данных, в Google передаются только необходимые поля
- Соответствие Google Cloud, сертификация SOC 2, ISO 27001 и GDPR
- Ограниченный доступ, права API ограничены конкретными аккаунтами клиентов
- Логирование аудита, все API-запросы логируются в истории изменений Google Ads