sendPushSubscription send-push-subscription
O comando sendPushSubscription registra assinaturas de notificação por push com o Adobe Experience Platform. Esse comando manipula a recuperação dos detalhes da assinatura push do navegador e os envia para o fluxo de dados configurado. Ele está disponível nas versões 2.29.0 ou posteriores do Web SDK.
Pré-requisitos prerequisites
Antes de usar o sendPushSubscription, verifique se você tem:
- Notificações por push configuradas: configure a propriedade de configuração
pushNotificationscom sua chave pública VAPID - Permissão de usuário: os usuários devem ter concedido permissão de notificação (
Notification.permission === "granted") - Service worker: um service worker registrado deve estar disponível no site
- Suporte ao Push Manager: o navegador deve aceitar notificações por push e ter a API do PushManager disponível
Execute o comando sendPushSubscription ao chamar a instância configurada do Web SDK. Chame o comando configure com notificações por push configuradas antes de chamar o comando sendPushSubscription.
alloy("sendPushSubscription")
.then(() => {
console.log("Push subscription recorded successfully");
})
.catch((error) => {
console.error("Failed to send push subscription:", error);
});
Frequência de execução recomendada recommended-execution-frequency
Para obter a funcionalidade ideal de notificação por push, a Adobe recomenda executar o comando sendPushSubscription uma vez por dia. Essa frequência garante que:
- Os detalhes da assinatura permanecem atuais no Adobe Experience Platform
- Todas as alterações nos tokens de push ou no status da assinatura são capturadas
- O perfil do usuário permanece atualizado com as preferências de notificação por push mais recentes
Você pode implementar isso usando uma abordagem semelhante à abaixo:
// 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);
});
}
Como funciona how-it-works
O comando sendPushSubscription executa as seguintes ações:
- Valida pré-requisitos: verifica se as notificações por push estão configuradas e se a permissão de usuário foi concedida
- Aguarda identidade: aguarda a ECID do usuário estar disponível
- Recupera a assinatura: obtém a assinatura push ativa do service worker usando a chave VAPID configurada
- Verificações de alterações: compara os detalhes da assinatura atual com os valores em cache (ECID + detalhes da assinatura). Se os detalhes da assinatura não tiverem sido alterados, o comando registrará uma mensagem de informações e retornará sem fazer uma solicitação de rede
- Envia para a sequência de dados: se forem detectadas alterações, transmitirá os dados da assinatura para a sequência de dados configurada do Adobe Experience Platform
- Atualiza o cache: armazena os detalhes da nova assinatura para comparação futura
Tratamento de erros error-handling
Condições de erro comuns e suas mensagens:
"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."Carga de dados data-payload
O comando envia dados de notificação por push no seguinte 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
},
},
],
}
Registrar assinatura push usando a extensão de tag do Web SDK register-push-subscription-tag-extension
A extensão de marca do Web SDK equivalente a este campo está usando a ação Send Push Subscription em uma regra de marca.