La réponse courte
| Déclencheur | Recommandation |
|---|
| Temps | 30-60 secondes |
| Scroll | 50% de la page |
| Exit-intent | Quand le visiteur part |
| Pages vues | Après 2-3 pages |
Meilleure approche : Combiner plusieurs déclencheurs plutôt qu’un délai fixe.
Impact du timing sur les conversions
Données comparatives
| Délai d’apparition | Taux de conversion | Taux de rebond |
|---|
| Immédiat (0s) | 0.5-1% | +30% |
| 5 secondes | 1-2% | +20% |
| 10 secondes | 2-2.5% | +10% |
| 30 secondes | 2.5-3.5% | +5% |
| 60 secondes | 3-4% | +2% |
| Exit-intent | 2-4% | +0% |
Pourquoi le timing compte
| Popup trop tôt | Popup au bon moment |
|---|
| Visiteur n’a pas vu le contenu | A eu le temps d’évaluer |
| Ne connaît pas la valeur | Comprend ce que vous offrez |
| Réaction de défense | Réceptif à l’offre |
| Ferme et part | Plus susceptible de convertir |
Stratégies de déclenchement
1. Délai temporel
// Après 30 secondes
setTimeout(() => {
showPopup();
}, 30000);
Avantage : Simple à implémenter
Inconvénient : Ne tient pas compte du comportement
// Après 50% de scroll
window.addEventListener('scroll', () => {
const scrollPercent = (window.scrollY / documentHeight) * 100;
if (scrollPercent >= 50 && !popupShown) {
showPopup();
popupShown = true;
}
});
Avantage : Montre que le visiteur est engagé
Inconvénient : Pas applicable aux pages courtes
3. Exit-intent
// Quand la souris sort de la fenêtre
document.addEventListener('mouseout', (e) => {
if (e.clientY < 10) {
showPopup();
}
});
Avantage : N’interrompt pas l’expérience
Inconvénient : Pas tous les visiteurs le voient
4. Nombre de pages vues
// Après avoir vu 2 pages
const pageViews = parseInt(sessionStorage.getItem('pageViews') || 0) + 1;
sessionStorage.setItem('pageViews', pageViews);
if (pageViews >= 2) {
showPopup();
}
Avantage : Visiteur clairement intéressé
Inconvénient : Exclut les visites single-page
5. Combinaison intelligente
function shouldShowPopup() {
const timeOnPage = getTimeOnPage();
const scrollPercent = getScrollPercent();
const pageViews = getPageViews();
// Afficher si :
// - Plus de 30s ET scroll > 30%
// - OU plus de 2 pages vues
// - OU exit-intent détecté
return (timeOnPage > 30 && scrollPercent > 30)
|| pageViews >= 2;
}
Timing par type de page
Homepage
| Déclencheur | Valeur |
|---|
| Temps minimum | 20-30s |
| Scroll | 40-50% |
| Alternative | Exit-intent |
Page produit (e-commerce)
| Déclencheur | Valeur |
|---|
| Temps minimum | 45-60s |
| Scroll | 60-70% |
| Alternative | Exit-intent sur panier non finalisé |
Article de blog
| Déclencheur | Valeur |
|---|
| Temps minimum | 60-90s |
| Scroll | 50-70% |
| Alternative | Inline après 50% du contenu |
Landing page
| Déclencheur | Valeur |
|---|
| Recommandation | Exit-intent uniquement |
| Temps si nécessaire | 60s+ |
| Scroll | Après avoir vu les témoignages |
A/B tests de timing
Tests recommandés
| Test | Ce qu’il révèle |
|---|
| 10s vs 30s vs 60s | Délai optimal |
| Scroll 30% vs 50% vs 70% | Engagement minimum |
| Temps vs Scroll | Meilleur déclencheur |
| Simple vs Combiné | Complexité justifiée ? |
Métriques à comparer
- Taux de conversion du popup
- Taux de rebond global
- Temps moyen sur page
- Pages par session
Règles de fréquence
Le timing inclut aussi la répétition :
| Règle | Paramètre recommandé |
|---|
| Par session | 1 fois maximum |
| Après fermeture | Pas avant 7-14 jours |
| Après conversion | Ne plus jamais |
| Après 3 fermetures | Arrêter définitivement |
function checkFrequencyRules() {
// Déjà vu cette session ?
if (sessionStorage.getItem('popupShown')) return false;
// Fermé récemment ?
const lastClosed = localStorage.getItem('popupClosed');
if (lastClosed && daysSince(lastClosed) < 14) return false;
// Déjà converti ?
if (localStorage.getItem('popupConverted')) return false;
// Fermé 3+ fois ?
const closeCount = localStorage.getItem('popupCloseCount') || 0;
if (closeCount >= 3) return false;
return true;
}
Timing mobile vs desktop
Desktop
- Exit-intent fonctionne bien
- Délai 30-60s approprié
- Scroll tracking précis
Mobile
- Exit-intent complexe (pas de mouvement souris)
- Préférer déclenchement au scroll
- Éviter les full-screen (pénalité Google)
- Alternatives : slide-in, barre bottom
const isMobile = window.innerWidth < 768;
if (isMobile) {
// Scroll-triggered sur mobile
triggerOnScroll(60);
} else {
// Exit-intent sur desktop
triggerOnExitIntent();
}