sendPushSubscription send-push-subscription

AVAILABILITY
Le notifiche push per il Web SDK sono attualmente in beta. La funzionalità e la documentazione sono soggette a modifiche.

Il comando sendPushSubscription registra le sottoscrizioni di notifiche push con Adobe Experience Platform. Questo comando gestisce il recupero dei dettagli della sottoscrizione push dal browser e li invia allo stream di dati configurato. È disponibile in Web SDK versione 2.29.0 o successiva.

Prerequisiti prerequisites

Prima di utilizzare sendPushSubscription, assicurati di disporre di:

  1. Notifiche push configurate: configura la proprietà di configurazione pushNotifications con la tua chiave pubblica VAPID
  2. Autorizzazione utente: gli utenti devono aver concesso l'autorizzazione per le notifiche (Notification.permission === "granted")
  3. Service worker: un service worker registrato deve essere disponibile nel sito
  4. Supporto di Push Manager: il browser deve supportare le notifiche push e disporre dell'API PushManager

Eseguire il comando sendPushSubscription quando si chiama l'istanza configurata del Web SDK. Assicurarsi di chiamare il comando configure con le notifiche push configurate prima di chiamare il comando sendPushSubscription.

alloy("sendPushSubscription")
  .then(() => {
    console.log("Push subscription recorded successfully");
  })
  .catch((error) => {
    console.error("Failed to send push subscription:", error);
  });

Per una funzionalità ottimale di notifica push, Adobe consiglia di eseguire il comando sendPushSubscription una volta al giorno. Questa frequenza assicura che:

  • I dettagli dell’abbonamento rimangono correnti in Adobe Experience Platform
  • Vengono acquisite eventuali modifiche ai token di push o allo stato dell’abbonamento
  • Il profilo dell’utente rimane aggiornato con le preferenze per le notifiche push più recenti

Puoi implementarlo utilizzando un approccio simile a quello riportato di seguito:

// 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);
  });
}

Come funziona how-it-works

Il comando sendPushSubscription esegue le azioni seguenti:

  1. Convalida prerequisiti: verifica che le notifiche push siano configurate e che l'utente disponga delle autorizzazioni necessarie
  2. Attende l'identità: attende che l'ECID dell'utente sia disponibile
  3. Recupera la sottoscrizione: ottiene la sottoscrizione push attiva dal service worker utilizzando la chiave VAPID configurata
  4. Verifica la presenza di modifiche: confronta i dettagli della sottoscrizione corrente con i valori memorizzati nella cache (ECID + dettagli della sottoscrizione). Se i dettagli della sottoscrizione non sono stati modificati, il comando registra un messaggio di informazioni e restituisce senza effettuare una richiesta di rete
  5. Invia a datastream: se vengono rilevate modifiche, trasmette i dati della sottoscrizione allo stream di dati di Adobe Experience Platform configurato
  6. Cache aggiornamenti: memorizza i nuovi dettagli della sottoscrizione per il confronto futuro

Gestione degli errori error-handling

Condizioni di errore comuni e relativi messaggi:

Errore
Causa
"Push notifications module is not configured. No VAPID public key was provided."
Configurazione pushNotifications mancante o non valida
"Service workers are not supported in this browser."
Il browser non supporta i processi di lavoro dei servizi
"Push notifications are not supported in this browser."
Il browser non supporta le notifiche push o l’API di notifica
"The user has not given permission to send push notifications."
L'utente non ha concesso l'autorizzazione per le notifiche (Notification.permission === "granted")
"No service worker registration was found."
Nessun lavoratore del servizio registrato per l'origine corrente
"No VAPID public key was provided."
Chiave pubblica VAPID mancante nella configurazione

Payload dati data-payload

Il comando invia i dati di notifica push nel seguente 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
      },
    },
  ],
}

Registrare l’abbonamento push tramite l’estensione tag Web SDK register-push-subscription-tag-extension

L'estensione tag Web SDK equivalente a questo campo utilizza l'azione Send Push Subscription all'interno di una regola di tag.

recommendation-more-help
1ae86b30-e55e-49c1-ab11-9d0356a5f3e1