Notifications push
Comment ça marche

Dans le Web Shop, vous pouvez configurer des notifications push : des messages personnels ou envoyés en masse que les utilisateurs reçoivent directement dans leur navigateur. Elles vous permettent de les informer des nouveaux objets, nouvelles promotions et offres spéciales.
Pour envoyer une notification à un utilisateur, par exemple, après la perte d’une bataille ou l’épuisement d’une ressource, appelez l’API Xsolla d’envoi de notifications côté serveur du jeu.
En appuyant sur la notification, l’utilisateur est redirigé vers le Web Shop pour acheter les objets dont il a besoin.
Les notifications push sont configurées dans le constructeur de site Xsolla et fonctionnent uniquement pour les Web Shops publiés.
Xsolla ne suit pas les événements en jeu. Vous définissez quand le serveur du jeu doit appeler l’API pour envoyer une notification, par exemple :
| Événement en jeu | Texte de la notification push |
|---|---|
| Première connexion de la journée, semaine ou mois. | Bon retour ! Consultez le Web Shop pour récupérer votre cadeau. |
| Perte d’une bataille. | Ne vous découragez pas ! Achetez des power-ups pour votre héros et prenez votre revanche ! |
| Manque d’énergie ou de monnaie. | Plus d’énergie ? Rechargez-la dans le Web Shop et continuez à jouer ! |
| Nouveau contenu débloqué. | Nouveau niveau débloqué ! Achetez des power-ups dans le Web Shop pour progresser plus facilement. |
| Plusieurs tentatives échouées d’affilée. | Boss difficile ? Un lot d’armes pour vous aider à gagner vous attend dans le Web Shop.. |

Flux d’interaction
- L’utilisateur ouvre le Web Shop dans un navigateur ou via une PWA installée et voit une bannière l’invitant à s’abonner aux notifications.
- L’utilisateur appuie sur S’abonner et autorise les notifications dans l’invite système du navigateur.
Logique d'abonnement avec demande automatique de permission activée
Lorsque l'option de demande automatique de permission est activée dans les paramètres du site, le Web Shop demande l'autorisation d'envoyer des notifications à l'ouverture, sans afficher de bannière d'abonnement. Si l'utilisateur a déjà donné son accord, l'abonnement est activé automatiquement. En cas d'échec (blocage du navigateur ou refus de l'utilisateur), la bannière d'abonnement est affichée.
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]
Le Web Shop enregistre l’utilisateur comme abonné dans Xsolla. L’abonnement est lié au navigateur ou à la PWA installée sur son appareil. Le type de notifications disponibles dépend de son statut :
- Utilisateur connecté au Web Shop : l’abonnement est lié à son ID et permet l’envoi de notifications personnalisées.
- Utilisateur non connecté : seules les notifications en masse sont disponibles. L’abonnement sera automatiquement associé à son ID après connexion.
Le serveur du jeu effectue l’appel API Xsolla pour envoyer des notifications.
L’utilisateur reçoit la notification push.
L’utilisateur appuie sur la notification et accède au Web Shop à l’adresse indiquée dans le paramètre
data.urlou par défaut à la page d’accueil. Si l’utilisateur dispose d’une session active dans le Web Shop, il reste connecté.
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
Comment configurer
- Ouvrez le projet dans le Compte éditeur et accédez à la section Storefronts > Websites.
- Dans le volet du site souhaité, appuyez sur Open Site Builder.
- Accédez à la section Push notifications.
- Activez la bascule Enable notifications.
- Copiez les valeurs des champs Application ID, Client ID et Client secret key : elles seront nécessaires pour envoyer des requêtes API depuis le serveur du jeu. Ces paramètres sont créés une seule fois, lors de la première activation de la bascule Enable notifications, et sont utilisés pour l’ensemble du projet. Si le projet contient plusieurs sites, les mêmes valeurs sont utilisées pour chacun d’eux.
- Configurez la bannière d’abonnement si nécessaire : modifiez le titre, la description, l’icône et le texte du bouton.
- Pour que le site demande automatiquement la permission de l’utilisateur d’envoyer des notifications push à l’ouverture, activez la bascule Auto-request permission (facultatif). Si cette option est désactivée, l’autorisation sera demandée uniquement après que l’utilisateur a appuyé sur le bouton Subscribe.
- Pour appliquer les modifications, publiez le site.

- Sur le serveur du jeu, implémentez la logique d’envoi des notifications push. Le serveur du jeu doit effectuer l’appel API pour envoyer des notifications et passer l’ID utilisateur dans la requête.
Envoi de notifications
Xsolla n’envoie pas automatiquement de notifications : l’envoi est toujours déclenché par votre serveur de jeu via un appel API.
URL de base : https://messaging-platform.xsolla.com
Authentification
Les requêtes sont authentifiées via le protocole OAuth 2.0. Obtenez un JWT serveur en utilisant l’appel API Generate JWT , en passant les paramètres suivants :
grant_type— type de jeton JWT, passez la valeurclient_credentialsclient_id— valeur du champ Client ID des paramètres de la section Push notificationsclient_secret— valeur du champ Client secret key des paramètres de la section Push notifications
Passez le jeton reçu dans l’en-tête Authorization: Bearer <token>.
Envoyer une notification à un utilisateur
Envoie une notification push personnelle à un utilisateur par son ID. La notification est distribuée à tous les navigateurs et PWA installées où l’utilisateur s’est abonné aux notifications.
Requête HTTP
POST https://messaging-platform.xsolla.com/api/v1/messages/push/send
En-têtes de requête
| En-tête | Requis | Description |
|---|---|---|
| Autorisation | Oui | <Token> Bearer |
| Idempotency-Key | Oui | Clé de requête unique. Empêche l’envoi de la même notification plusieurs fois. |
| Content-Type | Oui | application/json |
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
app_id | string | ID d’application côté Xsolla, des paramètres de la section Push notifications. Requis. |
identity | object | Données du destinataire de la notification. |
external_user_id | string | ID utilisateur. Requis. |
title | string | Titre de la notification. Requis. |
body | string | Texte de la notification. Requis. |
image_url | string | URL de l’image affichée dans la notification. |
data | object | Données supplémentaires de la notification. |
url | string | URL de la page qui s’ouvre lorsque l’utilisateur appuie sur la notification. Si le paramètre n’est pas passé, la page principale du Web Shop s’ouvre. |
Paramètres de réponse
| Paramètre | Type | Description |
|---|---|---|
message_ids | array of strings | Liste des ID de messages envoyés au format UUID, un pour chaque navigateur ou PWA installée où l’utilisateur est abonné aux notifications. |
Exemple de requête
- 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}
Exemple de réponse
- json
1{
2 "message_ids": [
3"aa8ef5c2-front-4a3b-9d2e-example00001",
4"bb9fa6d3-front-4b4c-8e3f-example00002"
5 ]
6}
Envoyer une notification à tous les utilisateurs
Envoie une notification push à tous à une sélection d’utilisateurs. La notification est distribuée à tous les navigateurs et PWA installées où l’utilisateur s’est abonné aux notifications.
Requête HTTP
POST https://messaging-platform.xsolla.com/api/v2/messages/push/send_batch
En-têtes de requête
| En-tête | Requis | Description |
|---|---|---|
| Autorisation | Oui | <Token> Bearer |
| Idempotency-Key | Oui | Clé de requête unique. Empêche l’envoi de la même notification plusieurs fois. |
| Content-Type | Oui | application/json |
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
app_id | string | ID d’application côté Xsolla, des paramètres de la section Push notifications. Requis. |
recipients | object | Définit les destinataires de la notification. |
type | string | Type de destinataire. Valeurs possibles : all — tous les abonnés ; external_user_id — utilisateurs sélectionnés. |
external_user_id | array of strings | Tableau des IDs utilisateurs. Passez-le si le paramètre type est défini sur external_user_id. Requis. |
title | string | Titre de la notification. Requis. |
body | string | Texte de la notification. Requis. |
image_url | string | URL de l’image affichée dans la notification. |
data | object | Données supplémentaires de la notification. |
url | string | URL de la page qui s’ouvre lorsque l’utilisateur clique sur la notification. Si le paramètre n’est pas passé, la page principale du Web Shop s’ouvre. |
Paramètres de réponse
Exemple de requête
Exemple de réponse
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entrée.