Passer au contenu

Popup d'abonnement personnalisé

Le Popup d’abonnement personnalisé est une fenêtre pop-up affichée sur la page web qui suggère aux utilisateurs de s’abonner aux notifications push web. Il est implémenté avec le SDK Web Pushwoosh et permet de contourner les restrictions du navigateur concernant l’affichage des invites d’abonnement natives. Une invite d’abonnement native ne peut être montrée à un utilisateur particulier que deux fois. Si un utilisateur n’autorise pas les notifications push et ferme l’invite d’abonnement native deux fois de suite, elle ne sera plus affichée et les notifications push seront considérées comme bloquées. Un Popup d’abonnement personnalisé peut quant à lui être affiché autant de fois que nécessaire, à moins qu’un utilisateur ne s’abonne ou ne bloque explicitement les notifications push.

Un Popup d’abonnement personnalisé peut contenir n’importe quel texte expliquant les avantages de l’abonnement aux notifications push et deux boutons personnalisables — un pour l’option « Demander plus tard » et un pour « S’abonner ».

Une fois qu’un utilisateur appuie sur le bouton « S’abonner », une invite d’abonnement native apparaît.

Lorsqu’un utilisateur appuie sur le bouton « Demander plus tard » ou ferme simplement la fenêtre, le Popup d’abonnement personnalisé réapparaîtra après un temps spécifié (par défaut, une semaine après ; le délai avant une nouvelle tentative peut être personnalisé via le paramètre « retryOffset »).

Implémentation

Anchor link to

Pour activer et personnaliser un Popup d’abonnement personnalisé, utilisez le script suivant lors de l’initialisation du SDK Web Pushwoosh :

Exemple
Pushwoosh.push('init', {
// . . .,
subscribePopup: {
enable: true, // (booléen) activation du popup
text: 'Texte sur le popup', // (chaîne) un texte à afficher sur le popup
confirmSubscriptionButtonText: 'S\'abonner', // (chaîne) texte personnalisé pour le bouton « S'abonner »
manualToggle: false, // (booléen) contrôle manuel pour afficher le popup
delay: 60, // (entier) un délai entre le chargement de la page et l'apparition du popup
retryOffset: 604800, // (entier) un décalage en secondes pour afficher à nouveau le popup
iconUrl: 'https://...', // (chaîne) URL de l'icône personnalisée
iconAlt: 'Texte descriptif pour votre icône', // (chaîne) texte ALT pour l'icône
overlay: false, // (booléen) active la superposition de la page lorsque le popup est affiché
position: 'top', // (chaîne) position sur la page. Valeurs possibles : 'top' | 'center' | 'bottom'
mobileViewMargin: '10px', // (chaîne) marge pour la vue mobile
bgColor: '#fff', // (chaîne) couleur de fond du popup
borderColor: 'transparent', // (chaîne) couleur de bordure du popup
boxShadow: '0 3px 6px rgba(0,0,0,0.16)', // (chaîne) ombre du popup
textColor: '#000', // (chaîne) couleur du texte du popup
textSize: 'inherit', // (chaîne) taille du texte du popup
textWeight: 'normal', // (chaîne) épaisseur du texte du popup
fontFamily: 'inherit', // (chaîne) police du texte du popup
subscribeBtnBgColor: '#4285f4', // (chaîne) couleur de fond du bouton « S'abonner »
subscribeBtnTextColor: '#fff', // (chaîne) couleur du texte du bouton « S'abonner »
subscribeBtnTextWeight: 'bold', // (chaîne) épaisseur du texte du bouton « S'abonner »
subscribeBtnBorderColor: 'transparent', // (chaîne) couleur de bordure du bouton « S'abonner »
subscribeBtnBorderRadius: '4px', // (chaîne) rayon de bordure du bouton « S'abonner »
askLaterButtonText: 'Pas maintenant', // (chaîne) texte personnalisé pour le bouton « Demander plus tard »
askLaterBtnBgColor: 'transparent', // (chaîne) couleur de fond du bouton « Demander plus tard »
askLaterBtnTextColor: '#000', // (chaîne) couleur du texte du bouton « Demander plus tard »
askLaterBtnBorderColor: 'transparent', // (chaîne) couleur de bordure du bouton « Demander plus tard »
askLaterBtnBorderRadius: '4px', // (chaîne) rayon de bordure du bouton « Demander plus tard »
askLaterBtnTextWeight: 'normal', // (chaîne) épaisseur du texte du bouton « Demander plus tard »
theme: 'material', // (chaîne) thème du popup, valeurs possibles : 'material' | 'topbar'
viewport: 'desktop' // (chaîne) viewport cible, valeurs possibles : 'desktop' | 'mobile'
}
});

Accéder à l’instance du Popup d’abonnement personnalisé

Anchor link to

L’instance du Popup d’abonnement personnalisé est disponible via Pushwoosh.moduleRegistry.subscribePopup.

Remarque : Cette instance n’est accessible qu’après le déclenchement de l’événement subscribe-popup-ready. Cependant, elle ne sera pas disponible si l’utilisateur est déjà abonné aux notifications push.

L’instance fournit une méthode toggle() qui vous permet d’afficher ou de masquer manuellement le popup :

// Afficher ou masquer manuellement le Popup d'abonnement personnalisé
Pushwoosh.moduleRegistry.subscribePopup.toggle(); // Bascule la visibilité
Pushwoosh.moduleRegistry.subscribePopup.toggle(true); // Affiche le popup
Pushwoosh.moduleRegistry.subscribePopup.toggle(false); // Masque le popup

Cela permet un contrôle plus fin sur le comportement du popup directement depuis votre code.

Par défaut, le Popup d’abonnement utilise un thème ‘material’ et superpose une partie de l’écran lorsqu’il est affiché, masquant ainsi une partie du contenu au visiteur du site web.

Thème 'Material'

Pour éviter que le Popup d’abonnement ne masque du contenu important, utilisez le thème ‘topbar’ afin que le popup s’affiche sous la forme d’une barre étroite en haut de l’écran.

Thème 'Topbar'

Événements du Popup d’abonnement personnalisé

Anchor link to

Les événements suivants sont disponibles pour suivre les interactions avec le Popup d’abonnement personnalisé :

// Exécuté lorsque le popup d'abonnement personnalisé est chargé et prêt à être affiché
// Remarque : Cet événement ne se déclenchera PAS si l'utilisateur est déjà abonné aux notifications push.
Pushwoosh.addEventHandler('subscribe-popup-ready', function() {
console.log("Événement déclenché : subscribe-popup-ready");
});
// Exécuté lorsque le popup d'abonnement personnalisé est affiché
Pushwoosh.addEventHandler('subscribe-popup-show', function() {
console.log("Événement déclenché : subscribe-popup-show");
});
// Exécuté lorsqu'un utilisateur clique sur le bouton 'S'abonner' dans la fenêtre pop-up
Pushwoosh.addEventHandler('subscribe-popup-accept', function() {
console.log("Événement déclenché : subscribe-popup-accept");
});
// Exécuté lorsqu'un utilisateur clique sur le bouton 'Demander plus tard' dans la fenêtre pop-up
Pushwoosh.addEventHandler('subscribe-popup-decline', function() {
console.log("Événement déclenché : subscribe-popup-decline");
});
// Exécuté lorsque le popup se masque
Pushwoosh.addEventHandler('subscribe-popup-hide', function() {
console.log("Événement déclenché : subscribe-popup-hide");
});