01Cara kerja hashing SHA-256
SHA-256 adalah fungsi hash yang mengubah teks sepanjang apa pun menjadi 64 karakter heksadesimal. Prosesnya satu arah, jadi hash tidak bisa dibalik langsung menjadi teks asli. Teks yang sama selalu menghasilkan hash yang sama, dan selisih satu karakter saja menghasilkan hash yang sama sekali berbeda.
Input : mary
SHA-256: 6915771be1c5aa0c886870b6951b03d7eafc121fea0e80a5ea83beb7c449f4ec
Input : Mary
SHA-256: aebac53c46bbeff10fdd26ca0e2196a9bfc1d19bf88eb1efd65a36151c581051Hash mary di atas sama dengan contoh keluaran yang ditulis Meta untuk nama depan Mary. Menurut halaman Customer Information Parameters, informasi kontak seperti nama, email, dan nomor telepon dipakai Meta untuk keperluan pencocokan saja. Karena data yang sama menghasilkan hash yang sama, hash yang Anda kirim bisa dibandingkan dengan data yang dimiliki Meta tanpa nomor atau nama asli ikut terkirim. Sifat yang sama berarti hash bukan anonimisasi: siapa pun yang sudah punya sebuah nomor bisa menghitung hash-nya.
02Normalisasi: merapikan data sebelum di-hash
Hash baru cocok bila data dirapikan lebih dulu dengan aturan yang sama di kedua sisi. Halaman Customer Information Parameters mencantumkan aturan per parameter, antara lain:
| Data (parameter) | Aturan Meta sebelum di-hash |
|---|---|
Email (em) | Hapus spasi di awal dan akhir, lalu ubah semua huruf menjadi kecil. |
Nomor telepon (ph) | Hapus simbol, huruf, dan nol di depan. Nomor harus memuat kode negara. |
Nama depan dan belakang (fn, ln) | Huruf kecil tanpa tanda baca. Karakter khusus harus berformat UTF-8. |
Kota (ct) | Huruf kecil tanpa tanda baca, karakter khusus, dan spasi. |
Provinsi di luar AS (st) | Huruf kecil tanpa tanda baca, karakter khusus, dan spasi. |
Kode pos (zp) | Huruf kecil tanpa spasi dan tanda hubung. |
Negara (country) | Kode 2 huruf kecil menurut ISO 3166-1 alpha-2, misalnya id. |
Ilustrasi dengan nomor rekaan. Nomor Indonesia 0812 3456 7890 menurut aturan itu menjadi 6281234567890: nol di depan dibuang dan kode negara 62 ditambahkan. Bentuk yang belum dirapikan menunjuk ke nomor yang sama, tetapi hash-nya lain sama sekali, sehingga tidak akan cocok.
Dirapikan : 6281234567890
SHA-256 : dd752605096029a73495a91862983963e1947a834a4300808074185af10bb725
Belum dirapikan : 081234567890
SHA-256 : 4f3ac1bcda9069e52d47a3dd55abac9d71a8661ffe93a0213062bf2c0f46c2c803Data yang di-hash dan yang tidak
Meta menulis bahwa sistemnya dirancang tidak menerima informasi kontak yang belum di-hash, kecuali yang dicatat sebaliknya. Meta juga menyebut hashing dilakukan otomatis bila Anda memakai Meta Business SDK. Pada Meta Pixel, nilai advanced matching manual yang diisi lewat fbq('init') di-hash otomatis oleh Pixel dengan SHA-256, menurut halaman Advanced matching - Meta Pixel. Fitur itu dibahas di Advanced matching.
| Parameter | Perlakuan menurut Meta |
|---|---|
em, ph, fn, ln, db, ge, ct, st, zp, country | Hashing required. Wajib di-hash. |
external_id | Hashing recommended. Disarankan di-hash. |
client_ip_address, client_user_agent | Do not hash. Meta menulis IP klien tidak boleh di-hash. |
fbc, fbp | Do not hash. Dikirim apa adanya, seperti di cookie. |
04Di alur iklan ke WhatsApp
Di Dalekta, hashing terjadi di server saat event dikirim ke Meta lewat Conversions API. Anda tidak mengirim data mentah sendiri dan tidak perlu meng-hash apa pun. Yang Anda isi hanya Pixel ID dan Access Token, lalu Dalekta menyusun event dari data lead. Nomor dan nama asli tetap tersimpan di lead untuk follow up, sedangkan yang keluar ke Meta untuk nomor dan nama hanyalah hash-nya.
| Data | Perlakuan | Keterangan |
|---|---|---|
Nomor telepon (ph) | Di-hash SHA-256 | Nomor pengirim pesan WhatsApp pertama, diubah menjadi angka saja sebelum di-hash. |
Nama depan dan belakang (fn, ln) | Di-hash SHA-256 | Nama profil WhatsApp, dengan spasi dirapikan dan huruf diubah menjadi kecil sebelum di-hash. Kata terakhir menjadi nama belakang, sisanya nama depan. |
ID pengunjung (external_id) | Di-hash SHA-256 | ID pengunjung dari tracker. Bila kosong, kode sesi lead, lalu ID lead. |
Kota, provinsi, kode pos, negara (ct, st, zp, country) | Di-hash SHA-256 | Dibentuk huruf kecil tanpa spasi lebih dulu. Hanya bila lead punya catatan klik dan lokasinya terbaca. |
fbc, fbp, IP, dan user agent | Apa adanya, tanpa hash | Hanya bila lead punya catatan klik. |
UTM, nama dan ID campaign, ad set, iklan, serta kode lead di custom_data | Apa adanya | Data campaign dan bukan data kontak pelanggan. |
Nama sales dan perkiraan lokasi di custom_data (visitor_location, visitor_city, visitor_region, visitor_postal_code, visitor_country) | Apa adanya, tanpa hash | Perkiraan lokasi dari IP ikut dua kali: sebagai hash di data pencocokan dan sebagai teks biasa di sini, bila terbaca. |
| Email dan isi chat | Tidak dikirim | Dalekta tidak mengirim keduanya. |
Setiap tahap membawa data yang tersedia saat itu. Di Visit LP dan Click CTA belum ada nomor dan nama, jadi data kontak yang di-hash baru ID pengunjung dan lokasi. Nomor dan nama ter-hash ikut setelah customer mengirim pesan di Masuk WA, lalu terbawa ke MQL, Prospek, dan Closing. Lead dari iklan CTWA tidak punya klik landing page, jadi data pencocokan event-nya hanya berisi nomor, nama profil, dan ID lead yang di-hash.
05Kesalahan yang sering terjadi
- Mengirim nomor telepon, nama, atau email dalam teks asli ke Conversions API. Meta menyebut sistemnya dirancang tidak menerima informasi kontak yang belum di-hash.
- Meng-hash sebelum merapikan data. Nomor
081234567890dan6281234567890menunjuk ke orang yang sama tetapi hash-nya berbeda, jadi hash dari bentuk yang salah tidak akan cocok. - Meng-hash
client_ip_address,client_user_agent,fbc, ataufbp. Meta menandai keempatnya Do not hash, dan nilai yang di-hash tidak lagi sama dengan nilai aslinya. - Menganggap hash membuat data anonim sehingga tidak perlu dijelaskan ke pengunjung. Meta tetap memakai data itu untuk pencocokan, jadi pengiriman data ke platform iklan perlu dijelaskan di kebijakan privasi bisnis Anda, seperti saran di dokumentasi privasi Dalekta.
06Pertanyaan umum
Apa bedanya hashing dan enkripsi?
Enkripsi dirancang agar pemegang kunci bisa membuka kembali data aslinya, sedangkan hashing satu arah dan tidak punya kunci untuk membukanya. Hash dipakai untuk membandingkan, karena data yang sama selalu menghasilkan hash yang sama. Itu yang memungkinkan Meta memakai hash data kontak untuk pencocokan tanpa menerima nomor atau nama dalam teks asli.
Data apa saja yang harus di-hash untuk Conversions API?
Menurut Meta, email, nomor telepon, nama depan dan belakang, tanggal lahir, gender, kota, provinsi, kode pos, dan negara wajib di-hash. External ID disarankan di-hash. IP klien, user agent, fbc, dan fbp tidak boleh di-hash dan dikirim apa adanya.
Apakah saya perlu meng-hash data sendiri di Dalekta?
Tidak. Dalekta merapikan lalu meng-hash nomor telepon, nama profil WhatsApp, external ID, dan lokasi di server sebelum event dikirim ke Meta. Yang Anda isi hanya Pixel ID dan Access Token. Bila Anda mengirim event sendiri lewat Pixel atau API lain, aturan hash berlaku pada pengirimnya.
Apakah hash membuat data pelanggan menjadi anonim?
Tidak. Hash menyembunyikan nilai asli dari teks yang dikirim, tetapi data yang sama selalu menghasilkan hash yang sama, sehingga siapa pun yang sudah punya nomor itu bisa menghitung hash-nya. Meta memakai data kontak untuk pencocokan, jadi pengiriman data ke platform iklan tetap perlu dijelaskan di kebijakan privasi bisnis Anda.
