---
title: "Konektor Google Ads"
description: "Panduan integrasi Google Ads lengkap untuk menyinkronkan data kampanye, daftar audiens, dan pelacakan konversi dengan Brevo melalui Tajo."
url: https://tajo.io/in/docs/connectors/marketing/google-ads/
markdown: https://tajo.io/in/docs/connectors/marketing/google-ads.md
lang: id-ID
robots: noindex
---

Ajukan akses awal

Masukkan nama depan dan alamat email kerja Anda. Kami akan mengirim tautan untuk mengonfirmasi permintaan akses Tajo.

# Konektor Google Ads

Status konektor: Direncanakan Belum dibangun. Tajo belum menjalankan konektor ini.

| Field sumber | Field tujuan | Nilai contoh |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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:

1. Akun Google Ads dengan akses API yang aktif
2. Project Google Cloud dengan Google Ads API yang diaktifkan
3. Kredensial OAuth 2.0 (Client ID dan Client Secret)
4. Google Ads Developer Token (ajukan di [Google Ads API Center](https://ads.google.com/aw/apicenter))
5. Akun Brevo dengan akses API
6. 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.

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

### Developer Token

Developer Token diperlukan untuk semua permintaan Google Ads API dan harus disetujui oleh 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"
```

## Konfigurasi

### Setup dasar

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

### Konfigurasi Customer Match

Unggah kontak Brevo sebagai audiens Google Ads:

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

### Impor konversi offline

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

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

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

### Unggah audiens Customer Match

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

### Impor konversi offline

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

### Kueri performa kampanye (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 });
```

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

1. **Gunakan akun Manager** - Kelola beberapa akun Ads melalui satu akun Manager (MCC)
2. **Hash data Customer Match** - Selalu hash PII dengan SHA-256 sebelum diunggah ke Customer Match
3. **Lacak GCLID** - Simpan Google Click ID di atribut Brevo untuk pelacakan konversi offline
4. **Unggah konversi secara batch** - Kelompokkan konversi menjadi batch harian alih-alih unggahan real-time
5. **Gunakan GAQL untuk pelaporan** - Manfaatkan Google Ads Query Language agar pelaporan kampanye lebih fleksibel
6. **Pantau match rate** - Lacak match rate audiens Customer Match dan tingkatkan kualitas data
7. **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

## Sumber terkait

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