Lewati navigasi utama
Meta CAPI dan conversion feedback

Meta CAPI WhatsApp: Panduan Mengirim Closing dari Chat ke Meta Ads

Meta CAPI WhatsApp berarti mengirim event dari server ke Meta Conversions API setiap kali lead di WhatsApp naik tahap, misalnya menjadi lead berkualitas atau closing dengan nominal. Ini perlu karena pixel di browser tidak bisa melihat transaksi yang terjadi di dalam chat, sehingga Meta hanya belajar dari klik dan chat, bukan dari pembeli sungguhan.

Meta CAPI WhatsApp: Panduan Mengirim Closing dari Chat ke Meta Ads

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 masukClosingNilai closingSinyal yang sampai ke Meta lewat CAPI
A1206Rp 9.000.000120 event Lead dan 6 event Purchase senilai Rp 9.000.000
B12018Rp 27.000.000120 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.

KomponenFungsinyaDi Dalekta
Pixel IDTujuan pengiriman event. Meta kini sering menyebutnya dataset ID.Diisi di Tracking Ads, tab Platform.
Access token CAPIKredensial 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 mappingAturan yang mengubah status lead menjadi nama event Meta seperti Lead atau Purchase.Tracking Ads, tab Event Mapping. Tanpa mapping tersimpan, event tidak dikirim.
event_idPengenal unik event untuk mencegah hitungan ganda.Dibentuk otomatis dari ID lead dan tahap bisnisnya.
Customer informationData 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 fbpPengenal 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 currencyWajib untuk Purchase agar nilai penjualan terbaca.Diambil dari nominal closing pada lead. Mata uang default IDR.
Consent dan dasar hukumHak 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:

  1. Ambil Pixel ID dari Meta Events Manager, pada data source yang dipakai campaign.
  2. Di Events Manager, buka Settings untuk Pixel itu, cari bagian Conversions API, lalu generate access token.
  3. Di Dalekta buka Tracking Ads, tab Platform, lalu hubungkan Meta dengan Pixel ID dan token.
  4. Buka tab Event Mapping, pilih event Meta untuk tiap tahap, lalu simpan.
  5. Buka tab Tracking Code, salin script workspace, dan pasang sekali di landing page (panduan script).
  6. Buka tab UTM, salin template parameter Meta, lalu pasang di level iklan di Ads Manager (panduan parameter Meta).
  7. Ganti semua tombol WhatsApp campaign dengan link rotator Dalekta, bukan link wa.me manual.
Token adalah kredensial sensitifAccess token bisa dipakai mengirim event ke Pixel Anda. Jangan kirim lewat chat, jangan tempel di screenshot, dan buat ulang token jika ada anggota tim yang keluar. Langkah lengkapnya ada di dokumentasi Meta CAPI.

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.

  1. Iklan Meta membawa parameter di URL: fbclid dari Meta, ditambah utm_*, campaign_id, adset_id, dan ad_id dari template yang Anda pasang.
  2. Landing page memuat tracker Dalekta. Tracker menyimpan parameter itu, memakai cookie _fbp yang sudah ada (atau membuatnya jika belum ada), dan membentuk _fbc dari fbclid.
  3. Pengunjung menekan tombol WhatsApp yang memakai rotator. Klik tercatat sebagai Click CTA, dan pesan awal membawa kode tracking seperti [D-XXXXX].
  4. Saat pesan itu masuk ke nomor WhatsApp yang terhubung, Dalekta memasangkannya ke klik tadi. Lead tercatat sebagai Masuk WA dengan konteks campaign yang utuh.
  5. Status lead naik lewat Rules (misalnya jumlah pesan customer untuk MQL) atau lewat update manual di halaman Leads. Untuk Closing, nominal wajib terisi.
  6. Dalekta menyusun payload, mencatat satu baris sync log, lalu mengirimnya ke Conversions API Meta.
  7. 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:

text
?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}}
Hanya lead dari Meta yang dikirim ke MetaDalekta memeriksa dulu apakah lead terdeteksi berasal dari Meta: ada 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 DalektaKapan tercatatUsulan event MetaCatatan
Visit LPLanding page dibuka dan tracker aktif.ViewContentBisa bertabrakan dengan event yang sudah ditembak Pixel di halaman yang sama.
Click CTAPengunjung membuka link rotator atau tombol WhatsApp.ContactBelum tentu mengirim pesan.
Masuk WAPesan pertama masuk dengan kode tracking atau dari iklan Click-to-WhatsApp.LeadSinyal awal dengan volume terbesar.
MQLRule jumlah pesan customer atau penilaian sales.LeadLihat catatan di bawah tabel tentang Lead ganda.
ProspekRule kalimat CS atau update manual.ScheduleAlternatif: InitiateCheckout. Pakai hanya jika triggernya ketat.
ClosingStatus Closing dengan nominal.PurchaseWajib 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 bisnisSinyal yang dipakaiAlasan
Closing masih jarang dalam semingguMasuk 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 konsistenPurchase dengan value.Sinyal paling dekat ke pendapatan.
Definisi MQL belum stabilMasuk WA dan Closing saja.Menghindari sinyal kualitas yang berubah-ubah.
Banyak chat hanya tanya hargaMQL dari jumlah pesan customer, ditambah Closing.Memisahkan penanya sambil lalu dari lead yang serius.
Jangan petakan Masuk WA ke PurchasePurchase harus berarti transaksi yang benar-benar terjadi. Jika Click CTA atau Masuk WA dikirim sebagai Purchase, Meta belajar dari pembeli yang tidak ada, dan laporan revenue di Ads Manager ikut salah. Panduan mapping lengkap ada di dokumentasi Event Mapping, dan pengaturan trigger otomatis ada di dokumentasi Rules.

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.

json
{
  "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"
      }
    }
  ]
}
FieldIsiCatatan
event_nameNama event Meta dari mapping.Contoh: Purchase untuk Closing.
event_timeWaktu update terakhir lead, dalam detik Unix.Jika event_time lebih tua dari 7 hari, Meta menolak requestnya, jadi retry sebaiknya tidak ditunda.
event_idID lead diikuti tahap bisnis, misalnya <id-lead>:CLOSING.Sama untuk lead dan tahap yang sama, sehingga Dalekta bisa mengenali dan memblokir kiriman ganda.
action_sourcewebsite.Dalekta mengirim semua event dengan nilai ini, termasuk lead CTWA dan perubahan status di sisi WhatsApp.
event_source_urlURL 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_dataData pencocokan pelanggan.Detail hash ada di bagian berikutnya.
custom_dataNilai, 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.

ParameterSumber di DalektaDi-hash
phNomor WhatsApp lead, dibersihkan menjadi angka saja.Ya
fn dan lnNama pada lead. Kata terakhir menjadi nama belakang, sisanya nama depan.Ya
external_idID pengunjung, atau ID sesi, atau ID lead jika dua yang pertama kosong.Ya
ct, st, zp, countryPerkiraan lokasi dari IP saat klik, jika terbaca.Ya
fbcDari fbclid klik iklan, berformat fb.1.<waktu>.<fbclid>.Tidak
fbpCookie browser Meta yang ditangkap tracker.Tidak
client_ip_addressAlamat IP pengunjung saat klik.Tidak
client_user_agentUser 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.
Bukan nasihat hukumPoin di atas adalah praktik yang lazim, bukan pendapat hukum. Untuk bisnis yang menangani data sensitif atau punya klien di banyak negara, minta konsultan hukum menilai alur data Anda.

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.

HalAturan yang benarPerlakuan di Dalekta
Mata uangKode ISO tiga huruf, untuk rupiah IDR.Field currency diambil dari lead, default IDR.
NominalAngka 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 teleponAngka 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.
WaktuDetik Unix. Zona waktu tidak berpengaruh.event_time dari waktu update terakhir lead.
LokasiKota 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.

LapisanRisikoPenanganan
Di dalam DalektaStatus 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 MetaEvent 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.

  1. Pastikan Pixel ID, token, dan mapping sudah tersimpan di Tracking Ads.
  2. Buka landing page dengan URL yang membawa utm_source=meta atau fbclid, plus parameter campaign. Tanpa salah satunya, lead tidak dianggap berasal dari Meta dan event dilewati.
  3. Klik tombol WhatsApp rotator, lalu kirim pesan yang membawa kode tracking [D-...] dari ponsel lain.
  4. Cek halaman Leads. Lead harus muncul sebagai Masuk WA dengan campaign yang benar.
  5. Ubah status lead sesuai tahap yang mau dites, misalnya Closing dengan nominal percobaan.
  6. 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.
  7. 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.
Jangan mengandalkan tab Test EventsUntuk event server, tab Test Events di Events Manager baru menampilkan aktivitas setelah event dikirim dengan parameter 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 logArtinyaTindakan
PENDINGPengiriman sedang berjalan.Tunggu satu atau dua menit lalu muat ulang.
SUCCESSMeta menerima request dan membalas sukses.Cek Events Manager. Meta perlu waktu memproses, jadi jangan langsung menyimpulkan gagal.
FAILEDRequest 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.

PenyebabPesan di DalektaPerbaikan
Status tidak punya tahap bisnisStatus lead tidak punya event bisnis untuk dikirim ke Meta.Pastikan status berada di salah satu dari enam tahap.
Lead bukan dari MetaLead ini tidak terdeteksi berasal dari Meta Ads.Cek fbclid, utm_source, dan apakah redirect menghapus query string.
Mapping kosongMapping event ini sudah dihapus dari Pixel setup.Isi dan simpan mapping untuk tahap itu.
Pixel ID kosongPixel ID belum diisi di Pixel setup.Isi Pixel ID di tab Platform.
Token kosongAccess Token belum diisi di Pixel setup.Masukkan token CAPI yang valid.
Token tidak terbacaToken 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_source business_messaging, ctwa_clid, dan ID akun WhatsApp Business. Dalekta belum memakai jalur itu dan tidak mengirim ctwa_clid ke 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

KesalahanDampakPerbaikan
Mapping tidak disimpan setelah menekan rekomendasiTidak ada event yang terkirim.Simpan mapping, lalu tes dengan lead percobaan.
Tombol WhatsApp masih wa.me manualChat 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 stringfbclid dan UTM hilang, lead tidak dianggap dari Meta.Uji URL iklan sampai halaman akhir dan pastikan parameter tetap ada.
Purchase tanpa nominal atau nominal salahNilai penjualan di Meta tidak bisa dipakai.Wajibkan nominal, cek format angka, dan koreksi sebelum menyimpan Closing.
Pixel dan Dalekta menembak event yang samaEvent ganda, atau salah satunya dibuang Meta.Bagi tugas: Pixel untuk halaman, Dalekta untuk kejadian setelah klik WhatsApp.
Rule Prospek atau Closing terlalu longgarSinyal 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.

Coba Dalekta

Lihat campaign mana yang benar-benar closing di WhatsApp.

Coba Signal Lite 7 hari tanpa kartu kredit, atau pilih jadwal demo bersama tim Dalekta.