01Kenapa pixel browser tidak melihat closing di WhatsApp
Meta Pixel adalah potongan kode yang berjalan di browser pengunjung. Ia hanya bisa melaporkan apa yang terjadi di halaman yang memasang kodenya: halaman dibuka, tombol diklik, form dikirim. Begitu pengunjung menekan tombol WhatsApp, ia pindah ke aplikasi lain dan pixel tidak ikut. Tawar-menawar, bukti transfer, dan konfirmasi pesanan terjadi di chat yang tidak pernah terlihat oleh browser.
Akibatnya, bagi bisnis yang menutup penjualan lewat chat, data yang sampai ke Meta berhenti di klik atau chat masuk. Meta tidak tahu chat mana yang menjadi pembeli dan chat mana yang hanya bertanya harga lalu menghilang. Kalau campaign dioptimasi ke sinyal yang tidak membedakan pembeli dari penanya iseng, algoritme belajar mencari lebih banyak orang yang suka klik dan bertanya, bukan orang yang membayar.
Conversion API WhatsApp menutup celah itu. Server Anda, atau sistem seperti Dalekta, mengirim event langsung ke Meta setelah status lead berubah, tanpa bergantung pada browser. Konsep dasarnya dibahas di Apa itu Meta CAPI, dan perbandingan lengkap dengan pixel ada di Meta Pixel vs Conversions API. Artikel ini fokus pada satu skenario: penjualan terjadi di WhatsApp, bukan di halaman checkout.
Ilustrasi berikut memakai angka rekaan untuk menunjukkan apa yang berubah, dengan asumsi hanya Masuk WA (dipetakan ke Lead) dan Closing (dipetakan ke Purchase) yang dikirim. Ini bukan data pelanggan dan bukan hasil produksi.
| Campaign (ilustrasi) | Chat masuk | Closing | Nilai closing | Sinyal yang sampai ke Meta lewat CAPI |
|---|---|---|---|---|
| A | 120 | 6 | Rp 9.000.000 | 120 event Lead dan 6 event Purchase senilai Rp 9.000.000 |
| B | 120 | 18 | Rp 27.000.000 | 120 event Lead dan 18 event Purchase senilai Rp 27.000.000 |
Tanpa CAPI, pixel hanya melihat klik ke WhatsApp, sehingga kedua campaign tampak seimbang. Dengan CAPI, Meta menerima event Purchase yang menunjukkan campaign B menghasilkan tiga kali lebih banyak pembeli dan tiga kali nilai penjualan dari jumlah chat yang sama, selama event itu berhasil dicocokkan ke pengguna yang mengklik iklan. Perbedaan itulah yang tidak pernah terbaca oleh pixel.
02Yang dibutuhkan untuk mengirim conversion API WhatsApp
Ada delapan komponen yang perlu lengkap. Kalau Pixel ID, token, atau mapping hilang, event tidak terkirim. Kalau data pencocokan lemah, event tetap terkirim tetapi sulit dicocokkan ke iklan. Tabel ini juga menunjukkan di mana masing-masing komponen diatur di Dalekta.
| Komponen | Fungsinya | Di Dalekta |
|---|---|---|
| Pixel ID | Tujuan pengiriman event. Meta kini sering menyebutnya dataset ID. | Diisi di Tracking Ads, tab Platform. |
| Access token CAPI | Kredensial untuk mengirim event ke Pixel tersebut. Dibuat di Events Manager, Settings, bagian Conversions API. | Disimpan di server dan tidak ditampilkan lagi di dashboard setelah disimpan. |
| Event mapping | Aturan yang mengubah status lead menjadi nama event Meta seperti Lead atau Purchase. | Tracking Ads, tab Event Mapping. Tanpa mapping tersimpan, event tidak dikirim. |
| event_id | Pengenal unik event untuk mencegah hitungan ganda. | Dibentuk otomatis dari ID lead dan tahap bisnisnya. |
| Customer information | Data pencocokan seperti nomor telepon dan nama, di-hash dengan SHA-256. | Nomor WhatsApp, nama lead, ID pengunjung, serta IP, user agent, dan perkiraan lokasi dari klik bila tersedia. |
| fbc dan fbp | Pengenal klik iklan dan browser dari Meta. Membantu mencocokkan event ke iklan yang diklik. | Tracker menangkap fbclid dan cookie _fbp, lalu membentuk _fbc dari fbclid. |
| value dan currency | Wajib untuk Purchase agar nilai penjualan terbaca. | Diambil dari nominal closing pada lead. Mata uang default IDR. |
| Consent dan dasar hukum | Hak Anda untuk membagikan data pelanggan ke Meta. | Ditentukan bisnis Anda lewat landing page dan kebijakan privasi. |
Urutan setup di Dalekta, dari nol sampai siap dites:
- Ambil Pixel ID dari Meta Events Manager, pada data source yang dipakai campaign.
- Di Events Manager, buka Settings untuk Pixel itu, cari bagian Conversions API, lalu generate access token.
- Di Dalekta buka Tracking Ads, tab Platform, lalu hubungkan Meta dengan Pixel ID dan token.
- Buka tab Event Mapping, pilih event Meta untuk tiap tahap, lalu simpan.
- Buka tab Tracking Code, salin script workspace, dan pasang sekali di landing page (panduan script).
- Buka tab UTM, salin template parameter Meta, lalu pasang di level iklan di Ads Manager (panduan parameter Meta).
- Ganti semua tombol WhatsApp campaign dengan link rotator Dalekta, bukan link
wa.memanual.
03Alur data dari klik iklan sampai event di Meta
Sebelum membahas mapping, pahami dulu jalur datanya. Di Dalekta, satu lead yang berasal dari iklan Meta melewati langkah berikut sampai Meta menerima event Closing.
- Iklan Meta membawa parameter di URL:
fbcliddari Meta, ditambahutm_*,campaign_id,adset_id, danad_iddari template yang Anda pasang. - Landing page memuat tracker Dalekta. Tracker menyimpan parameter itu, memakai cookie
_fbpyang sudah ada (atau membuatnya jika belum ada), dan membentuk_fbcdarifbclid. - Pengunjung menekan tombol WhatsApp yang memakai rotator. Klik tercatat sebagai Click CTA, dan pesan awal membawa kode tracking seperti
[D-XXXXX]. - Saat pesan itu masuk ke nomor WhatsApp yang terhubung, Dalekta memasangkannya ke klik tadi. Lead tercatat sebagai Masuk WA dengan konteks campaign yang utuh.
- Status lead naik lewat Rules (misalnya jumlah pesan customer untuk MQL) atau lewat update manual di halaman Leads. Untuk Closing, nominal wajib terisi.
- Dalekta menyusun payload, mencatat satu baris sync log, lalu mengirimnya ke Conversions API Meta.
- Hasilnya, SUCCESS atau FAILED beserta pesan errornya, disimpan di log yang bisa dibaca di menu Event Logs.
Template parameter Meta yang dipakai pada langkah pertama tersedia di Tracking Ads, tab UTM. Bentuk intinya seperti ini (template lengkap di dashboard juga memuat placement dan ad_account_id). Berbeda dari parameter lain, ad_account_id bukan macro dinamis Meta, jadi Dalekta mengisinya dengan ID akun iklan yang sebenarnya bila sudah diketahui:
?utm_source=meta&utm_medium=paid&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}&campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}&campaign_name={{campaign.name}}&adset_name={{adset.name}}&ad_name={{ad.name}}&site_source_name={{site_source_name}}fbclid, atau utm_source berisi meta, facebook, instagram (juga fb dan ig), atau lead datang dari iklan Click-to-WhatsApp. Lead organik atau dari platform lain dilewati dengan pesan bahwa lead tidak terdeteksi berasal dari Meta Ads. Ini salah satu penyebab event tidak muncul saat pengetesan.Untuk iklan Click-to-WhatsApp yang membuka chat langsung tanpa landing page, Dalekta membuat lead berkode CTWA- dari metadata iklan yang ikut di pesan. Lead seperti ini tidak punya klik di landing page, jadi eventnya dikirim tanpa data klik website seperti event_source_url, fbc, fbp, IP, dan user agent. Akibatnya kualitas pencocokan lebih rendah dan Meta bisa menganggap event itu kurang lengkap, karena Dalekta belum memakai jalur Business Messaging CAPI. Cek hasilnya di Event Logs dan Events Manager seperti biasa. Tracking jalur CTWA dibahas terpisah di CTWA tracking. Untuk melihat gambaran besar dari iklan sampai closing, baca pilar tracking closing WhatsApp dari iklan.
04Mapping status lead ke event Meta
Dalekta memakai enam tahap bisnis. Mapping menentukan nama event Meta apa yang dikirim untuk tiap tahap. Tabel di bawah memuat usulan bawaan di dashboard, bukan aturan yang harus diikuti.
| Tahap Dalekta | Kapan tercatat | Usulan event Meta | Catatan |
|---|---|---|---|
| Visit LP | Landing page dibuka dan tracker aktif. | ViewContent | Bisa bertabrakan dengan event yang sudah ditembak Pixel di halaman yang sama. |
| Click CTA | Pengunjung membuka link rotator atau tombol WhatsApp. | Contact | Belum tentu mengirim pesan. |
| Masuk WA | Pesan pertama masuk dengan kode tracking atau dari iklan Click-to-WhatsApp. | Lead | Sinyal awal dengan volume terbesar. |
| MQL | Rule jumlah pesan customer atau penilaian sales. | Lead | Lihat catatan di bawah tabel tentang Lead ganda. |
| Prospek | Rule kalimat CS atau update manual. | Schedule | Alternatif: InitiateCheckout. Pakai hanya jika triggernya ketat. |
| Closing | Status Closing dengan nominal. | Purchase | Wajib membawa value dan currency. |
Tiga hal yang sering terlewat. Pertama, hanya event yang sudah dipetakan dan disimpan yang dikirim. Tombol rekomendasi di dashboard hanya mengisi usulan di layar, dan baru berlaku setelah Anda menyimpan. Kedua, kalau Masuk WA dan MQL sama-sama dipetakan ke Lead, satu orang menghasilkan dua event Lead di Meta. Pilih salah satu sebagai sinyal utama, atau petakan MQL ke event lain seperti CompleteRegistration. Field business_event di custom data tetap membedakan keduanya. Ketiga, pilihan di mapping terbatas pada event standar Meta seperti Lead, Contact, Schedule, dan Purchase. Nama event custom belum bisa dipilih.
Event mana yang layak dijadikan sinyal utama bergantung pada seberapa sering closing terjadi dan seberapa rapi tim Anda mencatat status.
| Kondisi bisnis | Sinyal yang dipakai | Alasan |
|---|---|---|
| Closing masih jarang dalam seminggu | Masuk WA atau MQL sebagai Lead. Closing tetap dikirim sebagai Purchase. | Event yang terlalu jarang memperlambat proses belajar Meta, tetapi Purchase tetap berguna untuk membaca nilai. |
| Closing rutin dan nominal konsisten | Purchase dengan value. | Sinyal paling dekat ke pendapatan. |
| Definisi MQL belum stabil | Masuk WA dan Closing saja. | Menghindari sinyal kualitas yang berubah-ubah. |
| Banyak chat hanya tanya harga | MQL dari jumlah pesan customer, ditambah Closing. | Memisahkan penanya sambil lalu dari lead yang serius. |
05Contoh payload Closing yang dikirim Dalekta
Berikut bentuk payload untuk tahap Closing pada lead yang datang lewat landing page. Semua nilai adalah placeholder ilustrasi, dan hash diganti keterangan agar mudah dibaca. Field opsional hanya ikut jika datanya tersedia pada lead, dan contoh ini diringkas: user data aslinya juga bisa memuat ln, st, dan zp, sedangkan custom data bisa memuat utm_term, utm_content, serta nama campaign, adset, dan iklan.
{
"data": [
{
"event_name": "Purchase",
"event_time": 1790000000,
"event_id": "<id-lead>:CLOSING",
"action_source": "website",
"event_source_url": "https://contoh.id/promo",
"user_data": {
"ph": ["<sha256 nomor WhatsApp>"],
"fn": ["<sha256 nama depan>"],
"external_id": ["<sha256 id pengunjung>"],
"fbc": "fb.1.<waktu klik>.<fbclid>",
"fbp": "fb.1.<waktu>.<angka acak>",
"client_ip_address": "<IP saat klik>",
"client_user_agent": "<user agent browser>",
"ct": "<sha256 kota>",
"country": "<sha256 id>"
},
"custom_data": {
"currency": "IDR",
"value": 2500000,
"content_name": "<nama campaign>",
"status": "CLOSING",
"business_event": "CLOSING",
"lead_code": "[D-ABC12]",
"utm_source": "meta",
"utm_medium": "paid",
"utm_campaign": "<nama campaign>",
"adset_id": "<id adset>",
"ad_id": "<id iklan>",
"assigned_sales": "<nama sales>",
"visitor_city": "<kota>",
"visitor_country": "ID"
}
}
]
}| Field | Isi | Catatan |
|---|---|---|
| event_name | Nama event Meta dari mapping. | Contoh: Purchase untuk Closing. |
| event_time | Waktu update terakhir lead, dalam detik Unix. | Jika event_time lebih tua dari 7 hari, Meta menolak requestnya, jadi retry sebaiknya tidak ditunda. |
| event_id | ID lead diikuti tahap bisnis, misalnya <id-lead>:CLOSING. | Sama untuk lead dan tahap yang sama, sehingga Dalekta bisa mengenali dan memblokir kiriman ganda. |
| action_source | website. | Dalekta mengirim semua event dengan nilai ini, termasuk lead CTWA dan perubahan status di sisi WhatsApp. |
| event_source_url | URL halaman yang tercatat pada klik, umumnya landing page. | Pada alur rotator, ini bisa berupa URL rotator atau landing page yang tercatat. Lead tanpa klik, seperti lead CTWA, tidak punya URL ini. |
| user_data | Data pencocokan pelanggan. | Detail hash ada di bagian berikutnya. |
| custom_data | Nilai, mata uang, UTM, ID dan nama campaign, adset, dan iklan, nama sales, serta perkiraan lokasi visitor. | Nilai hanya ikut jika lebih dari nol. Isinya dikirim sebagai teks biasa, tidak di-hash. |
Isi percakapan WhatsApp tidak ikut dikirim. Yang keluar dari Dalekta hanya metadata lead, campaign, dan klik yang tercantum di atas. Perhatikan bahwa custom data memuat nama sales dan perkiraan lokasi visitor (kota, provinsi, kode pos, negara) dalam teks biasa. Pertimbangkan itu saat Anda menulis kebijakan privasi bisnis.
06Customer information: apa yang di-hash dan bagaimana soal privasi
Aturan Meta membedakan dua kelompok parameter. Email, nomor telepon, nama depan, nama belakang, kota, provinsi, kode pos, dan negara wajib di-hash dengan SHA-256 setelah dibersihkan: spasi di ujung dibuang dan huruf dijadikan kecil. Untuk external_id, hash hanya direkomendasikan. Nomor telepon harus berisi angka saja dengan kode negara dan tanpa nol di depan. Sebaliknya fbc, fbp, client_ip_address, dan client_user_agent dikirim tanpa hash, dan Meta menegaskan client_ip_address tidak boleh di-hash. Dalekta sendiri tidak mengirim email, karena data lead tidak menyimpan alamat email.
| Parameter | Sumber di Dalekta | Di-hash |
|---|---|---|
| ph | Nomor WhatsApp lead, dibersihkan menjadi angka saja. | Ya |
| fn dan ln | Nama pada lead. Kata terakhir menjadi nama belakang, sisanya nama depan. | Ya |
| external_id | ID pengunjung, atau ID sesi, atau ID lead jika dua yang pertama kosong. | Ya |
| ct, st, zp, country | Perkiraan lokasi dari IP saat klik, jika terbaca. | Ya |
| fbc | Dari fbclid klik iklan, berformat fb.1.<waktu>.<fbclid>. | Tidak |
| fbp | Cookie browser Meta yang ditangkap tracker. | Tidak |
| client_ip_address | Alamat IP pengunjung saat klik. | Tidak |
| client_user_agent | User agent browser saat klik. | Tidak |
Meta menilai kualitas pencocokan lewat skor Event Match Quality di Events Manager, dan parameter yang valid umumnya menaikkan skor itu. Lead dari landing page membawa fbp, IP, dan user agent, ditambah fbc bila ada fbclid. Lead tanpa landing page, seperti lead CTWA, hanya punya nomor telepon, nama, dan ID lead, sehingga pencocokannya lebih lemah. Nama pada lead juga berasal dari nama profil WhatsApp yang sering berupa panggilan, jadi jangan berharap nama menjadi penentu utama.
Soal privasi, ada beberapa hal yang perlu Anda putuskan sendiri karena Dalekta tidak bisa memutuskannya untuk bisnis Anda:
- Hash bukan anonimisasi. Meta memakai hash itu untuk mencocokkan dengan akun penggunanya, jadi perlakukan tetap sebagai data pribadi. Alamat IP dan user agent dikirim tanpa hash, begitu juga perkiraan lokasi di custom data.
- Consent di landing page. Script tracker Dalekta tidak menampilkan banner persetujuan sendiri. Pengaturan cookie dan consent di halaman Anda tetap tanggung jawab Anda.
- Kebijakan privasi bisnis. Jelaskan bahwa data konversi dibagikan ke platform iklan. Dokumentasi Dalekta menyarankan hal yang sama di halaman privasi dan retensi data.
- Ketentuan Meta. Ketentuan Meta Business Tools meminta Anda punya hak yang sah untuk membagikan data pelanggan, termasuk persetujuan bila hukum setempat mewajibkannya. Di Indonesia, rujukannya termasuk UU No. 27 Tahun 2022 tentang Pelindungan Data Pribadi.
- Data sensitif. Jangan mengarahkan tim sales menulis informasi sensitif ke field yang ikut dikirim. Nama lead dan nama sales termasuk di dalamnya.
07Meta CAPI Indonesia: mata uang, nomor telepon, dan format nominal
Secara teknis, setup Meta CAPI Indonesia tidak berbeda dari negara lain. Namun ada beberapa detail lokal yang sering membuat data salah tanpa ada pesan error, terutama untuk nominal dan nomor telepon.
| Hal | Aturan yang benar | Perlakuan di Dalekta |
|---|---|---|
| Mata uang | Kode ISO tiga huruf, untuk rupiah IDR. | Field currency diambil dari lead, default IDR. |
| Nominal | Angka murni tanpa titik pemisah ribuan, misalnya 2500000. | Nominal closing disimpan sebagai angka. Rule closing membaca format Rp %VALUE%, dan dokumentasi mengingatkan agar 500.000 terbaca 500000. |
| Nomor telepon | Angka dengan kode negara dan tanpa nol di depan, misalnya 62812... untuk Indonesia. | Dalekta menyimpan nomor pengirim dalam format 62..., misalnya 0812... menjadi 62812..., lalu membuang simbol dan spasi sebelum hash. |
| Waktu | Detik Unix. Zona waktu tidak berpengaruh. | event_time dari waktu update terakhir lead. |
| Lokasi | Kota huruf kecil tanpa tanda baca dan spasi, negara berupa kode dua huruf seperti id. | Diambil dari perkiraan lokasi IP klik. Dalekta membuang spasi di ujung dan mengubah ke huruf kecil sebelum hash, tetapi spasi di tengah nama kota tidak dibuang. Anggap lokasi sebagai data pelengkap. |
Kalau Anda mengirim data closing dari CRM sendiri di luar Dalekta, nomor telepon paling sering menjebak: nomor yang ditulis 0812... harus diubah menjadi 62812... sebelum di-hash, kalau tidak hash-nya sulit cocok dengan data di Meta.
08event_id, sync log, dan cara mencegah hitungan ganda
Hitungan ganda bisa terjadi di dua tempat, dan penanganannya berbeda.
| Lapisan | Risiko | Penanganan |
|---|---|---|
| Di dalam Dalekta | Status yang sama memicu pengiriman dua kali, misalnya dua proses berjalan bersamaan. | Dalekta mencatat satu baris sync log sebelum mengirim. Jika untuk lead dan tahap yang sama sudah ada baris SUCCESS atau PENDING yang masih baru, pengiriman kedua dilewati. |
| Antara Pixel dan CAPI di Meta | Event yang sama dikirim oleh browser dan server. | Metode yang direkomendasikan Meta mencocokkan event_name dan event_id dari kedua sumber, dan hanya berlaku bila event kedua diterima dalam 48 jam sejak event pertama. |
Dalekta tidak menjalankan Pixel di browser Anda, jadi tidak ada Pixel Dalekta yang perlu dideduplikasi. Masalahnya muncul kalau landing page Anda punya Pixel sendiri yang menembak Lead atau Contact. Event itu tidak memakai event_id yang sama dengan event Dalekta, jadi metode deduplikasi utama tidak bekerja. Meta punya metode cadangan berbasis fbp atau external_id, tetapi hasilnya tidak bisa Anda kendalikan: event bisa terhitung dua kali atau salah satunya dibuang. Cara paling aman adalah membagi tugas: biarkan Pixel mengurus PageView dan ViewContent di halaman, dan pakai Dalekta untuk kejadian setelah klik WhatsApp seperti Lead, Schedule, dan Purchase. Kalau Click CTA dipetakan ke Contact sementara Pixel juga menembak Contact di tombol yang sama, Anda mendapat dua Contact untuk satu klik, atau salah satunya hilang tanpa Anda tahu.
Bentuk event_id yang tetap per lead dan tahap membawa beberapa konsekuensi yang perlu Anda ketahui:
- Satu lead hanya mengirim satu event per tahap. Pembelian kedua dari lead yang sama tidak menjadi Purchase kedua.
- Koreksi nominal setelah event berstatus SUCCESS tidak otomatis mengirim ulang. Pastikan nominal benar sebelum menyimpan Closing.
- Retry manual memakai event_id yang sama, dan itu memudahkan audit. Deduplikasi yang didokumentasikan Meta menyangkut pasangan Pixel dan server, jadi pakai retry hanya untuk log FAILED yang jelas belum diterima Meta.
- Baris PENDING yang lebih tua dari sekitar dua menit dianggap sisa proses yang mati dan bisa diambil alih pengiriman berikutnya. Permintaan ke Meta dibatasi sekitar delapan detik.
09Cara memverifikasi event di Dalekta dan Events Manager
Lakukan tes ujung ke ujung sebelum campaign besar berjalan. Gunakan satu lead percobaan, jangan menunggu lead asli.
- Pastikan Pixel ID, token, dan mapping sudah tersimpan di Tracking Ads.
- Buka landing page dengan URL yang membawa
utm_source=metaataufbclid, plus parameter campaign. Tanpa salah satunya, lead tidak dianggap berasal dari Meta dan event dilewati. - Klik tombol WhatsApp rotator, lalu kirim pesan yang membawa kode tracking
[D-...]dari ponsel lain. - Cek halaman Leads. Lead harus muncul sebagai Masuk WA dengan campaign yang benar.
- Ubah status lead sesuai tahap yang mau dites, misalnya Closing dengan nominal percobaan.
- Buka Event Logs di Dalekta (judul halamannya Sync Logs). Rentang tanggalnya awalnya hari ini, jadi sesuaikan bila tes dilakukan di hari lain. Cari baris untuk lead itu dan baca statusnya, jumlah attempts, dan pesan error.
- Buka Events Manager, pilih Pixel, lalu tab Overview. Cari event dengan nama dari mapping dan periksa jumlahnya, statusnya, serta skor Event Match Quality. Meta menyebut event umumnya bisa diverifikasi dalam sekitar 20 menit setelah pengiriman dimulai.
test_event_code. Payload yang dijelaskan artikel ini tidak menyertakan parameter itu, jadi event Dalekta tidak akan muncul di sana. Gunakan tab Overview, dan gunakan Event Logs Dalekta sebagai bukti pengiriman. Event percobaan ini masuk ke data asli Pixel dan bisa dipakai Meta untuk targeting dan pengukuran iklan. Pakai nominal kecil yang mudah dikenali, atau uji di Pixel terpisah yang khusus untuk pengetesan, supaya laporan revenue Anda tidak tercemar.| Status log | Artinya | Tindakan |
|---|---|---|
| PENDING | Pengiriman sedang berjalan. | Tunggu satu atau dua menit lalu muat ulang. |
| SUCCESS | Meta menerima request dan membalas sukses. | Cek Events Manager. Meta perlu waktu memproses, jadi jangan langsung menyimpulkan gagal. |
| FAILED | Request gagal atau Meta mengembalikan error. | Baca pesan error, perbaiki penyebabnya, lalu retry. Retry hanya bisa dilakukan owner atau admin workspace. |
Kalau event tidak muncul sama sekali di log, penyebabnya biasanya ada di daftar berikut. Pesan di kolom tengah adalah teks yang dipakai Dalekta saat melewati sebuah event. Pada pengiriman otomatis, event yang dilewati tidak selalu meninggalkan baris log, jadi anggap daftar ini sebagai titik awal pemeriksaan.
| Penyebab | Pesan di Dalekta | Perbaikan |
|---|---|---|
| Status tidak punya tahap bisnis | Status lead tidak punya event bisnis untuk dikirim ke Meta. | Pastikan status berada di salah satu dari enam tahap. |
| Lead bukan dari Meta | Lead ini tidak terdeteksi berasal dari Meta Ads. | Cek fbclid, utm_source, dan apakah redirect menghapus query string. |
| Mapping kosong | Mapping event ini sudah dihapus dari Pixel setup. | Isi dan simpan mapping untuk tahap itu. |
| Pixel ID kosong | Pixel ID belum diisi di Pixel setup. | Isi Pixel ID di tab Platform. |
| Token kosong | Access Token belum diisi di Pixel setup. | Masukkan token CAPI yang valid. |
| Token tidak terbaca | Token Meta tidak bisa didekripsi. Simpan ulang Access Token di Pixel setup. | Simpan ulang token. Kasus ini tercatat sebagai FAILED yang terlihat di log. |
Untuk error dari Meta sendiri, seperti token kedaluwarsa atau izin Business Manager yang kurang, Dalekta menyimpan pesan error yang dikembalikan Meta di log. Urutan debug yang lebih lengkap ada di dokumentasi Event Logs dan Sync Logs.
10Batasan yang perlu Anda ketahui
Supaya ekspektasi tepat, berikut batas dari implementasi yang dibahas di artikel ini.
- Hanya Meta. Meta CAPI adalah integrasi aktif dan produksi di Dalekta. Google Ads masih berstatus fondasi atau beta, dan TikTok belum tersedia, jadi tidak dibahas sebagai fitur aktif.
- Payload bergaya website. Semua event dikirim dengan action_source
website, termasuk lead CTWA dan perubahan status di sisi WhatsApp. Meta juga punya jalur terpisah untuk business messaging yang memakai action_sourcebusiness_messaging,ctwa_clid, dan ID akun WhatsApp Business. Dalekta belum memakai jalur itu dan tidak mengirimctwa_clidke Meta. Lead CTWA dikirim tanpa data klik website, sehingga kualitas pencocokannya lebih rendah. Untuk konteks tracking iklan Click-to-WhatsApp, lihat CTWA tracking. - Kualitas data mengikuti disiplin tim. Rules yang longgar atau status yang tidak dicatat membuat Meta belajar dari sinyal salah. Mulai dari rule yang konservatif.
- Satu event per tahap per lead. Lihat bagian event_id di atas.
- Retry setelah timeout perlu dicek dulu. Deduplikasi yang didokumentasikan Meta menyangkut event dari dua sumber berbeda, yaitu Pixel dan server, bukan kiriman ulang dari server yang sama. Jika error log berupa timeout, request mungkin sempat diterima Meta, jadi cek Events Manager dulu sebelum menekan retry.
- Log jangka pendek. Sync log dipakai untuk troubleshooting dan disimpan lebih singkat daripada data lead, sesuai paket. Jangan menjadikannya arsip.
- Angka Meta dan Dalekta tidak selalu sama. Ads Manager menghitung hasil dengan model attribution Meta sendiri, sedangkan Dalekta menghitung berdasarkan lead dan status di sistemnya. Dalekta tidak menghitung spend, CPL, cost per closing, maupun ROAS per campaign, jadi ambil angka spend dari Ads Manager. Untuk membaca hasil iklan sampai revenue, lihat cara ukur ROAS iklan WhatsApp.
11Kesalahan umum yang merusak sinyal CAPI
| Kesalahan | Dampak | Perbaikan |
|---|---|---|
| Mapping tidak disimpan setelah menekan rekomendasi | Tidak ada event yang terkirim. | Simpan mapping, lalu tes dengan lead percobaan. |
Tombol WhatsApp masih wa.me manual | Chat masuk tanpa kode tracking, sehingga hanya tersimpan sebagai pesan dan tidak menjadi lead. | Ganti dengan link rotator Dalekta dan pertahankan prefix kode. |
| Redirect menghapus query string | fbclid dan UTM hilang, lead tidak dianggap dari Meta. | Uji URL iklan sampai halaman akhir dan pastikan parameter tetap ada. |
| Purchase tanpa nominal atau nominal salah | Nilai penjualan di Meta tidak bisa dipakai. | Wajibkan nominal, cek format angka, dan koreksi sebelum menyimpan Closing. |
| Pixel dan Dalekta menembak event yang sama | Event ganda, atau salah satunya dibuang Meta. | Bagi tugas: Pixel untuk halaman, Dalekta untuk kejadian setelah klik WhatsApp. |
| Rule Prospek atau Closing terlalu longgar | Sinyal salah masuk ke Meta. | Pakai kalimat trigger yang benar-benar menandai transaksi, dan tinjau rule setelah template pesan berubah. |
Kalau Anda baru mulai, jangan langsung memetakan enam tahap sekaligus. Kirim dua atau tiga event yang definisinya paling jelas, baca sync log selama beberapa hari, baru tambah tahap berikutnya.
12Bacaan lanjutan
13Pertanyaan umum
Apakah Meta CAPI bisa dipakai untuk closing di WhatsApp?
Bisa. Meta CAPI menerima event dari server mana pun, jadi closing yang dicatat di sistem Anda setelah chat selesai bisa dikirim sebagai event Purchase lengkap dengan nilai dan mata uang. Syaratnya ada tiga: Pixel ID dan access token, event mapping yang tersimpan, serta data pencocokan seperti fbc, fbp, atau nomor telepon yang di-hash agar Meta dapat menghubungkan event ke iklan.
Data apa saja yang dikirim ke Meta lewat Conversions API?
Dalekta mengirim nama event, waktu, event_id, URL halaman dari klik bila ada, data pencocokan pelanggan, dan custom data seperti nilai (bila lebih dari nol), mata uang, UTM, ID campaign, adset, iklan, serta perkiraan lokasi. Nomor telepon, nama, dan lokasi di user_data di-hash dengan SHA-256, sedangkan fbc, fbp, IP, dan user agent dikirim apa adanya. Isi percakapan WhatsApp tidak ikut dikirim.
Event apa yang sebaiknya dikirim dari WhatsApp ke Meta?
Mulai dari sedikit event: satu event lead awal, misalnya Masuk WA atau MQL yang dipetakan ke Lead, dan Closing yang dipetakan ke Purchase dengan nilai. Jangan memetakan Masuk WA ke Purchase. Tambahkan tahap lain seperti Prospek hanya bila kriterianya sudah ketat dan konsisten, karena sinyal yang longgar justru mengajari Meta pola yang salah.
Berapa lama event CAPI muncul di Events Manager?
Meta menyebut event umumnya bisa diverifikasi dalam sekitar 20 menit setelah pengiriman dimulai, tanpa jaminan waktu pasti. Jika sync log Dalekta sudah SUCCESS, tunggu sebentar lalu cek tab Overview di Events Manager. Jangan mengandalkan tab Test Events, karena untuk event server tab itu baru menampilkan aktivitas bila event dikirim dengan kode uji, dan Dalekta tidak mengirim kode tersebut.
Apakah closing tanpa nominal bisa dikirim sebagai Purchase?
Meta membutuhkan value dan currency pada event Purchase agar nilai penjualan terbaca. Di Dalekta, status Closing manual mewajibkan nominal, dan value hanya ikut dikirim jika lebih dari nol. Kalau nominal belum pasti, lebih aman menyimpan lead di tahap MQL atau Prospek dulu daripada mengirim Purchase yang nilainya kosong atau salah.
Kenapa event sudah SUCCESS tapi tidak terlihat sebagai hasil di Ads Manager?
SUCCESS berarti Meta menerima request, bukan berarti event sudah dihitung sebagai hasil iklan. Hasil di Ads Manager bergantung pada apakah event bisa dicocokkan ke pengguna yang mengklik iklan dan pada jendela attribution campaign. Pencocokan bergantung pada kualitas parameter seperti fbc, fbp, dan nomor telepon, jadi lead tanpa pengenal klik lebih sulit terhubung ke iklan.

