---
title: "Google Ads Connector"
description: "Vollständiger Leitfaden zur Google-Ads-Integration für die Synchronisation von Kampagnendaten, Audience-Listen und Conversion-Tracking mit Brevo über Tajo."
url: https://tajo.io/de/docs/connectors/marketing/google-ads/
markdown: https://tajo.io/de/docs/connectors/marketing/google-ads.md
lang: de-DE
robots: noindex
---

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

# Google Ads Connector

Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.

| Quellfeld | Zielfeld | Beispielwert |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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

| Eigenschaft | Wert |
| --- | --- |
| **Plattform** | Google Ads |
| **Kategorie** | Marketing |
| **Einrichtungsaufwand** | Fortgeschritten |
| **Offizielle Integration** | Nein |
| **Synchronisierte Daten** | Kampagnen, Audiences, Conversions, Kund:innen |
| **Verfügbare Skills** | 7 |

## 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](https://ads.google.com/aw/apicenter))
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.

```bash
# 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.

```bash
# 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

```yaml
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:

```yaml
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

```yaml
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 | Beschreibung |
| --- | --- | --- |
| `POST` | `/v18/customers/{id}/googleAds:search` | Kampagnen und Ressourcen durchsuchen (GAQL) |
| `POST` | `/v18/customers/{id}/googleAds:searchStream` | Suchergebnisse streamen |
| `POST` | `/v18/customers/{id}/offlineUserDataJobs:create` | Customer-Match-Upload-Job anlegen |
| `POST` | `/v18/customers/{id}/conversionUploads:uploadClickConversions` | Offline-Conversions hochladen |
| `POST` | `/v18/customers/{id}/conversionUploads:uploadCallConversions` | Call-Conversions hochladen |
| `GET` | `/v18/customers/{id}/campaignBudgets` | Kampagnen-Budgets abrufen |
| `POST` | `/v18/customers/{id}/customerLists:mutate` | Customer-Listen verwalten |

## Code-Beispiele

### Google-Ads-Connector initialisieren

```javascript
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

```javascript
// 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

```javascript
// 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)

```javascript
// 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

| Ressource | Limit | Details |
| --- | --- | --- |
| **API-Anfragen** | 15.000/Tag | Pro Developer Token |
| **Mutate-Operationen** | 10.000/Tag | Pro Kundenkonto |
| **GAQL-Abfragen** | 1.500/Tag | Pro Kundenkonto |
| **Customer-Match-Uploads** | 10 Jobs/Tag | Pro Customer-Liste |
| **Conversion-Uploads** | 2.000/Anfrage | Pro Upload-Batch |
| **Page Size** | 10.000 Zeilen | Max 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

| Problem | Ursache | Lösung |
| --- | --- | --- |
| `DEVELOPER_TOKEN_NOT_APPROVED` | Token in Prüfung | Auf die Freigabe durch Google warten oder ein Test-Konto nutzen |
| `CUSTOMER_NOT_FOUND` | Falsche Customer ID | Bindestriche aus der Customer ID entfernen oder Manager-Konto prüfen |
| Niedrige Customer-Match-Trefferquote | Unzureichende Daten | Mehrere Identifier (E-Mail, Telefon, Name, PLZ) einbeziehen |
| Conversions erscheinen nicht | Attributionsfenster | Conversions können bis zu 24 Stunden bis zur Verarbeitung benötigen |
| `OAUTH_TOKEN_EXPIRED` | Refresh-Token ungültig | Erneut authentifizieren und ein neues Refresh-Token anfordern |
| `PERMISSION_DENIED` | Unzureichende Zugriffsrechte | API-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

- [Meta Ads Connector](https://tajo.io/de/docs/connectors/marketing/meta-ads)
- [Klaviyo Connector](https://tajo.io/de/docs/connectors/marketing/klaviyo)
- [Brevo Connector](https://tajo.io/de/docs/connectors/marketing/brevo)
- [Customer-Sync-Skill](https://tajo.io/de/docs/skills/data-sync/customer-sync)
