Notificações push
Como funciona

Na Web Shop, você pode configurar notificações push — mensagens pessoais ou em massa que os usuários recebem diretamente em seu navegador. As notificações push permitem que você informe os usuários sobre novos itens, promoções e ofertas especiais.
Para enviar uma notificação a um usuário — por exemplo, após ele perder uma batalha ou ficar sem recursos — chame a API Xsolla para enviar notificações no lado do servidor do jogo.
Após clicar na notificação, o usuário é direcionado à Web Shop, onde pode comprar os itens de que precisa.
As notificações push são configuradas no Xsolla Site Builder e funcionam apenas para Web Shops publicadas.
A Xsolla não rastreia eventos no jogo. Você define quando o servidor do jogo faz a chamada de API para enviar uma notificação, por exemplo:
| Evento no jogo | Texto da notificação push |
|---|---|
| Primeiro login do dia, semana ou mês. | Bem-vindo de volta! Confira a Web Shop para receber seu presente. |
| Perdendo uma batalha. | Não desista! Compre reforços para seu herói e tenha sua vingança! |
| Ficando sem energia ou moeda. | Sem energia? Recarregue na Web Shop e continue jogando! |
| Novo conteúdo desbloqueado. | Novo nível desbloqueado! Compre reforços na Web Shop para vencê-lo mais fácil. |
| Várias tentativas fracassadas seguidas. | Chefe difícil? Um conjunto de armas para ajudá-lo a vencer está te esperando na Web Shop. |

Fluxo de interação
- O usuário abre a Web Shop em um navegador ou via um PWA instalado e vê um banner oferecendo a assinatura de notificações.
- O usuário clica em Subscribe e permite notificações no prompt do sistema do navegador.
Lógica de assinatura com a opção de permissão de solicitação automática ativada
Se a opção de permissão de solicitação automática estiver ativada nas configurações do site, a Web Shop solicita permissão para enviar notificações ao ser aberta, sem exibir o banner de assinatura. Se o usuário já tiver concedido permissão antes, a assinatura é concluída automaticamente. Se a solicitação falhar (por exemplo, o navegador a bloqueou ou o usuário negou permissão), o banner de assinatura é exibido.
flowchart LR
A[User opens Web Shop] --> B{Permission already granted?}
B -- Yes --> C[Automatic subscription]
B -- No --> D{Can the browser show the system prompt?}
D -- Yes --> E[System prompt]
D -- No --> F[Subscribe banner]
F --> E
E -- Allow --> G[Subscribed]
E -- Block --> H[Not subscribed]
A Web Shop registra o usuário como assinante no sistema da Xsolla. A assinatura é vinculada ao navegador ou ao PWA instalado no dispositivo do usuário. As notificações que você pode enviar ao usuário dependem do status de autorização dele:
- Se o usuário estiver logado na Web Shop, seu ID é vinculado à assinatura — você pode enviar notificações pessoais para esse usuário.
- Se o usuário não estiver logado, você só pode enviar notificações em massa; após o usuário fazer login, a assinatura é automaticamente vinculada ao ID do usuário.
O servidor do jogo faz a chamada da API Xsolla para enviar notificações.
O usuário recebe a notificação push.
O usuário clica na notificação e acessa a Web Shop — para a página especificada no parâmetro
data.url, ou para a página principal se o parâmetro não for passado. Se o usuário tiver uma sessão ativa na Web Shop, ele permanece logado.
sequenceDiagram
participant U as User
participant WS as Web Shop
participant G as Game
participant X as Xsolla
note over U,X: Subscription
U->>WS: Opens the site / PWA
WS->>U: Displays the subscription banner
U->>WS: Subscribes and allows notifications
WS->>X: Registers the subscriber (User ID, browser / PWA)
X-->>WS: Confirms the subscription
note over U,X: Sending a notification
G->>X: Calls POST /messages/push/send
X-->>G: Returns message_id
X->>U: Sends the push notification
U->>WS: Clicks the notification, follows data.url
WS->>U: Displays store offers
Como obter
- Abra seu projeto na Conta de Distribuidor e acesse a seção Storefronts > Websites.
- No painel do site desejado, selecione Open Site Builder.
- Acesse a seção Push notifications.
- Ative a opção Enable notifications.
- Copie os valores dos campos Application ID, Client ID e Client secret key — você precisará deles para enviar solicitações de API do servidor do jogo. Os parâmetros são criados uma vez, quando a opção Enable notifications é ativada pela primeira vez, e são usados para todo o projeto: se houver vários sites no projeto, os mesmos valores são usados para todos eles.
- Configure o banner de assinatura, se necessário: altere o título, descrição, ícone e texto do botão.
- Para que o site solicite automaticamente a permissão do usuário para enviar notificações push ao ser aberto, ative a opção Auto-request permission (opcional). Se a opção estiver desativada, a permissão é solicitada apenas após o usuário pressionar o botão Subscribe.
- Para aplicar as alterações, publique o site.

- No servidor do jogo, implemente a lógica de envio de notificações push. O servidor do jogo deve fazer a chamada de API para enviar notificações e passar o ID do usuário na solicitação.
Enviando notificações
A Xsolla não envia notificações automaticamente — o envio é sempre iniciado pelo servidor do seu jogo via chamada de API.
URL base: https://messaging-platform.xsolla.com
Autenticação
As solicitações são autenticadas via o protocolo OAuth 2.0. Obtenha um JWT do servidor usando a chamada de API Generate JWT, passando os seguintes parâmetros:
grant_type— tipo de concessão JWT, passe o valorclient_credentialsclient_id— o valor do campo Client ID nas configurações da seção Push notificationsclient_secret— o valor do campo Client secret key nas configurações da seção Push notifications
Passe o token recebido no cabeçalho Authorization: Bearer <token>.
Enviar notificação para o usuário
Envia uma notificação push pessoal para um usuário pelo ID dele. A notificação é entregue a todos os navegadores e PWAs instalados onde o usuário se inscreveu para receber notificações.
Solicitação HTTP
POST https://messaging-platform.xsolla.com/api/v1/messages/push/send
Cabeçalhos da solicitação
| Cabeçalho | Obrigatório | Descrição |
|---|---|---|
| Authorization | Sim | Bearer <token> |
| Idempotency-Key | Sim | Chave de solicitação única. Protege contra o envio da mesma notificação mais de uma vez. |
| Content-Type | Sim | application/json |
Parâmetros da solicitação
| Parâmetro | Tipo | Descrição |
|---|---|---|
app_id | string | ID de Aplicativo no lado da Xsolla, das configurações da seção Push notifications. Obrigatório. |
identity | object | Dados do destinatário da notificação. |
external_user_id | string | ID do Usuário. Obrigatório. |
title | string | Título da notificação. Obrigatório. |
body | string | Texto da notificação. Obrigatório. |
image_url | string | URL da imagem exibida na notificação. |
data | object | Dados adicionais da notificação. |
url | string | URL da página que abre quando o usuário clica na notificação. Se o parâmetro não for passado, a página principal da Web Shop será aberta. |
Parâmetros da resposta
| Parâmetro | Tipo | Descrição |
|---|---|---|
message_ids | array de strings | Lista de IDs de mensagens enviadas no formato UUID — uma para cada navegador ou PWA instalado onde o usuário está inscrito para notificações. |
Exemplo de solicitação
- json
1{
2 "notification_type": "user_validation",
3 "settings": {
4 "project_id": 123456,
5 "merchant_id": 789012
6 },
7 "user": {
8 "id": "11111111-1111-1111-1111-111111111111"
9 }
10}
Exemplo de resposta
- json
1{
2 "message_ids": [
3"aa8ef5c2-front-4a3b-9d2e-example00001",
4"bb9fa6d3-front-4b4c-8e3f-example00002"
5 ]
6}
Enviar notificação para todos os usuários
Envia uma notificação push para todos ou para usuários inscritos específicos. A notificação é entregue a todos os navegadores e PWAs instalados onde o usuário se inscreveu para receber notificações.
Solicitação HTTP
POST https://messaging-platform.xsolla.com/api/v2/messages/push/send_batch
Cabeçalhos da solicitação
| Cabeçalho | Obrigatório | Descrição |
|---|---|---|
| Authorization | Sim | Bearer <token> |
| Idempotency-Key | Sim | Chave de solicitação única. Protege contra o envio da mesma notificação mais de uma vez. |
| Content-Type | Sim | application/json |
Parâmetros da solicitação
| Parâmetro | Tipo | Descrição |
|---|---|---|
app_id | string | ID de Aplicativo no lado da Xsolla, das configurações da seção Push notifications. Obrigatório. |
recipients | object | Define os destinatários da notificação. |
type | string | Tipo de destinatário. Valores possíveis: all — todos os assinantes; external_user_id — usuários selecionados. |
external_user_id | array de strings | Matriz de IDs de Usuários. Passe-a se o parâmetro type estiver definido como external_user_id. Obrigatório. |
title | string | Título da notificação. Obrigatório. |
body | string | Texto da notificação. Obrigatório. |
image_url | string | URL da imagem exibida na notificação. |
data | object | Dados adicionais da notificação. |
url | string | URL da página que abre quando o usuário clica na notificação. Se o parâmetro não for passado, a página principal da Web Shop será aberta. |
Parâmetros da resposta
Exemplo de solicitação
Exemplo de resposta
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.