Konektor Google Ads
Hubungkan Google Ads ke Brevo melalui Tajo untuk menyinkronkan audiens iklan, mengimpor data konversi, dan membuat profil pelanggan terpadu yang menjembatani akuisisi berbayar dengan lifecycle marketing.
Ikhtisar
| Properti | Nilai |
|---|---|
| Platform | Google Ads |
| Kategori | Marketing |
| Kompleksitas setup | Lanjutan |
| Integrasi resmi | Tidak |
| Data yang disinkronkan | Kampanye, Audiens, Konversi, Pelanggan |
| Skill yang tersedia | 7 |
Fitur
- Sinkronisasi Customer Match - Unggah list kontak Brevo ke Google Ads sebagai audiens Customer Match
- Pelacakan konversi - Impor konversi offline dari event Brevo ke Google Ads
- Sinkronisasi audiens - Sinkronisasi dua arah antara list Brevo dan audiens Google Ads
- Pelaporan kampanye - Tarik data performa kampanye ke dashboard Tajo
- Pelacakan GCLID - Tangkap Google Click ID untuk atribusi konversi offline
- Data smart bidding - Kirim balik data nilai konversi ke Google untuk optimalisasi bid
- Sinkronisasi lead form - Impor pengiriman lead form Google Ads menjadi kontak Brevo
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Akun Google Ads dengan akses API yang aktif
- Project Google Cloud dengan Google Ads API yang diaktifkan
- Kredensial OAuth 2.0 (Client ID dan Client Secret)
- Google Ads Developer Token (ajukan di Google Ads API Center)
- Akun Brevo dengan akses API
- Akun Tajo dengan kredensial API
Autentikasi
OAuth 2.0
Google Ads API menggunakan OAuth 2.0 untuk autentikasi. Anda perlu memperoleh refresh token melalui alur persetujuan OAuth.
# Required OAuth scopeshttps://www.googleapis.com/auth/adwordsDeveloper Token
Developer Token diperlukan untuk semua permintaan Google Ads API dan harus disetujui oleh Google.
# Set up authentication headerscurl -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"Konfigurasi
Setup dasar
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" # Manager account (optional)
# Data sync options sync: customer_match: true conversions: true campaigns: true lead_forms: true
# Conversion tracking conversions: action_id: "123456789" default_currency: "USD"Konfigurasi Customer Match
Unggah kontak Brevo sebagai audiens 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"
# Data fields to match match_fields: - email - phone - first_name - last_name - country_code - zip_code
# Sync schedule schedule: "daily" sync_mode: "mirror" # mirror, append, or removeImpor konversi offline
conversion_import: enabled: true conversion_action: "purchase" gclid_attribute: "GCLID" # Brevo attribute storing GCLID conversion_events: - brevo_event: "order_completed" conversion_name: "Purchase" value_field: "revenue" - brevo_event: "subscription_created" conversion_name: "Subscription" value_field: "plan_value"Endpoint API
| Metode | Endpoint | Deskripsi |
|---|---|---|
POST | /v18/customers/{id}/googleAds:search | Mencari kampanye dan resource (GAQL) |
POST | /v18/customers/{id}/googleAds:searchStream | Melakukan streaming hasil pencarian |
POST | /v18/customers/{id}/offlineUserDataJobs:create | Membuat job unggahan Customer Match |
POST | /v18/customers/{id}/conversionUploads:uploadClickConversions | Mengunggah konversi offline |
POST | /v18/customers/{id}/conversionUploads:uploadCallConversions | Mengunggah konversi panggilan |
GET | /v18/customers/{id}/campaignBudgets | Mengambil anggaran kampanye |
POST | /v18/customers/{id}/customerLists:mutate | Mengelola customer list |
Contoh kode
Inisialisasi konektor Google Ads
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Google Ads accountawait 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'});Unggah audiens Customer Match
// Sync a Brevo list to Google Ads Customer Matchawait tajo.connectors.syncAudience('google-ads', { brevoListId: 5, audienceName: 'High Value Customers', matchType: 'CONTACT_INFO', syncMode: 'mirror'});Impor konversi offline
// Upload offline conversions from Brevo order eventsawait 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' } ]});Kueri performa kampanye (GAQL)
// Query campaign metrics using 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 });Batas rate
| Resource | Batas | Detail |
|---|---|---|
| Permintaan API | 15.000/hari | Per developer token |
| Operasi mutate | 10.000/hari | Per akun customer |
| Kueri GAQL | 1.500/hari | Per akun customer |
| Unggahan Customer Match | 10 job/hari | Per customer list |
| Unggahan konversi | 2.000/permintaan | Per batch unggahan |
| Ukuran halaman | 10.000 baris | Maksimal per respons pencarian |
Persetujuan Developer Token
Google Ads API memerlukan Developer Token yang telah disetujui. Ajukan melalui Google Ads API Center di akun Manager Anda. Akun uji memiliki batas rate yang lebih rendah.
Pemecahan masalah
| Masalah | Penyebab | Solusi |
|---|---|---|
DEVELOPER_TOKEN_NOT_APPROVED | Token menunggu peninjauan | Tunggu persetujuan Google atau gunakan akun uji |
CUSTOMER_NOT_FOUND | Customer ID salah | Hapus tanda hubung dari customer ID atau periksa akun manager |
| Match rate Customer Match rendah | Data tidak memadai | Sertakan beberapa identifier (email, telepon, nama, kode pos) |
| Konversi tidak muncul | Jendela atribusi | Konversi dapat memerlukan waktu hingga 24 jam untuk diproses |
OAUTH_TOKEN_EXPIRED | Refresh token tidak valid | Lakukan autentikasi ulang dan dapatkan refresh token baru |
PERMISSION_DENIED | Akses tidak memadai | Periksa tingkat akses API dan penautan akun |
Praktik terbaik
- Gunakan akun Manager - Kelola beberapa akun Ads melalui satu akun Manager (MCC)
- Hash data Customer Match - Selalu hash PII dengan SHA-256 sebelum diunggah ke Customer Match
- Lacak GCLID - Simpan Google Click ID di atribut Brevo untuk pelacakan konversi offline
- Unggah konversi secara batch - Kelompokkan konversi menjadi batch harian alih-alih unggahan real-time
- Gunakan GAQL untuk pelaporan - Manfaatkan Google Ads Query Language agar pelaporan kampanye lebih fleksibel
- Pantau match rate - Lacak match rate audiens Customer Match dan tingkatkan kualitas data
- Siapkan Enhanced Conversions - Gunakan Enhanced Conversions untuk pengukuran konversi yang lebih akurat
Keamanan
- OAuth 2.0 - Autentikasi berbasis token yang aman dengan refresh token
- Hashing SHA-256 - Data Customer Match di-hash sebelum diunggah
- Minimalisasi data - Hanya field yang diperlukan yang dikirim ke Google
- Kepatuhan Google Cloud - Memenuhi SOC 2, ISO 27001, dan GDPR
- Akses tercakup - Izin API dibatasi pada akun customer tertentu
- Audit logging - Semua permintaan API dicatat dalam riwayat perubahan Google Ads