Google Ads-connector
Verbind Google Ads met Brevo via Tajo om advertentie-audiences te synchroniseren, conversiedata te importeren en uniforme klantprofielen op te bouwen die betaalde acquisitie koppelen aan lifecycle-marketing.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Platform | Google Ads |
| Categorie | Marketing |
| Setupcomplexiteit | Geavanceerd |
| Officiële integratie | Nee |
| Gesynchroniseerde data | Campagnes, Audiences, Conversies, Klanten |
| Beschikbare skills | 7 |
Functies
- Customer Match-sync - Upload Brevo-contactlijsten naar Google Ads als Customer Match-audiences
- Conversietracking - Importeer offline conversies uit Brevo-events in Google Ads
- Audience-sync - Bidirectionele sync tussen Brevo-lijsten en Google Ads-audiences
- Campagnerapportage - Haal campagneprestatiedata op in Tajo-dashboards
- GCLID-tracking - Leg Google Click ID’s vast voor offline conversieattributie
- Smart bidding-data - Stuur conversiewaarde-data terug naar Google voor bod-optimalisatie
- Lead form-sync - Importeer Google Ads-leadforminzendingen in Brevo-contacten
Vereisten
Voordat je begint, zorg dat je beschikt over:
- Een Google Ads-account met ingeschakelde API-toegang
- Een Google Cloud-project met de Google Ads API ingeschakeld
- OAuth 2.0-inloggegevens (Client ID en Client Secret)
- Een Google Ads Developer Token (aanvragen via Google Ads API Center)
- Een Brevo-account met API-toegang
- Een Tajo-account met API-inloggegevens
Authenticatie
OAuth 2.0
De Google Ads API gebruikt OAuth 2.0 voor authenticatie. Je moet een refresh token verkrijgen via de OAuth-consent-flow.
# Required OAuth scopeshttps://www.googleapis.com/auth/adwordsDeveloper Token
Een Developer Token is vereist voor alle Google Ads API-requests en moet door Google worden goedgekeurd.
# 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"Configuratie
Basisopzet
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"Customer Match-configuratie
Upload Brevo-contacten als Google Ads-audiences:
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 removeOffline conversie-import
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"API-endpoints
| Methode | Endpoint | Beschrijving |
|---|---|---|
POST | /v18/customers/{id}/googleAds:search | Campagnes en resources doorzoeken (GAQL) |
POST | /v18/customers/{id}/googleAds:searchStream | Zoekresultaten streamen |
POST | /v18/customers/{id}/offlineUserDataJobs:create | Customer Match-upload-job aanmaken |
POST | /v18/customers/{id}/conversionUploads:uploadClickConversions | Offline conversies uploaden |
POST | /v18/customers/{id}/conversionUploads:uploadCallConversions | Call-conversies uploaden |
GET | /v18/customers/{id}/campaignBudgets | Campagnebudgetten ophalen |
POST | /v18/customers/{id}/customerLists:mutate | Customer lists beheren |
Codevoorbeelden
Google Ads-connector initialiseren
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'});Customer Match-audience uploaden
// 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'});Offline conversies importeren
// 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' } ]});Campagneprestaties opvragen (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 });Ratelimits
| Resource | Limiet | Details |
|---|---|---|
| API-requests | 15.000/dag | Per developer token |
| Mutate-operaties | 10.000/dag | Per customer account |
| GAQL-queries | 1.500/dag | Per customer account |
| Customer Match-uploads | 10 jobs/dag | Per customer list |
| Conversie-uploads | 2.000/request | Per upload-batch |
| Page size | 10.000 rijen | Max per search-response |
Goedkeuring Developer Token
De Google Ads API vereist een goedgekeurd Developer Token. Vraag deze aan via het Google Ads API Center in je Manager-account. Testaccounts hebben verlaagde ratelimits.
Probleemoplossing
| Probleem | Oorzaak | Oplossing |
|---|---|---|
DEVELOPER_TOKEN_NOT_APPROVED | Token in review | Wacht op Google-goedkeuring of gebruik een testaccount |
CUSTOMER_NOT_FOUND | Verkeerde customer ID | Verwijder streepjes uit de customer ID of controleer manager account |
| Customer Match lage matchrate | Onvoldoende data | Neem meerdere identifiers op (e-mail, telefoon, naam, postcode) |
| Conversies verschijnen niet | Attributievenster | Conversies kunnen tot 24 uur duren om te verwerken |
OAUTH_TOKEN_EXPIRED | Refresh token ongeldig | Authenticeer opnieuw en verkrijg een nieuwe refresh token |
PERMISSION_DENIED | Onvoldoende toegang | Controleer API-toegangsniveau en accountkoppeling |
Best practices
- Gebruik een Manager-account - Beheer meerdere Ads-accounts via één Manager (MCC)-account
- Hash Customer Match-data - Hash PII altijd met SHA-256 vóór het uploaden naar Customer Match
- Track GCLID’s - Sla Google Click ID’s op in Brevo-attributen voor offline conversietracking
- Batch conversie-uploads - Groepeer conversies in dagelijkse batches in plaats van realtime-uploads
- Gebruik GAQL voor rapportage - Maak gebruik van Google Ads Query Language voor flexibele campagnerapportage
- Monitor matchrates - Volg matchrates van Customer Match-audiences en verbeter de datakwaliteit
- Stel Enhanced Conversions in - Gebruik Enhanced Conversions voor nauwkeurigere conversiemeting
Beveiliging
- OAuth 2.0 - Veilige tokengebaseerde authenticatie met refresh tokens
- SHA-256-hashing - Customer Match-data wordt gehasht vóór upload
- Dataminimalisatie - Alleen vereiste velden worden naar Google verzonden
- Google Cloud-compliance - SOC 2-, ISO 27001- en AVG-compliant
- Gescopede toegang - API-rechten gescope op specifieke customer accounts
- Audit-logging - Alle API-requests gelogd in de Google Ads-wijzigingshistorie