sendPushSubscription send-push-subscription

AVAILABILITY
Les notifications push pour le Web SDK sont actuellement en version bêta. Les fonctionnalités et la documentation sont susceptibles d’être modifiées.

La commande sendPushSubscription enregistre les abonnements aux notifications push auprès de Adobe Experience Platform. Cette commande gère la récupération des détails d’abonnement push à partir du navigateur et les envoie à votre flux de données configuré. Il est disponible dans les versions 2.29.0 ou ultérieures de Web SDK.

Conditions préalables prerequisites

Avant d’utiliser sendPushSubscription, vérifiez que vous disposez des éléments suivants :

  1. Notifications push configurées : configurez la propriété de configuration pushNotifications avec votre clé publique VALIDE
  2. Autorisation utilisateur : les utilisateurs doivent disposer d'une autorisation de notification (Notification.permission === "granted")
  3. Service worker : un service worker enregistré doit être disponible sur votre site
  4. Prise en charge de Push Manager : le navigateur doit prendre en charge les notifications push et disposer de l’API PushManager

Exécutez la commande sendPushSubscription lors de l’appel de votre instance configurée de Web SDK. Veillez à appeler la commande configure avec les notifications push configurées avant d'appeler la commande sendPushSubscription.

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

Pour une fonctionnalité optimale de notification push, Adobe recommande d'exécuter la commande sendPushSubscription une fois par jour. Cette fréquence permet de s’assurer que :

  • Les détails de l’abonnement restent à jour dans Adobe Experience Platform
  • Toute modification des jetons push ou du statut d’abonnement est capturée
  • Le profil de l’utilisateur reste mis à jour avec les dernières préférences de notification push

Vous pouvez le mettre en œuvre en utilisant une approche similaire à celle ci-dessous :

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

Fonctionnement how-it-works

La commande sendPushSubscription effectue les actions suivantes :

  1. Valide les conditions préalables : vérifie que les notifications push sont configurées et que l’autorisation utilisateur est accordée
  2. Attend l’identité : attend que l’ECID de l’utilisateur soit disponible
  3. Récupère l’abonnement : récupère l’abonnement push actif auprès de l’agent de service à l’aide de la clé VALID configurée
  4. Vérifie les modifications : compare les détails de l’abonnement actuel aux valeurs mises en cache (ECID + détails de l’abonnement). Si les détails de l’abonnement n’ont pas changé, la commande consigne un message d’information et renvoie sans effectuer de requête réseau
  5. Envoie au flux de données : si des modifications sont détectées, transmet les données d’abonnement au flux de données Adobe Experience Platform configuré
  6. Met à jour le cache : stocke les détails du nouvel abonnement pour une comparaison ultérieure.

Traitement des erreurs error-handling

Conditions d’erreur courantes et leurs messages :

Erreur
Cause
"Push notifications module is not configured. No VAPID public key was provided."
Configuration des notifications push manquante ou non valide
"Service workers are not supported in this browser."
Le navigateur ne prend pas en charge les agents de service
"Push notifications are not supported in this browser."
Le navigateur ne prend pas en charge les notifications push ou l’API de notification
"The user has not given permission to send push notifications."
L'utilisateur n'a pas accordé d'autorisation de notification (Notification.permission === "granted")
"No service worker registration was found."
Aucun service worker n’est enregistré pour l’origine actuelle
"No VAPID public key was provided."
Clé publique VALIDE manquante dans la configuration

Payload des données data-payload

La commande envoie les données de notification push au format suivant :

{
  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
      },
    },
  ],
}

Enregistrement d’un abonnement push à l’aide de l’extension de balise Web SDK register-push-subscription-tag-extension

L’extension de balise Web SDK équivalente à ce champ utilise l’action Send Push Subscription dans une règle de balise.

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