sendPushSubscription send-push-subscription
Der Befehl sendPushSubscription registriert Push-Benachrichtigungs-Abonnements bei Adobe Experience Platform. Dieser Befehl verarbeitet das Abrufen von Push-Abonnementdetails aus dem Browser und sendet sie an Ihren konfigurierten Datenstrom. Sie ist ab Version 2.29.0 von Web SDK verfügbar.
Voraussetzungen prerequisites
Stellen Sie vor der Verwendung von sendPushSubscription Folgendes sicher:
- Konfigurierte Push-: Richten Sie die
pushNotificationsKonfigurationseigenschaft mit Ihrem öffentlichen VAPID-Schlüssel ein. - Benutzerberechtigung: Benutzer müssen über die Berechtigung „Benachrichtigung“ verfügen (
Notification.permission === "granted") - Service Worker: Ein registrierter Service Worker muss auf Ihrer Site verfügbar sein
- Push-Manager-Unterstützung: Der Browser muss Push-Benachrichtigungen unterstützen und die PushManager-API verfügbar haben
Führen Sie den sendPushSubscription Befehl aus, wenn Sie Ihre konfigurierte Instanz der Web-SDK aufrufen. Stellen Sie sicher, dass Sie den configure-Befehl mit konfigurierten Push-Benachrichtigungen aufrufen, bevor Sie den sendPushSubscription-Befehl aufrufen.
alloy("sendPushSubscription")
.then(() => {
console.log("Push subscription recorded successfully");
})
.catch((error) => {
console.error("Failed to send push subscription:", error);
});
Empfohlene Ausführungshäufigkeit recommended-execution-frequency
Für eine optimale Push-Benachrichtigungsfunktion empfiehlt Adobe die Ausführung des sendPushSubscription Befehls einmal täglich. Diese Häufigkeit stellt sicher, dass:
- Abonnementdetails bleiben in Adobe Experience Platform aktuell
- Alle Änderungen an Push-Token oder Abonnementstatus werden erfasst
- Das Profil des Benutzers wird weiterhin mit den neuesten Push-Benachrichtigungseinstellungen aktualisiert
Sie können dies mit einem ähnlichen Ansatz wie dem folgenden implementieren:
// 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);
});
}
Funktionsweise how-it-works
Der Befehl sendPushSubscription führt die folgenden Aktionen aus:
- Validiert Voraussetzungen: Überprüft, ob Push-Benachrichtigungen konfiguriert sind und die Benutzerberechtigung gewährt wird
- Wartet auf Identität: Wartet, bis die ECID des Benutzers verfügbar ist
- Ruft das Abonnement ab: Ruft das aktive Push-Abonnement vom Service Worker mithilfe des konfigurierten VAPID-Schlüssels ab
- Auf Änderungen prüfen: Vergleicht aktuelle Abonnementdetails mit zwischengespeicherten Werten (ECID + Abonnementdetails). Wenn sich die Abonnementdetails nicht geändert haben, protokolliert der Befehl eine Informationsmeldung und gibt sie zurück, ohne eine Netzwerkanfrage zu stellen
- Wird an Datenstrom gesendet: Wenn Änderungen erkannt werden, überträgt die Abonnementdaten an Ihren konfigurierten Adobe Experience Platform-Datenstrom
- Cache-Aktualisierungen: Speichert die neuen Abonnementdetails für zukünftige Vergleiche
Umgang mit Fehlern error-handling
Häufige Fehlerbedingungen und deren Meldungen:
"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."Daten-Payload data-payload
Der Befehl sendet Push-Benachrichtigungsdaten im folgenden Format:
{
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
},
},
],
}
Registrieren eines Push-Abonnements über die Tag-Erweiterung „Web SDK" register-push-subscription-tag-extension
Die Web SDK-Tag-Erweiterung, die diesem Feld entspricht, verwendet die Send Push Subscription Aktion innerhalb einer Tag-Regel.