Notificaciones push
Cómo funciona

En Web Shop, puede configurar notificaciones push: mensajes personales o masivos que los usuarios reciben directamente en su navegador. Las notificaciones push le permiten informar a los usuarios sobre nuevos artículos, promociones y ofertas especiales.
Para enviar una notificación a un usuario, por ejemplo, después de que pierda una batalla o se quede sin recursos, llame a la API de Xsolla para enviar notificaciones desde el servidor del juego.
Después de hacer clic en la notificación, el usuario va a la Web Shop, donde puede comprar los artículos que necesita.
Las notificaciones push se configuran en el creador de sitios web de Xsolla y solo funcionan en las Web Shop publicadas.
Xsolla no realiza un seguimiento de los eventos del juego. Usted define cuándo el servidor del juego realiza la llamada API para enviar una notificación, por ejemplo:
| Evento en el juego | Texto de la notificación push |
|---|---|
| Primer inicio de sesión del día, la semana o el mes. | ¡Nos alegra verte de nuevo! Consulta la Web Shop para ver tu regalo. |
| Perder una batalla. | ¡No te rindas! Compra potenciadores para tu héroe y toma tu revancha. |
| Quedarse sin energía o moneda. | ¿Te has quedado sin energía? Recárgala en la Web Shop y sigue jugando. |
| Nuevo contenido desbloqueado. | ¡Nivel nuevo desbloqueado! Compra potenciadores en la Web Shop para superarlo más fácilmente. |
| Varios intentos fallidos seguidos. | ¿Se te atraganta el jefe? Hazte con un lote de armas en la Web Shop y gana. |

Flujo de interacción
- El usuario abre la Web Shop en un navegador o a través de una PWA instalada y ve un banner que le ofrece la posibilidad de suscribirse a las notificaciones. 2. El usuario hace clic en Subscribe y autoriza las notificaciones en el mensaje del sistema del navegador.
Lógica de suscripción con la opción de solicitud automática de permiso habilitada
Si la opción de solicitud automática de permiso está habilitada en la configuración del sitio, Web Shop pide permiso para enviar notificaciones al abrirse, sin mostrar el banner de suscripción. Si el usuario ya ha concedido el permiso anteriormente, la suscripción se completa automáticamente. Si la solicitud falla (por ejemplo, porque el navegador la ha bloqueado o el usuario ha denegado el permiso), se muestra el banner de suscripción.
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]
La Web Shop registra al usuario como suscriptor en el sistema de Xsolla. La suscripción está vinculada al navegador o a la PWA instalada en el dispositivo del usuario. Las notificaciones que puede enviar al usuario dependen de su estado de autorización:
- Si el usuario ha iniciado sesión en la Web Shop, su ID queda vinculado a la suscripción, por lo que puede enviarle notificaciones personales.
- Si el usuario no ha iniciado sesión, solo se le pueden enviar notificaciones masivas; una vez que el usuario inicie sesión, la suscripción se vinculará automáticamente a su ID de usuario.
El servidor del juego realiza la llamada API de Xsolla para enviar notificaciones.
El usuario recibe la notificación push.
El usuario hace clic en la notificación y va a la Web Shop, a la página especificada en el parámetro
data.url, o a la página principal si no se transmite el parámetro. Si el usuario tiene una sesión activa en la Web Shop, permanece con la sesión iniciada.
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
Cómo obtenerlo
- Abra su proyecto en Cuenta del editor y vaya a Storefronts > Websites.
- En el panel del sitio correspondiente, haga clic en Open Site Builder.
- Vaya a la sección Push notifications.
- Active la opción Enable notifications.
- Copie los valores de los campos Application ID, Client ID y Client secret key; los necesitará para enviar solicitudes de API desde el servidor del juego. Estos parámetros se crean una sola vez, al activar por primera vez la opción Enable notifications, y se utilizan para todo el proyecto: si hay varios sitios en el proyecto, se utilizan los mismos valores para todos.
- Configure el banner de suscripción si es necesario: cambie el título, la descripción, el icono y el texto del botón.
- Para que el sitio solicite automáticamente el permiso del usuario para enviar notificaciones push al abrirse, active la opción Auto-request permission (opcional). Si la opción está desactivada, el permiso solo se solicitará después de que el usuario haga clic en el botón Subscribe.
- Para aplicar los cambios, publique el sitio.

- En el servidor del juego, implemente la lógica de envío de notificaciones push. El servidor del juego debe realizar la llamada API para enviar las notificaciones y transmitir el ID de usuario en la solicitud.
Envío de notificaciones
Xsolla no envía notificaciones de forma automática: el envío siempre lo inicia el servidor de su juego mediante una llamada API.
URL base: https://messaging-platform.xsolla.com
Autenticación
Las solicitudes se autentican mediante el protocolo OAuth 2.0. Obtenga un JWT del servidor utilizando la llamada API Generar JWT, transmitiendo los siguientes parámetros:
grant_type: tipo de concesión JWT, transmita el valorclient_credentialsclient_id: el valor del campo Client ID de la configuración de la sección Push notificationsclient_secret: el valor del campo Client secret key de la configuración de la sección Push notifications
Transmita el token recibido en el encabezado Authorization: Bearer <token>.
Enviar notificación al usuario
Envía una notificación push personalizada a un usuario mediante su ID. La notificación se envía a todos los navegadores y a las PWA instaladas en las que el usuario se haya suscrito a las notificaciones.
Solicitud HTTP
POST https://messaging-platform.xsolla.com/api/v1/messages/push/send
Encabezados de solicitud
| Encabezado | Obligatorio | Descripción |
|---|---|---|
| Authorization | Sí | Bearer <token> |
| Idempotency-Key | Sí | Clave de solicitud única. Evita que se envíe la misma notificación más de una vez. |
| Content-Type | Sí | application/json |
Parámetros de solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
app_id | string | ID de la aplicación en el lado de Xsolla, de la configuración de la sección Push notifications. Obligatorio. |
identity | object | Datos del destinatario de la notificación. |
external_user_id | string | ID de usuario. Obligatorio. |
title | string | Título de la notificación. Obligatorio. |
body | string | Texto de la notificación. Obligatorio. |
image_url | string | URL de la imagen que se muestra en la notificación. |
data | object | Datos adicionales de la notificación. |
url | string | URL de la página que se abre cuando el usuario hace clic en la notificación. Si no se transmite el parámetro, se abre la página principal de la Web Shop. |
Parámetros de respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
message_ids | array of strings | Lista de los ID de los mensajes enviados en formato UUID: uno por cada navegador o PWA instalada donde el usuario esté suscrito a las notificaciones. |
Ejemplo de solicitud
- 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}
Ejemplo de respuesta
- json
1{
2 "message_ids": [
3"aa8ef5c2-front-4a3b-9d2e-example00001",
4"bb9fa6d3-front-4b4c-8e3f-example00002"
5 ]
6}
Enviar notificación a todos los usuarios
Envía una notificación push a todos los usuarios suscritos o a los seleccionados. La notificación se envía a todos los navegadores y a las PWA instaladas en las que el usuario se haya suscrito a las notificaciones.
Solicitud HTTP
POST https://messaging-platform.xsolla.com/api/v2/messages/push/send_batch
Encabezados de solicitud
| Encabezado | Obligatorio | Descripción |
|---|---|---|
| Authorization | Sí | Bearer <token> |
| Idempotency-Key | Sí | Clave de solicitud única. Evita que se envíe la misma notificación más de una vez. |
| Content-Type | Sí | application/json |
Parámetros de solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
app_id | string | ID de la aplicación en el lado de Xsolla, de la configuración de la sección Push notifications. Obligatorio. |
recipients | object | Define los destinatarios de la notificación. |
type | string | Tipo de destinatario. Valores posibles: all (todos los suscriptores); external_user_id (usuarios seleccionados). |
external_user_id | array of strings | Matriz de los ID de usuario. Transmítala si el parámetro type tiene el valor external_user_id. Obligatorio. |
title | string | Título de la notificación. Obligatorio. |
body | string | Texto de la notificación. Obligatorio. |
image_url | string | URL de la imagen que se muestra en la notificación. |
data | object | Datos adicionales de la notificación. |
url | string | URL de la página que se abre cuando el usuario hace clic en la notificación. Si no se transmite el parámetro, se abre la página principal de la Web Shop. |
Parámetros de respuesta
Ejemplo de solicitud
Ejemplo de respuesta
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.