sendPushSubscription send-push-subscription
Kommandot sendPushSubscription registrerar push-meddelandeprenumerationer hos Adobe Experience Platform. Det här kommandot hanterar hämtning av information om push-prenumerationer från webbläsaren och skickar dem till din konfigurerade datastam. Den finns i Web SDK version 2.29.0 eller senare.
Förhandskrav prerequisites
Kontrollera att du har:sendPushSubscription
- Konfigurerade push-meddelanden: Konfigurera konfigurationsegenskapen
pushNotificationsmed den offentliga VAPID-nyckeln - Användarbehörighet: Användarna måste ha beviljat aviseringsbehörighet (
Notification.permission === "granted") - Tjänstarbetare: En registrerad servicearbetare måste vara tillgänglig på din plats
- Stöd för Push Manager: Webbläsaren måste ha stöd för push-meddelanden och PushManager API är tillgängligt
Kör kommandot sendPushSubscription när du anropar den konfigurerade instansen av Web SDK. Kontrollera att du anropar kommandot configure med push-meddelanden konfigurerade innan du anropar kommandot sendPushSubscription.
alloy("sendPushSubscription")
.then(() => {
console.log("Push subscription recorded successfully");
})
.catch((error) => {
console.error("Failed to send push subscription:", error);
});
Rekommenderad exekveringsfrekvens recommended-execution-frequency
Adobe rekommenderar att du kör sendPushSubscription-kommandot en gång om dagen för att få optimal push-meddelandefunktion. Denna frekvens säkerställer att
- Prenumerationsinformationen är fortfarande aktuell i Adobe Experience Platform
- Alla ändringar av push-token eller prenumerationsstatus registreras
- Användarprofilen uppdateras med de senaste inställningarna för push-meddelanden
Du kan implementera detta med en metod som liknar den nedan:
// 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);
});
}
Så fungerar det how-it-works
Kommandot sendPushSubscription utför följande åtgärder:
- Verifierar krav: Verifierar att push-meddelanden har konfigurerats och användarbehörighet har beviljats
- Meddelar identitet: Väntar på att användarens ECID ska vara tillgängligt
- Hämtar prenumeration: Hämtar den aktiva push-prenumerationen från servicearbetaren med den konfigurerade VAPID-nyckeln
- Söker efter ändringar: Jämför aktuell prenumerationsinformation med cachelagrade värden (ECID + prenumerationsinformation). Om prenumerationsinformationen inte har ändrats loggar kommandot ett informationsmeddelande och returnerar det utan att göra någon nätverksbegäran
- Skickar till datastream: Om ändringar identifieras, överför prenumerationsdata till din konfigurerade Adobe Experience Platform-datastream
- Uppdateringscache: Lagrar den nya prenumerationsinformationen för framtida jämförelse
Felhantering error-handling
Vanliga feltillstånd och deras meddelanden:
"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."Datanyttolast data-payload
Kommandot skickar push-meddelandedata i följande 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
},
},
],
}
Registrera push-prenumerationer med hjälp av taggtillägget Web SDK register-push-subscription-tag-extension
Webbtaggtillägget för SDK som är ekvivalent med det här fältet använder åtgärden Send Push Subscription i en taggregel.