Llega el Black Friday

50% de descuento en Productos y Mantenimiento (código BF24P)
20% de descuento en Consultoría y Packs de horas (código BF24S)

Cómo implementar notificaciones push en WordPress: guía completa con Firebase, OneSignal y opciones autoalojadas

    Las notificaciones push son una excelente herramienta para mantener a los usuarios de tu web conectados y actualizados. Ya sea que busques una implementación manual o prefieras usar un servicio externo, en este artículo exploramos los pasos técnicos y las opciones disponibles, incluyendo Firebase y OneSignal, y cómo llevarlas a cabo en WordPress.

    Opciones populares

    1. Firebase Cloud Messaging (FCM)

    Firebase ofrece una solución robusta, escalable y fácil de integrar, especialmente útil para aplicaciones móviles y proyectos web de alto tráfico. Es ideal para quienes ya utilizan el ecosistema de Google y necesitan una infraestructura sólida.

    Ventajas de Firebase:

    Escalabilidad: Ideal para manejar grandes volúmenes de notificaciones.

    Funciones avanzadas: Personalización de mensajes, segmentación de usuarios y análisis.

    Compatibilidad móvil y web: Soporte nativo en Android y excelente integración en navegadores.

    Desventajas de Firebase:

    Privacidad: Dependes de la infraestructura de Google, lo que puede no ser ideal para quienes buscan máxima privacidad.

    Configuración avanzada: La integración avanzada puede requerir un esfuerzo extra de configuración y conocimientos técnicos.

    2. OneSignal

    OneSignal es una opción popular y fácil de usar, que permite agregar notificaciones push en navegadores y aplicaciones móviles sin necesidad de configurar servidores.

    Ventajas de OneSignal:

    Fácil de usar: Ideal para quienes buscan una configuración rápida.

    Compatibilidad con GDPR: Ofrece opciones para cumplir con regulaciones de privacidad, como GDPR.

    Analíticas integradas: Puedes rastrear métricas de engagement y analizar la efectividad de las notificaciones.

    Desventajas de OneSignal:

    Privacidad: Al igual que Firebase, depende de un proveedor externo y no ofrece control total sobre los datos.

    Opciones limitadas para personalización completa: Para proyectos avanzados, OneSignal puede no ofrecer la flexibilidad deseada.

    3. Sistema de Notificaciones Push Autoalojado

    Implementar tu propio sistema de notificaciones push requiere conocimientos técnicos avanzados, pero ofrece máximo control sobre los datos y personalización completa.

    Ventajas del Sistema Autoalojado:

    Privacidad y control: Eres dueño de los datos y controlas completamente su manejo.

    Personalización: Puedes adaptar el sistema según tus necesidades, sin depender de un proveedor externo.

    Desventajas:

    Complejidad técnica: La configuración puede ser compleja, ya que requiere conocimientos en tecnologías como Service Workers y claves VAPID.

    Mantenimiento continuo: Deberás hacerte cargo del mantenimiento y las actualizaciones del sistema.

    Comparativa General

    CaracterísticaFirebaseOneSignalSistema Autoalojado
    Facilidad de usoAltaMuy altaBaja
    Compatibilidad con GDPRLimitadaBuenaExcelente
    EscalabilidadAltaAltaMedia (depende de la infraestructura)
    Compatibilidad con WordPressBuena (con plugin)Excelente (con plugin)Manual (requiere configuración)

    Implementación Manual de Notificaciones Push en WordPress

    Paso 1: Configura el Service Worker

    Para recibir notificaciones push en WordPress, el primer paso es configurar el Service Worker. Este script se registra en el navegador y permite recibir notificaciones push incluso cuando el usuario no tiene abierta la página.

    1. Crea el archivo sw.js en tu servidor. Este archivo define cómo el navegador manejará las notificaciones.

    2. Registra el Service Worker en el archivo header.php de tu tema en WordPress:

    if ('serviceWorker' in navigator) {
      navigator.serviceWorker.register('/sw.js')
        .then(function(reg) {
          console.log("Service Worker registrado con éxito", reg);
        }).catch(function(error) {
          console.log("Error al registrar Service Worker", error);
        });
    }

    Paso 2: Solicita Permiso al Usuario

    Para que los usuarios reciban notificaciones, debes pedir su permiso. Coloca este código en tu archivo header.php o en un plugin personalizado:

    Notification.requestPermission().then(function(permission) {
      if (permission === 'granted') {
        console.log("Permiso de notificaciones concedido.");
        // Aquí puedes crear la suscripción
      } else {
        console.log("Permiso de notificaciones denegado.");
      }
    });

    Paso 3: Genera las Claves VAPID

    Las claves VAPID son esenciales para autenticar la comunicación entre el servidor y el navegador del usuario. Puedes generarlas usando la librería web-push en Node.js o Minishlink/web-push en PHP.

    Node.js:

    npm install web-push -g
    web-push generate-vapid-keys

    PHP: Con la librería Minishlink/web-push, que puedes instalar y configurar en el servidor.

    Paso 4: Crea y Almacena la Suscripción del Usuario

    Una vez que el usuario ha otorgado permiso, crea la suscripción con los datos del usuario y almacénala en WordPress para enviar notificaciones en el futuro.

    navigator.serviceWorker.ready.then(function(reg) {
      reg.pushManager.subscribe({
        userVisibleOnly: true,
        applicationServerKey: urlBase64ToUint8Array('<VAPID_PUBLIC_KEY>')
      }).then(function(subscription) {
        console.log("Suscripción creada:", subscription);
        // Aquí se debe almacenar la suscripción en la base de datos de WordPress
      }).catch(function(error) {
        console.log("Error al crear la suscripción:", error);
      });
    });

    Nota: Puedes almacenar la suscripción en la base de datos de WordPress con una función PHP personalizada.

    Paso 5: Enviar Notificaciones Push desde WordPress

    Para enviar las notificaciones, usa la información de suscripción almacenada en WordPress y las claves VAPID.

    1. Node.js con web-push:

    const webPush = require('web-push');
    const payload = JSON.stringify({ title: "Notificación", body: "Contenido de prueba" });
    
    webPush.sendNotification(subscription, payload, {
      vapidDetails: {
        subject: 'mailto:example@example.com',
        publicKey: '<VAPID_PUBLIC_KEY>',
        privateKey: '<VAPID_PRIVATE_KEY>'
      }
    });

    2. PHP con Minishlink/web-push: Usa el código para enviar notificaciones desde tu servidor PHP.

    Implementación en WordPress con Firebase y OneSignal

    Para quienes buscan una solución más sencilla en WordPress, Firebase y OneSignal ofrecen plugins y métodos integrados:

    1. OneSignal: Tiene un plugin oficial para WordPress que simplifica la configuración y te permite gestionar notificaciones directamente desde el panel de WordPress. Además, puedes configurar reglas de envío y segmentación sin necesidad de programar.

    2. Firebase Cloud Messaging: Aunque no tiene un plugin específico para WordPress, puedes integrar Firebase en tu sitio usando JavaScript en la capa del cliente. Requiere configuración en la consola de Firebase y en el archivo sw.js para gestionar las notificaciones.

    ¿Cuál es la Mejor Opción para WordPress?

    Proyectos sin experiencia técnica: El plugin de OneSignal ofrece una solución rápida y fácil de usar.

    Proyectos que priorizan la privacidad: La implementación manual es ideal para quienes buscan control total sobre los datos y la personalización.

    Conclusión

    Implementar notificaciones push en WordPress puede ir desde una configuración manual y personalizada hasta una solución rápida con plugins como OneSignal o servicios de terceros como Firebase. Si buscas facilidad y análisis integrados, opta por OneSignal o Firebase. Si prefieres máxima privacidad y control, implementar un sistema autoalojado te permite configurar cada aspecto a tu medida.


    Herramientas relacionadas

    • WordPress

      El sistema gestor de contenidos más utilizado del mundo. Gratis, libre, y muy personalizable.

    • OneSignal

      Popular servicio para enviar notificaciones push a usuarios de sitios web.

    • Firebase

      Plataforma de Google que facilita el desarrollo, despliegue y gestión de aplicaciones móviles y web mediante herramientas de backend como bases de datos en tiempo real, autenticación de usuarios y almacenamiento en la nube.