sendPushSubscription send-push-subscription
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 :
- Notifications push configurées : configurez la propriété de configuration
pushNotificationsavec votre clé publique VALIDE - Autorisation utilisateur : les utilisateurs doivent disposer d'une autorisation de notification (
Notification.permission === "granted") - Service worker : un service worker enregistré doit être disponible sur votre site
- 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);
});
Fréquence d’exécution recommandée recommended-execution-frequency
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 :
- Valide les conditions préalables : vérifie que les notifications push sont configurées et que l’autorisation utilisateur est accordée
- Attend l’identité : attend que l’ECID de l’utilisateur soit disponible
- 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
- 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
- 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é
- 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 :
"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."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.