Kalau main digital marketing, terutama pakai iklan Facebook/Meta Ads, kita pasti butuh tracking yang rapi. Nah, biasanya orang cuma pakai Meta Pixel aja. Padahal sekarang ada cara yang lebih akurat, yaitu gabungin Pixel (client-side tracking) dengan Meta Conversion API (CAPI) (server-side tracking).
Di artikel ini, kita bakal bikin contoh landing page sederhana dengan PHP yang punya form untuk request brosur PDF properti. Begitu user submit form, datanya dikirim ke server, kirim ke e-mail, lalu event dikirim ke Meta pakai CAPI + Pixel sekaligus. Perlu disklaimer dulu, perlu hati-hati penggunaannya, karena script ini blm ditest secara menyeluruh.
Kenapa Harus Pakai Pixel + CAPI?
- Pixel doang: gampang dipasang, tapi data sering hilang gara-gara adblocker atau aturan iOS.
- Meta CAPI doang: lebih akurat dari pixel aja, tapi agak ribet setup.
- Dua-duanya barengan: hasil tracking lebih lengkap dan meminimalkan kehilangan data.
Cek artikel sebelumnya: Perbedaan Meta pixel dan Meta CAPI
Journey Iklan dan Cara Kerja Script
Secara sederhana, journey seperti berikut: User melihat iklan di Facebook/Instagram. Bila user tertarik pada iklan tersebut, user mengklik iklan untuk mencari tau lebih lanjut dan masuk ke landing page dengan script tersebut. User akan melihat penjelasan di landing page, dan bila user tertarik atas penawarannya user akan mengisi form dan mengklik tombol submit. Saat itu server (index.php) akan mengirimkan data lead ke email admin dan mengirimkan PDF ke user. Pada saat yang bersamaan Server akan ngirimkan event “Lead” ke Meta Conversion API (server-side). Kemudian akan redirect ke success.php di mana Pixel trigger event “Lead” juga (client-side).
Selamat mencoba. Berikut contoh script sederhananya.
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?php require_once "functions.php"; if ($_SERVER["REQUEST_METHOD"] === "POST") { $nama = htmlspecialchars($_POST['nama']); $email = htmlspecialchars($_POST['email']); $wa = htmlspecialchars($_POST['wa']); // Simpan lead ke file file_put_contents("leads.txt", "$nama | $email | $wa\n", FILE_APPEND); // Kirim email ke admin & user send_admin_email($nama, $email, $wa); send_user_email($nama, $email); // --- META CAPI --- $access_token = "YOUR_META_ACCESS_TOKEN"; $pixel_id = "YOUR_PIXEL_ID"; $event_data = [ "data" => [ [ "event_name" => "Lead", "event_time" => time(), "user_data" => [ "em" => hash('sha256', strtolower($email)), "ph" => hash('sha256', $wa), ], "custom_data" => [ "content_name" => "Property Bogor", "currency" => "IDR", "value" => 0 ], "action_source" => "website" ] ] ]; $ch = curl_init("https://graph.facebook.com/v17.0/$pixel_id/events?access_token=$access_token"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($event_data)); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); // Redirect ke halaman sukses header("Location: success.php"); exit; } ?> |
function.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?php // Kirim email ke admin function send_admin_email($nama, $email, $wa) { $subject = "Lead Baru dari Landing Page Properti Bogor"; $message = " Hai Admin,\n\n Ada lead baru dari landing page:\n Nama : $nama\n Email : $email\n WhatsApp: $wa\n\n Segera follow up ya! "; mail($to, $subject, $message, $headers); } // Kirim email ke user dengan brosur PDF function send_user_email($nama, $email) { $subject = "Brosur Properti Eksklusif di Bogor"; $message = "Hai $nama,\n\nTerima kasih sudah request brosur.\n Silakan download brosur properti eksklusif Bogor di file terlampir.\n\n Salam hangat,\nTim Properti Bogor"; // Lokasi file PDF $file = "brosur-properti.pdf"; $content = file_get_contents($file); $content = chunk_split(base64_encode($content)); $uid = md5(uniqid(time())); $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; $body = "--".$uid."\r\n"; $body .= "Content-type:text/plain; charset=iso-8859-1\r\n"; $body .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $body .= $message."\r\n\r\n"; $body .= "--".$uid."\r\n"; $body .= "Content-Type: application/pdf; name=\"brosur-properti.pdf\"\r\n"; $body .= "Content-Transfer-Encoding: base64\r\n"; $body .= "Content-Disposition: attachment; filename=\"brosur-properti.pdf\"\r\n\r\n"; $body .= $content."\r\n\r\n"; $body .= "--".$uid."--"; mail($email, $subject, $body, $header); } |
success.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <title>Terima Kasih!</title> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- FB Pixel: track Lead --> <script> fbq('track', 'Lead'); </script> </head> <body class="bg-light"> <div class="container py-5 text-center"> <h1 class="mb-3">Terima Kasih!</h1> <p>Brosur PDF sudah dikirim ke email Anda. Silakan cek inbox (atau folder spam).</p> <a href="/" class="btn btn-primary">Kembali ke Halaman Utama</a> </div> </body> </html> |