Google Ads Connector

Verbinde Google Ads über Tajo mit Brevo, um Werbe-Audiences zu synchronisieren, Conversion-Daten zu importieren und einheitliche Kundenprofile zu erstellen, die bezahlte Akquise und Lifecycle-Marketing miteinander verbinden.

Überblick

EigenschaftWert
PlattformGoogle Ads
KategorieMarketing
EinrichtungsaufwandFortgeschritten
Offizielle IntegrationNein
Synchronisierte DatenKampagnen, Audiences, Conversions, Kund:innen
Verfügbare Skills7

Funktionen

  • Customer-Match-Sync - Lade Brevo-Kontaktlisten als Customer-Match-Audiences zu Google Ads hoch
  • Conversion-Tracking - Importiere Offline-Conversions aus Brevo-Events in Google Ads
  • Audience-Sync - Bidirektionale Synchronisation zwischen Brevo-Listen und Google-Ads-Audiences
  • Kampagnen-Reporting - Hole dir Kampagnen-Performance-Daten in deine Tajo-Dashboards
  • GCLID-Tracking - Erfasse Google Click IDs für die Attribution von Offline-Conversions
  • Smart-Bidding-Daten - Sende Conversion-Werte zurück an Google für die Gebotsoptimierung
  • Lead-Form-Sync - Importiere Einsendungen aus Google-Ads-Lead-Formularen als Brevo-Kontakte

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  1. Ein Google-Ads-Konto mit aktiviertem API-Zugriff
  2. Ein Google-Cloud-Projekt mit aktivierter Google Ads API
  3. OAuth-2.0-Anmeldedaten (Client ID und Client Secret)
  4. Einen Google-Ads-Developer-Token (Antrag im Google Ads API Center)
  5. Ein Brevo-Konto mit API-Zugriff
  6. Ein Tajo-Konto mit API-Anmeldedaten

Authentifizierung

OAuth 2.0

Die Google Ads API verwendet OAuth 2.0 zur Authentifizierung. Du benötigst ein Refresh-Token, das du über den OAuth-Consent-Flow erhältst.

Terminal window
# Required OAuth scopes
https://www.googleapis.com/auth/adwords

Developer Token

Für alle Anfragen an die Google Ads API ist ein Developer Token erforderlich, der von Google freigegeben werden muss.

Terminal window
# Set up authentication headers
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"

Konfiguration

Grundeinrichtung

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-Konfiguration

Lade Brevo-Kontakte als Google-Ads-Audiences hoch:

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 remove

Import von Offline-Conversions

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

MethodeEndpointBeschreibung
POST/v18/customers/{id}/googleAds:searchKampagnen und Ressourcen durchsuchen (GAQL)
POST/v18/customers/{id}/googleAds:searchStreamSuchergebnisse streamen
POST/v18/customers/{id}/offlineUserDataJobs:createCustomer-Match-Upload-Job anlegen
POST/v18/customers/{id}/conversionUploads:uploadClickConversionsOffline-Conversions hochladen
POST/v18/customers/{id}/conversionUploads:uploadCallConversionsCall-Conversions hochladen
GET/v18/customers/{id}/campaignBudgetsKampagnen-Budgets abrufen
POST/v18/customers/{id}/customerLists:mutateCustomer-Listen verwalten

Code-Beispiele

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Google Ads account
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-Audience hochladen

// Sync a Brevo list to Google Ads Customer Match
await tajo.connectors.syncAudience('google-ads', {
brevoListId: 5,
audienceName: 'High Value Customers',
matchType: 'CONTACT_INFO',
syncMode: 'mirror'
});

Offline-Conversions importieren

// Upload offline conversions from Brevo order events
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'
}
]
});

Kampagnen-Performance abfragen (GAQL)

// Query campaign metrics using 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 });

Rate Limits

RessourceLimitDetails
API-Anfragen15.000/TagPro Developer Token
Mutate-Operationen10.000/TagPro Kundenkonto
GAQL-Abfragen1.500/TagPro Kundenkonto
Customer-Match-Uploads10 Jobs/TagPro Customer-Liste
Conversion-Uploads2.000/AnfragePro Upload-Batch
Page Size10.000 ZeilenMax pro Search-Response

Freigabe des Developer Tokens

Für die Google Ads API ist ein freigegebener Developer Token erforderlich. Beantrage ihn im Google Ads API Center deines Manager-Kontos. Test-Konten haben reduzierte Rate Limits.

Fehlerbehebung

ProblemUrsacheLösung
DEVELOPER_TOKEN_NOT_APPROVEDToken in PrüfungAuf die Freigabe durch Google warten oder ein Test-Konto nutzen
CUSTOMER_NOT_FOUNDFalsche Customer IDBindestriche aus der Customer ID entfernen oder Manager-Konto prüfen
Niedrige Customer-Match-TrefferquoteUnzureichende DatenMehrere Identifier (E-Mail, Telefon, Name, PLZ) einbeziehen
Conversions erscheinen nichtAttributionsfensterConversions können bis zu 24 Stunden bis zur Verarbeitung benötigen
OAUTH_TOKEN_EXPIREDRefresh-Token ungültigErneut authentifizieren und ein neues Refresh-Token anfordern
PERMISSION_DENIEDUnzureichende ZugriffsrechteAPI-Zugriffsebene und Kontoverknüpfung prüfen

Best Practices

  1. Manager-Konto nutzen - Verwalte mehrere Ads-Konten über ein einzelnes Manager- (MCC-)Konto
  2. Customer-Match-Daten hashen - Hashe personenbezogene Daten vor dem Upload zu Customer Match immer mit SHA-256
  3. GCLIDs erfassen - Speichere Google Click IDs in Brevo-Attributen für das Offline-Conversion-Tracking
  4. Conversion-Uploads bündeln - Fasse Conversions zu Tages-Batches zusammen, statt sie in Echtzeit zu übertragen
  5. GAQL für Reporting nutzen - Setze die Google Ads Query Language für flexibles Kampagnen-Reporting ein
  6. Match-Raten überwachen - Beobachte die Trefferquoten deiner Customer-Match-Audiences und verbessere die Datenqualität
  7. Enhanced Conversions einrichten - Nutze Enhanced Conversions für eine genauere Conversion-Messung

Sicherheit

  • OAuth 2.0 - Sichere token-basierte Authentifizierung mit Refresh-Tokens
  • SHA-256-Hashing - Customer-Match-Daten werden vor dem Upload gehasht
  • Datensparsamkeit - Nur die erforderlichen Felder werden an Google übertragen
  • Google-Cloud-Compliance - SOC 2, ISO 27001 und DSGVO-konform
  • Gescopter Zugriff - API-Berechtigungen werden auf bestimmte Kundenkonten beschränkt
  • Audit-Logging - Alle API-Anfragen werden im Google-Ads-Änderungsverlauf protokolliert

Verwandte Ressourcen

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.