Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt

Use this file to discover all available pages before exploring further.

Visão geral

A Entrega confirmada rastreia quando um dispositivo realmente recebe uma notificação push enviada através do OneSignal. Quando o SDK do OneSignal no dispositivo recebe um push, ele envia um evento de confirmação de volta ao OneSignal contendo o ID da notificação e o ID de assinatura do dispositivo. Isso permite que você veja exatamente quais assinaturas receberam quais notificações. No seu painel do OneSignal, a Entrega confirmada aparece no Relatório de mensagens como Confirmado (ou Recebido). Para todas as métricas de entrega e engajamento, consulte o Glossário de métricas.
Fluxo de entregas confirmadas
A Entrega confirmada é diferente de “Entregue.” Os serviços push de plataforma (APNs, FCM, ADM, HMS) informam se uma notificação foi aceita pelo serviço — não se o dispositivo realmente a recebeu. A Entrega confirmada é a confirmação do lado do dispositivo.

Requisitos

Limitações específicas de plataforma

iOS
  • Requer tanto a configuração da Notification Service Extension quanto do App Group.
  • O APNs mantém apenas uma mensagem por aplicativo quando offline. Se múltiplos pushes forem enviados enquanto offline, apenas o mais recente é entregue.
Huawei
  • Suportado apenas para o data tipo de mensagem Huawei.
  • Para o tipo message, a Huawei fornece dados de recibo apenas em seu próprio painel.
Web
  • O Safari não suporta Entrega confirmada.

Solução de problemas de Entrega confirmada

Se você não está recebendo notificações push de forma alguma, consulte primeiro Notificações não exibidas.

iOS

A Entrega confirmada no iOS requer duas coisas funcionando juntas:
  1. Uma Notification Service Extension (NSE) que executa o código do OneSignal quando um push chega
  2. Um App Group compartilhado entre o target do seu aplicativo principal e o target da NSE para que eles possam trocar dados
Se qualquer um estiver ausente ou mal configurado, o dispositivo recebe o push mas nunca o reporta de volta ao OneSignal. Verifique sua configuração iOS
1

Confirme que o target da NSE existe e tem o código correto

No Xcode, verifique se você tem um target OneSignalNotificationServiceExtension listado nos targets do seu projeto. Se não existir, siga o Passo 2 da Configuração do SDK iOS.Abra o arquivo NotificationService.swift (ou .m) da NSE. Ele deve chamar OneSignalExtension.didReceiveNotificationExtensionRequest dentro de didReceive(_:withContentHandler:). Se o arquivo ainda contém o código de template padrão da Apple, substitua-o pelo código NSE do OneSignal.
2

Confirme que a NSE tem o pacote OneSignalExtension

Selecione seu target da NSE > General > Frameworks and Libraries (ou Build Phases > Link Binary With Libraries). Verifique se OneSignalExtension está listado. O target do aplicativo principal usa OneSignalFramework, mas o target da NSE deve usar OneSignalExtension — estes são pacotes diferentes.
3

Verifique que o App Group está configurado corretamente em ambos os targets

O SDK do OneSignal usa um App Group para compartilhar dados entre seu aplicativo principal e a NSE. Há duas formas de configurar isso — escolha a que corresponde à sua configuração.
  1. Selecione seu target do aplicativo principal > Signing & Capabilities > App Groups.
  2. Confirme o App Group.
Se o seu App Group for group.YOUR_MAIN_APP_BUNDLE_ID.onesignal — onde YOUR_MAIN_APP_BUNDLE_ID é o identificador de bundle do target do seu aplicativo principal (disponível em General > Identity), siga a aba App Group padrão. Caso contrário, siga a aba App Group personalizado.
  1. Selecione seu target da NSE > Signing & Capabilities > App Groups.
  2. Confirme se o mesmo App Group está listado. Se ausente, adicione-o via + Capability > App Groups e selecione o mesmo grupo.
Um erro comum é usar o identificador de bundle da NSE em vez do do aplicativo principal:
  • Correto: group.YOUR_MAIN_APP_BUNDLE_ID.onesignal
  • Incorreto: group.YOUR_MAIN_APP_BUNDLE_ID.OneSignalNotificationServiceExtension.onesignal
O target do seu aplicativo principal e o target da NSE devem ter o mesmo identificador de App Group.
Se você usa arquivos .xcconfig para configurações de build, verifique se o App Group não está sendo substituído ou omitido nesses arquivos.
4

Confirme que os targets de implantação mínima correspondem

Selecione seu target da NSE > General > Minimum Deployments. Este valor deve corresponder à implantação mínima do target do seu aplicativo principal. Uma incompatibilidade pode impedir que a NSE seja executada em certas versões do sistema operacional.
5

Desmarque "Copy only when installing"

Selecione seu target do aplicativo principal > Build Phases > Embed App Extensions. Certifique-se de que “Copy only when installing” está desmarcado. Se marcado, a NSE não é incluída durante builds de desenvolvimento, portanto nunca é executada durante os testes.
6

Verifique os valores NSExtension no Info.plist

Selecione seu target da NSE > aba Info e expanda a chave NSExtension. Confirme se ela contém:
<key>NSExtensionPointIdentifier</key>
<string>com.apple.usernotifications.service</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).NotificationService</string>
Se a sua NSE for escrita em Objective-C, use NotificationService em vez de $(PRODUCT_MODULE_NAME).NotificationService.
7

Verifique se mutable-content está configurado

O OneSignal define automaticamente mutable-content: 1 no payload do push, o que instrui o iOS a invocar a NSE. Se você enviar pushes via API REST, verifique se não está definindo explicitamente mutable_content: false. Sem mutable-content, o iOS não executa a NSE e a Entrega confirmada não pode ser acionada.
8

Teste se a NSE está sendo executada

Adicione esta linha temporariamente dentro de didReceive antes da chamada do OneSignal:
bestAttemptContent.body = "[Modified] " + bestAttemptContent.body
Envie um push de teste para você mesmo. Se o corpo da notificação começar com [Modified], a NSE está sendo executada corretamente. Se não, revise as etapas acima — a NSE não está sendo invocada. Remova esta linha após os testes.Para depuração avançada da NSE com logs do Xcode Console, consulte Depurando a iOS Notification Service Extension.

Android

Web

  • Safari não é suportado.
  • Para outros navegadores, certifique-se de que a migração para o SDK v16 esteja completa:
    • Inicialização correta do SDK:
      <script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
      
    • Referência correta do Service Worker:
      importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");
      

Perguntas frequentes

Por que meus números de Entrega confirmada estão baixos ou ausentes?

As causas mais comuns são problemas de configuração (especialmente no iOS), dispositivos inativos e limitações de plataforma.
  1. Configuração incorreta do iOS: A Notification Service Extension ou o App Group está ausente ou incorreto. Consulte Solução de problemas de Entrega confirmada no iOS acima.
  2. Dispositivos inativos ou abandonados: Dispositivos que estão offline ou que não são mais utilizados não recebem pushes nem enviam eventos de Entrega confirmada. Consulte Como lidar com dispositivos inativos? abaixo.
  3. Limitações de plataforma: O tipo message da Huawei e o Safari não suportam Entrega confirmada.
  4. Fechamento forçado no Android: Alguns fabricantes de dispositivos tratam deslizar o aplicativo como fechamento forçado, o que para os eventos do SDK. Consulte o Guia de push móvel não exibido.

Como lidar com dispositivos inativos?

Dispositivos que estão offline ou abandonados não recebem notificações push nem enviam eventos de Entrega confirmada. Isso é comum quando os usuários substituem ou abandonam dispositivos. Para reengajar usuários inativos:
  • Use a Atividade de Audiência para reenviar para usuários que não confirmaram a entrega.
  • Crie Segmentos baseados em Última Sessão (por exemplo, inativos por 90+ dias).
    • Combine com uma Jornada de reengajamento para reconquistá-los.
    • Periodicamente segmente usuários inativos para remover dispositivos inalcançáveis.
Consulte Quando os status de assinatura push são atualizados? para mais detalhes sobre como o OneSignal atualiza o status de assinatura.

Por que mostra Confirmado mas não aparece no meu dispositivo?

Um evento de Entrega confirmada significa que o dispositivo recebeu o payload do push. Em casos raros, a notificação pode não ser exibida. Possíveis causas:
Precisa de ajuda?Converse com nossa equipe de Suporte ou envie email para support@onesignal.comPor favor inclua:
  • Detalhes do problema que você está enfrentando e passos para reproduzir se disponível
  • Seu OneSignal App ID
  • O External ID ou Subscription ID se aplicável
  • A URL para a mensagem que você testou no Dashboard OneSignal se aplicável
  • Quaisquer logs ou mensagens de erro relevantes
Estamos felizes em ajudar!