Google Ads Scheduled Feeds

Panduan ini menunjukkan cara menghubungkan Konektor ke Google Ads Scheduled Uploads agar Google Ads otomatis menarik data leads Anda sebagai:

  1. Offline Conversions — untuk mengoptimalkan bidding iklan berdasarkan konversi dunia nyata (chat → deal).
  2. Customer Match — untuk menargetkan/mengecualikan audiens, lookalike, atau remarketing.

Kenapa fitur ini? Konektor mengekspos dua URL CSV per workspace. Google Ads akan mem-fetch URL tersebut pada jadwal (Harian / Mingguan / Bulanan) dengan HTTP Basic Auth. Semua data PII (email, nomor HP, nama) otomatis di-hash SHA-256 sebelum dikirim, sesuai standard resmi Google.

Arsitektur Singkat

[Konektor DB]  ──▶  /v1/google/feeds/{kode}/offline-conversions.csv  ──▶  Google Ads (Scheduled)
              ──▶  /v1/google/feeds/{kode}/customer-match.csv        ──▶  Google Ads (Scheduled)
                   ▲
                   │
              HTTP Basic Auth
              (Username + Password yg Anda generate)
  • Protokol: HTTPS (wajib).
  • Auth: HTTP Basic Auth (standar Google Ads).
  • Format: CSV sesuai spec resmi Google (lihat di bawah).
  • Isi file: Di-generate on-demand tiap Google Ads fetch — selalu data terbaru.

Prasyarat

  1. Workspace sudah memiliki Tracking Code (otomatis dibuat saat register).
  2. Akun Google Ads aktif dengan akses Admin / Standard.
  3. (Untuk offline conversions) Sudah membuat Conversion Action di Google Ads dengan nama yang akan Anda kirim.

Langkah 1 — Generate Kredensial di Konektor

  1. Login ke Konektor → pilih workspace yang ingin dihubungkan.
  2. Buka menu Google Ads Feeds (di sidebar Owner).
  3. Klik "Generate Kredensial".
  4. Salin password yang ditampilkan sekarang juga — password ini hanya ditampilkan satu kali. Simpan di password manager Anda.
  5. Salin juga Username dan dua URL feed (offline & customer match).
Password disimpan dalam bentuk PBKDF2-SHA-256 (100.000 iterasi, salt random per-workspace). Konektor TIDAK pernah menyimpan password plaintext. Jika lupa, klik "Ganti Password" untuk membuat yang baru — akan memutus jadwal upload yang sedang berjalan.

Langkah 2 — Konfigurasi Offline Conversions

2a. Buat Conversion Action di Google Ads

  1. Google Ads → Tools & SettingsConversionsNew conversion action.
  2. Pilih ImportOther data sources or CRMsTrack conversions from clicks.
  3. Isi Name sesuai dengan nama status lead di Konektor (default: new, qualified, won, dll.) — atau sesuaikan name-map di pengaturan feed.
  4. Ulangi untuk setiap status yang ingin Anda import.

2b. Buat Schedule Upload

  1. Google Ads → Tools & SettingsConversionsUploadsSchedules.
  2. Klik +HTTPS.
  3. Paste URL offline conversions dari Konektor:
    https://konektor.id/v1/google/feeds/WS-XXXXXX/offline-conversions.csv
    
  4. Isi Username dan Password yang di-generate Konektor.
  5. Pilih frekuensi:
    • Daily (recommended) — cukup untuk kebanyakan kasus.
    • Weekly / Monthly — jika volume leads rendah.
  6. Klik Save.
  7. Klik "Upload preview" — Google Ads akan langsung test-fetch file Anda.

2c. Contoh Output CSV

Parameters:TimeZone=+0700
Email,Phone Number,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
a3f1b2c...,e5d8f7a...,qualified,2026-04-21 10:30:00,100000,IDR
d92fe8b...,c7b3a14...,won,2026-04-20 15:22:11,2500000,IDR
  • Parameters:TimeZone — Wajib. Default +0700 (WIB). Ubah di setting jika Anda di zona lain.
  • Email / Phone Number — SHA-256 hashed. Email di-lowercase & trim, phone di-normalisasi E.164 (+62…).
  • Conversion Name — nama status lead (atau custom mapping).
  • Conversion Time — format yyyy-MM-dd HH:mm:ss di zona waktu yang dideklarasikan.
  • Conversion ValueactualValue ?? estimatedValue ?? 0.
  • Conversion Currency — ISO-4217 (default IDR).

Langkah 3 — Konfigurasi Customer Match

3a. Buat Customer List di Google Ads

  1. Google Ads → Tools & SettingsAudience managerCustomer lists.
  2. +Upload data source: Scheduled (via HTTPS).
  3. Paste URL customer match dari Konektor:
    https://konektor.id/v1/google/feeds/WS-XXXXXX/customer-match.csv
    
  4. Isi Username dan Password.
  5. Pilih frekuensi (Daily / Weekly / Monthly).
  6. Centang checkbox konfirmasi consent untuk menggunakan data pelanggan sesuai kebijakan Google.

3b. Contoh Output CSV

Email,Phone,First Name,Last Name,Country,Zip
a3f1b2c...,e5d8f7a...,f4a2b1e...,8c3d7b2...,ID,
d92fe8b...,c7b3a14...,a1b2c3d...,,ID,
  • Semua PII SHA-256 hashed (lowercase hex).
  • Country — kode ISO-2 (default ID), tidak di-hash.
  • Zip — opsional, tidak di-hash.
  • Minimal Email ATAU Phone harus ada. Lead tanpa keduanya otomatis di-skip.

Pengaturan Lanjutan

Filter Status

Secara default, feed offline conversions mengirim semua status lead. Pilih status tertentu jika ingin Google Ads hanya meng-import milestone penting (mis. qualified, won).

Custom Name Map

Jika Anda ingin nama conversion di Google Ads beda dari nama status di Konektor:

Status KonektorNama di Google Ads
qualifiedLead Berkualitas
wonKonversi Bayar

Konfigurasi lewat UI setting atau langsung via API PATCH dengan body:

{
  "offlineNameMap": {
    "qualified": "Lead Berkualitas",
    "won": "Konversi Bayar"
  }
}

Rolling Window

Default feed offline = 90 hari terakhir (berdasarkan updatedAt). Ini penting agar payload tetap ringan & sesuai rekomendasi Google (jangan kirim ulang conversion lama berulang-kali). Konfigurasi lewat slider windowDays (1–540 hari).

Klik iklan punya batas 90 hari sendiri. Google menolak event impor jika klik iklan yang membuat lead itu lebih tua dari 90 hari. Rolling window memakai updatedAt, jadi deal yang lambat closing bisa menarik klik lama kembali masuk rentang. Konektor melewati baris seperti itu, jadi CSV tidak pernah membawa baris yang pasti ditolak Google.Lead dengan siklus penjualan lebih dari 90 hari tidak bisa diimpor sebagai offline conversion. Pakai Customer Match untuk audiens tersebut.

Timezone

Default +0700 (WIB). Ubah jika workspace Anda di zona lain. Format: +HHMM atau -HHMM.

Praktik Keamanan

  • ✅ Password ter-hash dengan PBKDF2-SHA-256 100k iterasi.
  • ✅ Verifikasi dengan timing-safe compare.
  • ✅ Rate limit 60 request/menit per IP (cukup untuk Google polling harian).
  • ✅ Endpoint hanya HTTPS (TLS dari Cloudflare).
  • ✅ 404 (bukan 401) untuk kode workspace tidak dikenal → mencegah enumerasi.
  • Cache-Control: private, no-store → feed tidak ter-cache CDN publik.
  • ✅ Audit trail: timestamp fetch terakhir & jumlah row disimpan per feed.

Troubleshooting

"401 Unauthorized" di Google Ads preview

  • Periksa Username & Password. Jika lupa password, klik "Ganti Password" di Konektor.
  • Pastikan tidak ada spasi di awal/akhir saat paste.

"404 Not Found"

  • Periksa kode workspace di URL (format WS-XXXXXX).
  • Pastikan feed terkait (offlineEnabled atau customerMatchEnabled) aktif.

"Low match rate" di Customer Match

  • Pastikan data email & phone di lead sudah valid (bukan dummy).
  • Phone harus bisa di-normalisasi ke E.164 — nomor 08xx otomatis dikonversi ke +628xx.

"Conversion name tidak ditemukan" di Google Ads

  • Nama Conversion Name di CSV harus persis match dengan nama Conversion Action di Google Ads (case-sensitive).
  • Cek pengaturan offlineNameMap di Konektor.

"Identifiers or iOS URL parameters are too old" / status "Needs attention"

Pesan ini bukan soal iOS. Artinya klik iklan di balik event impor itu lebih tua daripada click-through conversion window pada conversion action tersebut.

  • Buka Tools → Conversions, pilih conversion action itu, lalu set click-through conversion window ke 90 hari (nilai maksimum).
  • Baris yang kliknya sudah lewat 90 hari tidak ikut masuk CSV. Google memang tidak bisa menerimanya.
  • Pertahankan schedule Daily, supaya tiap deal sampai ke Google sebelum kliknya kedaluwarsa.
  • Status ini hanya menandai baris yang ditolak. Konversi yang sudah tercatat tetap sah.

Delay

Google Ads merekomendasikan menunggu 6 jam setelah scheduled upload sebelum data muncul di laporan konversi.

Langkah berikutnya

Referensi Resmi Google

Butuh Bantuan Lebih Lanjut?

Tim kami siap membantu Anda memaksimalkan tracking iklan dan atribusi bisnis.

© 2026 Konektor. Seluruh hak cipta dilindungi.