---
title: "Google Ads Connector"
description: "Komplet guide til Google Ads-integration til synkronisering af kampagnedata, målgruppelister og konverteringssporing med Brevo via Tajo."
url: https://tajo.io/dk/docs/connectors/marketing/google-ads/
markdown: https://tajo.io/dk/docs/connectors/marketing/google-ads.md
lang: da-DK
robots: noindex
---

Bed om tidlig adgang til Tajo

Indtast dit fornavn og din arbejds-e-mailadresse. Vi sender dig et link til at bekræfte din anmodning om adgang til Tajo.

# Google Ads Connector

Connectorstatus: Planlagt Ikke bygget endnu. Tajo kører ikke denne connector i dag.

| Kildefelt | Destinationsfelt | Eksempelværdi |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Forbind Google Ads til Brevo via Tajo for at synkronisere annonceringsmålgrupper, importere konverteringsdata og skabe forenede kundeprofiler, der bygger bro mellem betalt anskaffelse og livscyklusmarketing.

## Oversigt

| Egenskab | Værdi |
| --- | --- |
| **Platform** | Google Ads |
| **Kategori** | Marketing |
| **Opsætningskompleksitet** | Avanceret |
| **Officiel integration** | Nej |
| **Synkroniserede data** | Kampagner, målgrupper, konverteringer, kunder |
| **Tilgængelige skills** | 7 |

## Funktioner

- **Customer Match-synkronisering** - Upload Brevo-kontaktlister til Google Ads som Customer Match-målgrupper
- **Konverteringssporing** - Importér offline-konverteringer fra Brevo-hændelser til Google Ads
- **Målgruppesynkronisering** - Tovejssynkronisering mellem Brevo-lister og Google Ads-målgrupper
- **Kampagnerapportering** - Træk kampagneperformance-data ind i Tajo-dashboards
- **GCLID-sporing** - Opfang Google Click ID’er til offline-konverteringsattribution
- **Smart bidding-data** - Send konverteringsværdidata tilbage til Google til bud-optimering
- **Synkronisering af lead-formularer** - Importér Google Ads-lead-formularindsendelser til Brevo-kontakter

## Forudsætninger

Før du begynder, skal du sikre dig, at du har:

1. En Google Ads-konto med API-adgang aktiveret
2. Et Google Cloud-projekt med Google Ads API aktiveret
3. OAuth 2.0-legitimationsoplysninger (Client ID og Client Secret)
4. En Google Ads Developer Token (ansøg via [Google Ads API Center](https://ads.google.com/aw/apicenter))
5. En Brevo-konto med API-adgang
6. En Tajo-konto med API-legitimationsoplysninger

## Autentifikation

### OAuth 2.0

Google Ads API bruger OAuth 2.0 til autentifikation. Du skal opnå et refresh-token gennem OAuth-samtykke-flowet.

```bash
# Required OAuth scopes
https://www.googleapis.com/auth/adwords
```

### Developer Token

En Developer Token er påkrævet for alle Google Ads API-forespørgsler og skal godkendes af Google.

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

### Grundlæggende opsætning

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

Upload Brevo-kontakter som Google Ads-målgrupper:

```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 af offline-konverteringer

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

| Metode | Endpoint | Beskrivelse |
| --- | --- | --- |
| `POST` | `/v18/customers/{id}/googleAds:search` | Søg i kampagner og ressourcer (GAQL) |
| `POST` | `/v18/customers/{id}/googleAds:searchStream` | Stream søgeresultater |
| `POST` | `/v18/customers/{id}/offlineUserDataJobs:create` | Opret Customer Match-upload-job |
| `POST` | `/v18/customers/{id}/conversionUploads:uploadClickConversions` | Upload offline-konverteringer |
| `POST` | `/v18/customers/{id}/conversionUploads:uploadCallConversions` | Upload opkaldskonverteringer |
| `GET` | `/v18/customers/{id}/campaignBudgets` | Hent kampagnebudgetter |
| `POST` | `/v18/customers/{id}/customerLists:mutate` | Administrér kundelister |

## Kodeeksempler

### Initialisér Google Ads-konnektor

```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'
});
```

### Upload Customer Match-målgruppe

```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'
});
```

### Importér offline-konverteringer

```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'
    }
  ]
});
```

### Forespørg kampagneperformance (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 });
```

## Ratebegrænsninger

| Ressource | Grænse | Detaljer |
| --- | --- | --- |
| **API-forespørgsler** | 15.000/dag | Per developer token |
| **Mutate-operationer** | 10.000/dag | Per kundekonto |
| **GAQL-forespørgsler** | 1.500/dag | Per kundekonto |
| **Customer Match-uploads** | 10 jobs/dag | Per kundeliste |
| **Konverteringsuploads** | 2.000/forespørgsel | Per upload-batch |
| **Sidestørrelse** | 10.000 rækker | Maks. per søgerespons |

Developer Token-godkendelse

Google Ads API kræver en godkendt Developer Token. Ansøg via Google Ads API Center i din Manager-konto. Testkonti har reducerede ratebegrænsninger.

## Fejlfinding

| Problem | Årsag | Løsning |
| --- | --- | --- |
| `DEVELOPER_TOKEN_NOT_APPROVED` | Token afventer godkendelse | Vent på Google-godkendelse, eller brug testkonto |
| `CUSTOMER_NOT_FOUND` | Forkert kunde-id | Fjern bindestreger fra kunde-id, eller tjek Manager-konto |
| Customer Match lav match-rate | Utilstrækkelige data | Inkludér flere identifikatorer (e-mail, telefon, navn, zip) |
| Konverteringer vises ikke | Attributionsvindue | Konverteringer kan tage op til 24 timer at behandle |
| `OAUTH_TOKEN_EXPIRED` | Refresh-token ugyldigt | Genautentificér, og få et nyt refresh-token |
| `PERMISSION_DENIED` | Utilstrækkelig adgang | Tjek API-adgangsniveau og kontokobling |

## Best practices

1. **Brug en Manager-konto** - Administrér flere Ads-konti gennem en enkelt Manager (MCC)-konto
2. **Hash Customer Match-data** - Hash altid personlige data med SHA-256, før de uploades til Customer Match
3. **Spor GCLID’er** - Gem Google Click ID’er i Brevo-attributter til offline-konverteringssporing
4. **Batch konverteringsuploads** - Gruppér konverteringer i daglige batches i stedet for realtids-uploads
5. **Brug GAQL til rapportering** - Udnyt Google Ads Query Language til fleksibel kampagnerapportering
6. **Overvåg match-rater** - Spor Customer Match-målgruppers match-rater, og forbedr datakvaliteten
7. **Opsæt Enhanced Conversions** - Brug Enhanced Conversions for mere nøjagtig konverteringsmåling

## Sikkerhed

- **OAuth 2.0** - Sikker tokenbaseret autentifikation med refresh-tokens
- **SHA-256-hashing** - Customer Match-data hashes før upload
- **Dataminimering** - Kun påkrævede felter transmitteres til Google
- **Google Cloud-overholdelse** - SOC 2, ISO 27001 og GDPR-compliant
- **Scoped adgang** - API-rettigheder scopes til specifikke kundekonti
- **Revisionslogning** - Alle API-forespørgsler logges i Google Ads-ændringshistorik

## Relaterede ressourcer

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