IKLAN. hantamo.com
scroll untuk melihat konten

Cara Membuat Exit Intent Popup dengan Coding

11/02/26

Dalam lanskap digital yang semakin kompetitif di tahun 2025, mempertahankan perhatian pengunjung dan mengonversinya menjadi pelanggan adalah tantangan utama. Di sinilah Exit Intent Popup berperan sebagai "penjaga terakhir" yang cerdas. Teknik ini mendeteksi ketika pengguna berniat meninggalkan halaman web dan menampilkan modal atau pesan yang relevan untuk menahan mereka, menawarkan nilai, atau menyelamatkan konversi yang hampir hilang. Meskipun banyak plugin yang menawarkan solusi instan, memahami cara membuatnya dengan coding dari nol memberikan fleksibilitas, performa optimal, dan kontrol penuh tanpa ketergantungan pada pihak ketiga. Artikel ini akan memandu Anda melalui cara membuat Exit Intent Popup yang ringan, efektif, dan futuristik menggunakan HTML, CSS, dan JavaScript murni.

Cara Membuat Exit Intent Popup dengan Coding

Apa Itu Exit Intent Popup dan Mengapa Masih Relevan di 2025?

Exit Intent Popup adalah teknologi yang memicu tampilan popup berdasarkan perilaku mouse (atau gerakan sentuh) pengguna yang mengindikasikan keinginan untuk meninggalkan halaman. Tren di tahun 2025 menunjukkan bahwa popup yang sukses bukan lagi tentang memblokir konten secara agresif, melainkan tentang memberikan nilai kontekstual dan pengalaman yang personalisasi. Dengan meningkatnya kesadaran akan privasi dan keinginan pengguna atas pengalaman yang tidak mengganggu, popup exit intent yang dibangun dengan baik justru dianggap sebagai bantuan, bukan gangguan. Mereka relevan karena mampu meningkatkan tingkat konversi (CR), mengurangi tingkat pentalan, dan membangun daftar email dengan kualitas lebih tinggi, terutama ketika diintegrasikan dengan data real-time dan AI untuk personalisasi sederhana.

Langkah 1: Membuat Struktur HTML yang Semantik dan Aksesibel

Dasar dari popup yang baik adalah markup HTML yang bersih. Struktur ini harus mempertimbangkan aksesibilitas (ARIA) untuk pengguna yang mengandalkan pembaca layar. Kita akan membuat container popup yang awalnya tersembunyi.

  • Popup Container: Div utama yang menutupi seluruh layar (overlay).
  • Popup Content: Area yang berisi pesan, form, atau penawaran.
  • Tombol Close: Elemen yang jelas untuk menutup popup.
  • Formulir (Opsional): Untuk mengumpulkan lead, seperti input email dan tombol submit.

Contoh Kode HTML

Berikut adalah struktur HTML dasar yang dapat Anda tempatkan sebelum tag penutup `</body>`.

<div id="exitPopup" class="popup-overlay" aria-hidden="true" role="dialog" aria-labelledby="popupHeading">
    <div class="popup-content">
        <button class="close-btn" id="closePopup" aria-label="Tutup popup">&times;</button>
        <h3 id="popupHeading">Jangan Pergi Dulu!</h3>
        <p>Sepertinya Anda akan meninggalkan halaman ini. Dapatkan <strong>ebook gratis</strong> panduan lengkap kami tentang digital marketing 2025 dengan berlangganan newsletter.</p>
        <form id="exitForm">
            <input type="email" placeholder="Alamat email Anda" required aria-required="true" />
            <button type="submit">Dapatkan Ebook Gratis</button>
        </form>
        <p class="small-text">Kami menghormati privasi Anda. Tidak ada spam.</p>
    </div>
</div>
    

Langkah 2: Styling dengan CSS untuk Tampilan Modern dan Responsif

CSS akan menentukan estetika dan responsivitas popup. Tren 2025 mengutamakan desain minimalis, animasi halus (menggunakan `@keyframes` atau `transition`), dan tampilan yang sempurna di semua perangkat. Gunakan unit relatif seperti `vw`, `vh`, dan `%` untuk fleksibilitas.

  • Overlay: Menutupi seluruh viewport dengan latar belakang semi-transparan.
  • Konten Popup: Diposisikan di tengah dengan bayangan dan radius border.
  • Animasi: Efek masuk dan keluar yang halus untuk meningkatkan UX.
  • Fokus pada Aksesibilitas: Pastikan fokus keyboard terlihat jelas pada tombol.

Contoh Kode CSS

Tambahkan kode CSS berikut ke dalam stylesheet Anda.

.popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.75);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.popup-overlay.active {
    opacity: 1;
    visibility: visible;
}
.popup-content {
    background: #fff;
    padding: 2.5rem;
    border-radius: 16px;
    max-width: 90%;
    width: 500px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    position: relative;
    animation: slideUp 0.4s ease-out;
}
@keyframes slideUp {
    from { transform: translateY(30px); opacity: 0.7; }
    to { transform: translateY(0); opacity: 1; }
}
.close-btn {
    position: absolute;
    top: 1rem;
    right: 1.5rem;
    background: none;
    border: none;
    font-size: 2rem;
    cursor: pointer;
    color: #666;
    line-height: 1;
}
.close-btn:hover,
.close-btn:focus {
    color: #000;
    outline: 2px solid #000;
}
#exitForm input {
    width: 100%;
    padding: 0.9rem;
    margin: 1rem 0;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 1rem;
}
#exitForm button {
    width: 100%;
    padding: 1rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 1.1rem;
    cursor: pointer;
    font-weight: bold;
}
.small-text {
    font-size: 0.85rem;
    color: #777;
    margin-top: 1rem;
}
    

Langkah 3: Logika JavaScript untuk Mendeteksi "Exit Intent"

Ini adalah inti dari teknologi ini. Kita akan melacak pergerakan mouse pengguna. Prinsipnya: ketika mouse bergerak ke atas (ke area tab browser), yang biasanya adalah gerakan untuk menutup atau berpindah tab, kita memicu popup. Di tahun 2025, pendekatan ini tetap valid, tetapi dengan pertimbangan UX yang lebih matang, seperti menunda trigger pada pengguna yang baru datang (misalnya, dalam 10 detik pertama) atau tidak menampilkan popup jika pengguna sudah berkonversi (menggunakan cookie atau sessionStorage).

Konsep Dasar Deteksi Mouse

  • Event `mouseleave`: Terjadi ketika pointer mouse keluar dari elemen. Kita akan melacaknya pada elemen `<body>`.
  • Posisi Mouse (`clientY`): Kita hanya memicu popup jika mouse keluar melalui bagian atas halaman (`clientY <= 5`). Ini mencegah popup muncul saat pengguna hanya menggulir ke bawah.
  • Penundaan dan Penyimpanan: Gunakan `setTimeout` untuk delay dan `localStorage` untuk mencegah popup mengganggu berulang kali.

Contoh Kode JavaScript

Kode berikut harus diletakkan sebelum tag penutup `</body>` atau di dalam modul JavaScript.

document.addEventListener('DOMContentLoaded', function() {
    const popup = document.getElementById('exitPopup');
    const closeBtn = document.getElementById('closePopup');
    const popupOverlay = document.querySelector('.popup-overlay');
    let triggerDelay = 10000; // Tunggu 10 detik sebelum popup bisa aktif
    let hasShownPopup = localStorage.getItem('exitPopupShown');
    let mouseLeft = false;

    // Fungsi untuk menampilkan popup
    function showPopup() {
        if (!hasShownPopup && !popup.classList.contains('active')) {
            popup.setAttribute('aria-hidden', 'false');
            popup.classList.add('active');
            localStorage.setItem('exitPopupShown', 'true');
            // Fokus ke input email untuk aksesibilitas
            const emailInput = popup.querySelector('input[type="email"]');
            if (emailInput) emailInput.focus();
        }
    }

    // Fungsi untuk menyembunyikan popup
    function hidePopup() {
        popup.setAttribute('aria-hidden', 'true');
        popup.classList.remove('active');
    }

    // Deteksi Exit Intent berdasarkan pergerakan mouse
    document.body.addEventListener('mouseleave', function(e) {
        // Cek jika mouse keluar dari bagian atas halaman dan popup belum aktif
        if (e.clientY <= 5 && !mouseLeft) {
            mouseLeft = true;
            // Tunggu minimal triggerDelay sebelum menampilkan
            setTimeout(showPopup, Math.max(0, triggerDelay - (Date.now() - pageLoadTime)));
        }
    });

    // Tutup popup dengan tombol X
    closeBtn.addEventListener('click', hidePopup);
    // Tutup popup dengan mengklik overlay (di luar konten)
    popupOverlay.addEventListener('click', function(e) {
        if (e.target === this) hidePopup();
    });
    // Tutup popup dengan tombol Escape
    document.addEventListener('keydown', function(e) {
        if (e.key === 'Escape' && popup.classList.contains('active')) {
            hidePopup();
        }
    });

    // Catat waktu pemuatan halaman (sederhana)
    const pageLoadTime = Date.now();

    // Opsional: Submit form dengan AJAX untuk pengalaman mulus
    const exitForm = document.getElementById('exitForm');
    if (exitForm) {
        exitForm.addEventListener('submit', function(e) {
            e.preventDefault();
            const email = this.querySelector('input[type="email"]').value;
            // Di sini Anda dapat menambahkan kode untuk mengirim data ke server (misal, menggunakan Fetch API)
            console.log('Email yang disubmit:', email);
            alert('Terima kasih! Ebook akan segera dikirim.');
            hidePopup();
        });
    }
});
    

Best Practices dan Tren Masa Depan (2025 dan Seterusnya)

Membuat kode yang berfungsi hanyalah awal. Untuk memastikan popup Anda efektif dan tidak mengganggu, terapkan prinsip-prinsip berikut:

  • Personalisasi Berbasis Data: Gunakan data dari perilaku browsing (halaman yang dikunjungi, waktu di situs) untuk menampilkan penawaran yang relevan. Misalnya, tawarkan diskon untuk produk yang dilihat.
  • Inteligensi Waktu (Timing Intelligence): Jangan tampilkan popup kepada pengguna baru dalam beberapa detik pertama. Hormati waktu mereka untuk menjelajah konten.
  • Perangkat Mobile-First: Untuk perangkat sentuh, deteksi "exit intent" lebih sulit. Pertimbangkan trigger berdasarkan kecepatan geser (swipe) cepat ke atas atau kombinasi dengan deteksi inaktivitas.
  • Privasi dan Persetujuan: Selalu sertakan tautan ke kebijakan privasi dan pastikan formulir Anda mematuhi regulasi seperti GDPR. Jelaskan dengan jelas nilai yang akan didapat pengguna.
  • Analisis dan Pengujian (A/B Testing): Terus uji variasi copywriting, desain, dan waktu trigger untuk menemukan kombinasi yang paling efektif bagi audiens Anda.
  • Integrasi dengan Sistem CRM/Email Marketing: Kode pengiriman form Anda harus terintegrasi dengan baik ke dalam sistem otomasi marketing Anda untuk nurturing lead yang efektif.

Kesimpulan

Membuat Exit Intent Popup dengan coding sendiri memberikan Anda kendali penuh atas performa, desain, dan logika bisnis yang diterapkan. Di era 2025 di mana pengalaman pengguna yang personal dan tidak mengganggu adalah kunci, popup yang dibangun dengan hati-hati melalui HTML, CSS, dan JavaScript murni dapat menjadi aset konversi yang sangat berharga. Dengan mengikuti panduan langkah demi langkah di atas dan menerapkan best practices terkini, Anda dapat membuat solusi exit intent yang ringan, aksesibel, dan jauh lebih efektif daripada banyak plugin generik. Mulailah dengan kode dasar ini, lalu iterasi dan sesuaikan terus berdasarkan data dan umpan balik dari pengguna Anda sendiri.


Subscribe
Notify of
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
share
facebook
©MarketingAmpuh.com. Jogja-Indonesia.