sendPushSubscription send-push-subscription
El comando sendPushSubscription registra las suscripciones de notificaciones push en Adobe Experience Platform. Este comando administra la recuperación de los detalles de la suscripción push desde el explorador y los envía al conjunto de datos configurado. Está disponible en las versiones 2.29.0 o posteriores de Web SDK.
Requisitos previos prerequisites
Antes de usar sendPushSubscription, asegúrese de que dispone de lo siguiente:
- Notificaciones push configuradas: configure la propiedad de configuración
pushNotificationscon la clave pública VAPID - Permiso de usuario: los usuarios deben tener concedido permiso de notificación (
Notification.permission === "granted") - Trabajador de servicio: un trabajador de servicio registrado debe estar disponible en el sitio
- Compatibilidad con Push Manager: el explorador debe admitir notificaciones push y tener disponible la API de PushManager
Ejecute el comando sendPushSubscription al llamar a la instancia configurada de Web SDK. Asegúrese de llamar al comando configure con las notificaciones push configuradas antes de llamar al comando sendPushSubscription.
alloy("sendPushSubscription")
.then(() => {
console.log("Push subscription recorded successfully");
})
.catch((error) => {
console.error("Failed to send push subscription:", error);
});
Frecuencia de ejecución recomendada recommended-execution-frequency
Para obtener una funcionalidad óptima de notificaciones push, Adobe recomienda ejecutar el comando sendPushSubscription una vez al día. Esta frecuencia garantiza lo siguiente:
- Los detalles de la suscripción permanecen actualizados en Adobe Experience Platform
- Se capturan todos los cambios en los tokens push o en el estado de suscripción
- El perfil del usuario permanece actualizado con las preferencias de notificaciones push más recientes
Puede implementar esto con un enfoque similar al siguiente:
// Check if subscription data was sent today
const lastSent = localStorage.getItem("alloy_push_last_sent");
const today = new Date().toDateString();
if (lastSent !== today) {
alloy("sendPushSubscription").then(() => {
localStorage.setItem("alloy_push_last_sent", today);
});
}
Funcionamiento how-it-works
El comando sendPushSubscription realiza las siguientes acciones:
- Valida los requisitos previos: Comprueba que las notificaciones push estén configuradas y que se haya concedido el permiso de usuario
- Espera la identidad: Espera a que el ECID del usuario esté disponible
- Recupera la suscripción: obtiene la suscripción push activa del trabajador de servicio mediante la clave VAPID configurada
- Comprueba cambios: compara los detalles de la suscripción actual con los valores almacenados en caché (ECID + detalles de la suscripción). Si los detalles de la suscripción no han cambiado, el comando registra un mensaje de información y vuelve sin realizar una solicitud de red
- Envía al conjunto de datos: Si se detectan cambios, transmite los datos de suscripción al conjunto de datos configurado de Adobe Experience Platform
- Actualiza la caché: Almacena los nuevos detalles de suscripción para futuras comparaciones
Control de errores error-handling
Condiciones de error comunes y sus mensajes:
"Push notifications module is not configured. No VAPID public key was provided.""Service workers are not supported in this browser.""Push notifications are not supported in this browser.""The user has not given permission to send push notifications."Notification.permission === "granted")"No service worker registration was found.""No VAPID public key was provided."Carga útil de datos data-payload
El comando envía los datos de las notificaciones push en el siguiente formato:
{
pushNotificationDetails: [
{
appID: "example.com", // Current domain
token: "...", // Serialized subscription details + ECID
platform: "web", // Always "web" for Web SDK
denylisted: false, // Always false
identity: {
namespace: {
code: "ECID",
},
id: "12345678901234567890", // User's ECID
},
},
],
}
Registro de suscripciones push mediante la extensión de etiquetas Web SDK register-push-subscription-tag-extension
La extensión de etiquetas Web SDK equivalente a este campo utiliza la acción Send Push Subscription dentro de una regla de etiquetas.