Traquer facilement l’ouverture des emails
Attention : la RGPD implique que vous devez avoir le consentement de l’utilisateur pour mettre en oeuvre cette technique. Source : https://www.gdpreu.org/compliance/email-tracking/
Parfois on a besoin de savoir si les emails qu’on envoie sont effectivement ouverts par les destinataires. Les différentes plateformes de transport d’emails(SendGrid, Mailchimp, Amazon SES, etc) donnent généralement cette information, de façon globale ou même individuelle selon les cas.
Pour autant, il n’est pas toujours simple de récupérer cette information dans votre propre application. Voici une technique simple à mettre en ouvre.
La stratégie qu’on développe ici est celle du pixel : mettre dans le corps de l’email une image transparente de 1x1 pixel, donc invisible par l’utilisateur.
Au moment où l’email est ouvert, l’image est chargée, donc délivrée par le serveur. Celui-ci est donc informé que l’email a été ouvert et il peut stocker cette information ou effectuer un traitement.
Attention toutefois, cette stratégie n’est pas fiable à 100%. En effet, certains utilisateurs consultent leurs emails en texte uniquement (donc pas de HTML, donc pas d’image) : ils peuvent tout à fait lire votre email sans que le serveur en soit notifié.
La mise en oeuvre est (vraiment) super simple : commencez par mettre une image dans le corps de l’email que vous envoyez. Par exemple :
La source de cette image est une URL délivrée par votre application, qui peut prendre des paramètres si nécessaire (ici un ID) :
Ici on suppose que l’image se trouve dans le dossier public
et s’appelle pixel.png
. Si vous ne savez pas comment construire un PNG carré transparent de un pixel de côté, vous pouvez en télécharger un sur 1x1px.me et le mettre dans le dossier public
de votre application.
Prenez soin de renseigner le paramètre disposition
de send_file
puisque, comme l’indique la documentation, sa valeur par défaut provoque le téléchargement du fichier.
Et c’est tout ! Dans le template de l’email, vous pouvez passer tous les paramètres dont vous pourriez avoir besoin dans le contrôleur lorsque le pixel est délivré, pour stocker cette information en base ou déclencher une action.
Pour voir une démonstration de cette technique mise en oeuvre, visionnez la version vidéo de cet article :
Envie d’en savoir plus sur l’expédition d’emails avec ActionMailer ? Suivez le cours “Apprendre Ruby on Rails RAPIDEMENT” sur Udemy.
Apprenez Ruby on Rails FACILEMENT et RAPIDEMENT grâce à des ressources en français sur Dev on Rails. Suivez-vous :