Pular para o conteúdo principal

Visão geral

O push throttling controla a taxa na qual o OneSignal entrega notificações push. Use o throttling para distribuir a entrega ao longo do tempo — prevenindo sobrecarga do servidor, evitando degradação de desempenho durante envios em massa e mantendo uma experiência de usuário consistente entre dispositivos.

Por que os envios push impactam seus servidores

Enviar uma notificação push para um público grande pode gerar um pico repentino de tráfego nos seus próprios servidores — mesmo que sua taxa de cliques seja baixa. Isso acontece porque a entrega em si (não apenas cliques) aciona múltiplos tipos de requisições de volta à sua infraestrutura. Entender essas fontes ajuda você a escolher a estratégia de mitigação correta.

Imagens e mídia auto-hospedadas

Quando uma notificação push inclui uma imagem (como big_picture ou chrome_web_image), cada dispositivo que recebe a notificação baixa essa imagem imediatamente na entrega. Se a imagem estiver hospedada nos seus próprios servidores em vez de uma CDN, isso cria uma requisição HTTP por notificação entregue — potencialmente dezenas de milhares de requisições em segundos. Recomendações:
  • Hospede imagens de notificação em uma CDN (por ex., CloudFront, Cloudflare, Fastly) em vez dos seus servidores de aplicação.
  • Use o push throttling para distribuir a entrega ao longo do tempo se você precisar auto-hospedar mídia.

Aberturas simultâneas do app

A entrega push faz com que muitos usuários abram seu app ao mesmo tempo. Cada abertura de app normalmente gera múltiplas requisições ao seu backend: inicialização de sessão, buscas de conteúdo, chamadas de API e eventos de análise. Mesmo uma taxa de abertura modesta pode se traduzir em um pico de tráfego significativo se milhares de notificações forem entregues simultaneamente. Recomendações:
  • Use o push throttling para escalonar a entrega e distribuir as aberturas do app em uma janela de tempo mais ampla.
  • Garanta que seu backend possa lidar com tráfego de pico de envios de alto volume, ou use infraestrutura com auto-scaling.

Event Streams

Se você tem Event Streams configurado com um destino webhook, o OneSignal envia uma requisição HTTP ao seu endpoint para cada evento (por ex., message.sent, message.delivered, message.clicked) em tempo real. Durante um envio push grande, isso pode produzir uma rajada de requisições webhook proporcional ao tamanho da sua audiência.
O OneSignal não limita a taxa do tráfego webhook de saída do Event Stream. Seu endpoint deve ser capaz de lidar com o volume de eventos gerado pelos seus envios de mensagens.
Recomendações:
  • Garanta que seu endpoint webhook possa lidar com o throughput proporcional ao tamanho da sua audiência.
  • Use uma fila ou buffer intermediário (por ex., Amazon Kinesis, Google Pub/Sub) em vez de um webhook direto para absorber rajadas. O Event Streams suporta esses como destinos nativamente.
  • Use o push throttling para reduzir a taxa máxima de eventos atingindo seu endpoint.

Journey webhooks

Os Journey webhooks enviam requisições HTTP aos seus servidores quando os usuários chegam a etapas específicas em um Journey. Embora os Journeys naturalmente regulem a entrega com base no comportamento do usuário, Journeys de alto tráfego ainda podem gerar volume webhook significativo. Endpoints lentos ou sobrecarregados podem acionar a desabilitação automática do webhook. Recomendações:
  • Projete seu endpoint webhook para responder rapidamente (retornar 200 OK) e adiar o processamento pesado para um job em background.
  • Monitore respostas 429 do seu endpoint, que podem fazer o OneSignal desabilitar o webhook.
  • Revise o guia de performance na documentação de Journey webhooks.

Buscas do Service Worker (web push)

Para web push, os navegadores periodicamente buscam novamente o arquivo OneSignal Service Worker do seu servidor (normalmente quando o cache expira, a cada 24 horas no máximo). Quando uma notificação push é entregue, o navegador pode verificar se há um arquivo Service Worker atualizado — gerando uma requisição por assinatura web push de volta ao seu servidor de hospedagem. Recomendações:
  • Sirva o arquivo OneSignalSDKWorker.js de uma CDN ou garanta que seu servidor de hospedagem possa lidar com o volume de requisições.
  • Configure cabeçalhos de cache apropriados para reduzir a frequência de re-busca.
  • Consulte a documentação do OneSignal Service Worker para mais detalhes.

Escolhendo a abordagem correta

Fonte de tráfegoAfetado pelo throttling?Mitigação alternativa
Imagens auto-hospedadasSim — entrega mais lenta = menos downloads simultâneosHospedar em uma CDN
Aberturas simultâneas do appSim — entrega escalonada distribui sessões de usuárioInfraestrutura com auto-scaling
Event Streams (webhooks)Sim — entrega mais lenta = menor taxa de eventosUsar destino baseado em fila (Kinesis, Pub/Sub, etc.)
Journey webhooksNão — Journeys não suportam throttlingOtimizar performance do endpoint; usar processamento em background
Buscas do Service WorkerSim — entrega mais lenta = menos buscas simultâneasHospedagem CDN; cabeçalhos de cache

Opções de configuração

O throttling deve ser habilitado no nível de configurações globais para estar disponível para uso.

Configurações globais de throttling

Habilite o throttling para todas as mensagens push em Settings > Push & In-App > Throttling. Uma vez habilitado, esta configuração se aplica a todas as notificações push por padrão, mas pode ser sobrescrita para mensagens individuais.
Push throttling settings in the OneSignal dashboard under Settings > Push & In-App > Throttling

Substituição de throttling por mensagem

Você pode sobrescrever configurações globais de throttling em mensagens individuais.
  1. Durante a criação da notificação, marque a caixa “Override throttling setting”
  2. Defina sua taxa desejada de mensagens por minuto
  3. Para desabilitar throttling para uma mensagem específica, insira “0” no campo mensagens por minuto
Para notificações enviadas via API, use a propriedade throttle_rate_per_minute.

Como funciona o throttling

Processo de conversão de taxa

O OneSignal converte sua configuração por minuto para uma taxa por segundo para otimizar a entrega:
  1. O sistema divide sua taxa de throttle por 60 (segundos por minuto)
  2. O resultado é arredondado para baixo para o número inteiro mais próximo (OneSignal não pode enviar mensagens parciais)
  3. Esta taxa por segundo é então aplicada durante todo o processo de entrega
Exemplo: Você define uma taxa de throttle de 1.019 mensagens por minuto.
  1. O OneSignal divide por 60: 1.019 ÷ 60 = 16,98 mensagens por segundo
  2. Arredonda para baixo: 16 mensagens por segundo
  3. Taxa de entrega real: 16 × 60 = 960 mensagens por minuto (59 a menos que a taxa definida)
Esta conversão garante processamento mais eficiente eliminando atrasos entre lotes.

Limitações e Considerações

Janela de Entrega de 24 Horas

Todas as notificações com throttle devem completar a entrega dentro de 24 horas após serem enviadas. Se sua taxa de throttling faria com que a entrega excedesse 24 horas, o OneSignal ajusta automaticamente a taxa para garantir conclusão dentro deste prazo. Exemplo: Você define uma taxa de throttle de 10 mensagens por minuto para 20.000 usuários — a entrega levaria aproximadamente 33 horas. O OneSignal ajusta automaticamente a taxa para cerca de 14 mensagens por minuto para completar a entrega dentro de 24 horas.

Compatibilidade e Disponibilidade

O throttling está disponível apenas para notificações push enviadas via API Create notification ou pela interface do painel Messages > New Push. Não é suportado para Journeys ou Mensagens Automatizadas (veja a tabela de resumo acima).

Fuso Horário e Intelligent Delivery

O throttling tem precedência sobre o Fuso Horário e o Intelligent Delivery. Quando o throttling está habilitado, o OneSignal ignora esses recursos para aquela notificação. Para usar Fuso Horário ou Intelligent Delivery:
  • Desabilite throttling para aquela notificação específica em Delivery Schedule
  • Defina “Override throttling setting” como “0”
  • Para notificações via API, defina throttle_rate_per_minute: 0

Perguntas Frequentes

O throttling funciona com o Intelligent Delivery ou a entrega por Fuso Horário?

Não. O throttling tem precedência sobre o Intelligent Delivery e a entrega por Fuso Horário. Quando o throttling está habilitado para uma notificação, o OneSignal ignora esses recursos de agendamento. Para usar o Intelligent Delivery ou a entrega por Fuso Horário, defina a substituição de throttle como 0 para aquela notificação.

O que acontece se minha taxa de throttle levaria mais de 24 horas?

O OneSignal aumenta automaticamente a taxa de throttle para que a entrega seja concluída dentro de 24 horas. Por exemplo, enviar para 20.000 usuários a 10 mensagens por minuto levaria ~33 horas, então o OneSignal ajusta a taxa para ~14 mensagens por minuto.

Posso fazer throttling em Journeys ou Mensagens Automatizadas?

Não. O throttling só se aplica a notificações push enviadas via painel (Messages > New Push) ou a API Create notification. Journeys e Mensagens Automatizadas entregam dinamicamente conforme os usuários se qualificam, o que naturalmente distribui a entrega ao longo do tempo.

Por que minha taxa de entrega real é menor do que defini?

O OneSignal converte sua taxa por minuto para uma taxa por segundo e arredonda para baixo. Por exemplo, 1.019 mensagens por minuto se torna 16 mensagens por segundo (1.019 ÷ 60 = 16,98, arredondado para baixo), resultando em uma taxa real de 960 mensagens por minuto.

Páginas Relacionadas

Visão geral do push

Envie e gerencie notificações push móveis e web com OneSignal.

API de criação de notificação

Referência de API para criar e enviar notificações, incluindo a propriedade throttle_rate_per_minute.

Event Streams

Transmita eventos de entrega e engajamento para webhooks, Kinesis ou Pub/Sub.

OneSignal Service Worker

Configure o arquivo Service Worker para notificações push web.

Visão geral de Journeys

Crie fluxos de trabalho de mensagens em múltiplas etapas que respondem às ações do usuário.