Studi Kasus Nalesha: Pangkas Biaya Pembelian Meta Ads dari Rp 47rb ke Rp 32rb dengan CAPI Server-Side dan Dedup di 2026
TL;DR: Saat membantu Nalesha (e-commerce parfum) memasang Meta Conversion API server-side dengan dedup
event_id, Event Match Quality naik dari 4,3 ke 8,1, biaya per pembelian turun 31 persen dari Rp 47.000 ke Rp 32.500, dan recovered event mencapai 34 persen dalam tujuh hari pertama. Anggaran iklan tidak berubah.
Awal April 2026, tim Nalesha melaporkan biaya per pembelian Meta Ads yang naik konsisten selama dua bulan, meski produk, harga, dan creative tidak berubah. Diagnosis awal saya: sinyal konversi yang sampai ke Meta makin tipis sejak update iOS 17.4 mengetatkan tracking prevention di Safari.
Audit Pixel Helper menunjukkan event Purchase browser-only dengan Event Match Quality hanya 4,3. Hampir setengah pelanggan iOS tidak meninggalkan jejak yang bisa dicocokkan ke profil Meta. Tanpa sinyal yang cukup, algoritma optimasi melebar mencari audience, sehingga biaya naik.
Diagnosis Awal
Tiga gejala utama yang ditemukan:
| Gejala | Angka |
|---|---|
| EMQ rata-rata | 4,3 (target 8+) |
| Event hilang vs server log | 34 persen |
| CPP 30 hari terakhir | Rp 47.000 (baseline Februari Rp 31.000) |
Server log internal Nalesha (pembelian sukses di Supabase) mencatat 1.247 transaksi dalam 30 hari. Meta Events Manager hanya menerima 823 event Purchase. Selisih 34 persen inilah yang membuat algoritma kehilangan training data.
Eksekusi: CAPI Server-Side dengan Dedup
Rencana implementasi yang saya jalankan bersama tim dev Nalesha selama satu sore:
- Tambah
app/api/meta-capi/route.tsdi Next.js 15 yang menerima POST event dan forward ke Graph API Meta. - Generate
event_idunik (UUID v4) di sisi server saat order selesai. Kirimevent_idyang sama ke Pixel browser dan CAPI server. - Tambah hashing SHA-256 untuk
em(email),ph(phone),external_id(customer ID Nalesha) di server. - Kirim parameter konteks:
client_ip_address,client_user_agent,fbc,fbpyang dibaca dari cookie. - Verify dedup di Events Manager Meta tab Test Events.
Detail teknis dedup mengikuti spesifikasi resmi di dokumentasi dedup Meta CAPI. Pola implementasi yang dipakai mengacu ke panduan pasang Meta CAPI di Next.js yang sudah saya tulis sebelumnya.
Hasil setelah 7 Hari
| Metrik | Sebelum | Sesudah | Delta |
|---|---|---|---|
| EMQ Purchase | 4,3 | 8,1 | +88 persen |
| Event diterima Meta | 66 persen | 96 persen | +30 poin |
| CPP rata-rata | Rp 47.000 | Rp 32.500 | -31 persen |
| ROAS kampanye DPA | 3,1 | 4,6 | +48 persen |
Yang menarik, kenaikan ROAS Dynamic Product Ads lebih tajam dibanding kampanye reach. Ini wajar karena DPA sangat bergantung pada kualitas sinyal AddToCart dan Purchase untuk training rekomendasi produk.
Pelajaran untuk Tim Lain
Tiga hal yang saya catat untuk proyek serupa:
- Selalu pakai dedup
event_id. Tanpa ini, satu pembelian bisa terhitung dua kali, dan CPP terlihat lebih murah dari kenyataan. Algoritma akan mengejar profil yang salah. - Hash di server, jangan di browser. Browser bisa diblok ekstensi. Server-side menjamin parameter identitas pasti dikirim.
- External_id lebih kuat dari email tunggal. Customer ID internal Nalesha (UUID dari database first-party) memberi sinyal stabil meski pelanggan login pakai email berbeda.
Konteks yang bantu: arsitektur Nalesha sudah pakai server-side tracking untuk GA4 sejak 2024, jadi tim sudah familiar dengan konsep event logger. Untuk e-commerce yang belum, alokasikan 4-6 jam ekstra untuk setup logger di Supabase atau warehouse.
Pertanyaan Umum
Apakah hasil ini bisa diharapkan untuk semua e-commerce?
Range realistis: penurunan CPP 15-35 persen tergantung baseline EMQ. Jika EMQ awal sudah 7+, ruang perbaikan lebih kecil. Jika di bawah 5, gain bisa lebih besar dari Nalesha.
Berapa lama sampai algoritma Meta menyesuaikan?
Umumnya 5-10 hari setelah event mulai dikirim konsisten. Selama window itu, jangan ubah budget atau audience supaya sinyal training stabil.
Apa risiko terbesar saat implementasi?
Double counting karena event_id tidak konsisten antara Pixel dan CAPI. Selalu test di Events Manager tab Test Events selama 24 jam pertama, lalu cek metrik Deduplicated Events di tab Overview.
Bisakah hal serupa diterapkan untuk Lead Ads (jasa)?
Bisa, dengan mengganti event Purchase menjadi Lead. Logika dedup dan hashing identik. Hanya saja kualitas hasil sangat bergantung pada apakah lead-form Anda mengumpulkan email dan phone yang valid.
Penutup
Implementasi CAPI server-side di Nalesha menunjukkan bahwa kenaikan biaya iklan di era cookieless sering kali bukan masalah platform atau creative, tapi masalah sinyal yang tidak sampai. Dengan investasi satu sore developer dan satu pekan validasi, biaya per pembelian bisa kembali ke baseline. Untuk marketer Indonesia yang melihat CPP merangkak naik sejak iOS 17.4, audit EMQ adalah pekerjaan pertama yang harus dilakukan sebelum menyalahkan algoritma.
Artikel Terkait
Case Study
Studi Kasus Yuanita Sekar: Pakai CWV Attribution untuk Debug LCP yang Salah Tebak di Personal Brand 2026
Bagaimana mode attribution dari library web-vitals mengungkap penyebab sebenarnya LCP 3,4 detik di website Yuanita Sekar, ternyata bukan gambar hero seperti tebakan awal.
Case Study
Studi Kasus Ryandi Pratama: Pakai Network Information API untuk Adaptive Image di Personal Brand Pangkas LCP 41% di Koneksi 3G 2026
Hero image full-res 1,8 MB jadi 220 KB di koneksi 3G berkat Network Information API. LCP mobile Ryandi Pratama turun dari 4,2 detik ke 2,5 detik.
Case Study
Studi Kasus Yuanita Sekar: Intersection Observer Trigger Animasi Personal Brand Tanpa Library Animasi 2026
Bagaimana Yuanita Sekar memakai Intersection Observer native untuk memicu animasi section pada website personal brand, tanpa Framer Motion, dan tetap menjaga INP di bawah 200 ms.
Butuh website yang benar-benar bekerja?
Hubungi Vito untuk konsultasi gratis 15 menit.
WhatsApp Sekarang