Les abonnements dans les expériences vous permettent d'offrir des avantages récurrents aux utilisateurs pour un forfait mensuel.Semblable à passes, la principale différence entre les abonnements et les passes est que les avantages d'un passe sont accordés en perpetuité, tandis que les avantages d'un abonnement sont conditionnels au paiement d'un forfait mensuel par l'utilisateur.Les abonnements sur Roblox ont les caractéristiques suivantes :
- Renouvellement automatique : Les abonnements sont renouvelés automatiquement, pas des achats uniques, et sont tarifés en monnaielocale.
- payeren Robux : Vous recevez des revenus d'abonnement en Robux. Pour plus de détails, voir Gagner avec des abonnements .
- Monocouche : Toutes les souscriptions dans une expérience peuvent être possédées par des utilisateurs simultanément.Les abonnements mutuellement exclusifs ne sont pas pris en charge.
Les utilisateurs peuvent acheter des abonnements sur l'application de bureau ou le site Web en utilisant le crédit de la carte cadeau Roblox ou une carte de crédit ou de débit, et via les méthodes de paiement sur les boutiques Apple et Google dans les régions éligibles.Les utilisateurs peuvent afficher et gérer leurs achats d'abonnement dans l'onglet abonnements dans leurs paramètres de compte Roblox.
Les abonnements seront déployés dans plus de régions à l'avenir. Les régions indisponibles incluent : Argentine, Colombie, Inde, Indonésie, Japon, Russie, Taïwan, Turquie (Turquie), Émirats arabes unis, Ukraine et Vietnam.
Lignes directrices d'abonnement
Avant de créer vos abonnements, assurez-vous qu'ils correspondent aux conditions d'utilisation de Roblox et qu'ils respectent les lois locales.Toute expérience qui se livre à des escroqueries, tente de tromper les utilisateurs avec des offres fausses ou enfreint autrement nos normes communautaires Community Standards sera supprimée.En outre, assurez-vous que vos abonnements respectent les directives suivantes :
- Fournir des options d'abonnement effaceret distinctives : Utilisez des noms courts, précis et explicites qui distinguent les options d'abonnement les unes des autres.Spécifiez le prix et la durée de chaque option lors de la commercialisation dans l'expérience.
- Offrez les mêmes avantages sur toutes les plates-formes et les appareils : Indépendamment de l'endroit où l'abonnement a été acheté, assurez-vous que l'utilisateur reçoit les mêmes avantages pour tout plan d'abonnement donné.
- Concevoir des abonnements pour s'adapter les uns aux autres et aux offres d'expérience globale : Le classement de la même série d'avantages, comme l'offre de niveaux "Bronze", "Argent" et "Or" mutuellement exclusifs, n'est pas actuellement disponible.Assurez-vous que les abonnements représentent des ensembles distincts d'avantages.
- Offrez les avantages pour la durée complète de l'abonnement : Une fois qu'une offre d'abonnement est en ligne, honorer les avantages décrits et ne pas révoquer les avantages derrière les scènes.
- Ne pas diriger les utilisateurs à acheter sur une autre plate-forme (par exemplemobile, web, etc.) dans l'expérience : Alors que vous êtes libre de communiquer avec des utilisateurs hors plate-forme, l'utilisation de l'application Roblox pour diriger les utilisateurs vers l'achat ailleurs est interdite.
- Ne pas limiter les avantages d'abonnement par des exigences supplémentaires une fois qu'un utilisateur a payant: Exiger qu'un utilisateur effectue des tâches supplémentaires, telles que la publication sur les réseaux sociaux, pour accéder aux avantages qu'il a payés est interdit.Cette directive n'a pas d'incidence sur les passes de combat, que vous pouvez créer et commercialiser à la fois comme acheterd'abonnement.
Créer des abonnements
Avant de pouvoir créer un abonnement, vous devez être téléphone ou ID vérifié. Pour créer un abonnement :
Naviguez dans votre expérience dans le tableau de bord du créateur et sélectionnez produits de monétisation > abonnements .Ensuite, cliquez sur Créer un abonnement .
Téléchargez une image de couverture pour votre abonnement. L'image est visible pour les autres après la modération.
Créez un nom de souscription unique Nom de souscription .Aucun abonnement dans une expérience ne peut partager le même nom.Ce nom d'abonnement apparaît aux côtés d'une version abrégée du nom de votre expérience dans les factures.Les caractères autorisés sont a-z, A-Z, 0-9, les espaces et .,:/!?@#&' .
Rédigez une description de votre abonnement.C'est ce que les utilisateurs voient lorsqu'ils décident d'acheter votre abonnement.Votre description doit décrire clairement les avantages que vos offres d'abonnement offrent.Les descriptions sont limitées à 1 000 caractères et prennent en charge les emojis.Une fois que vous activez un abonnement, vous ne pouvez pas réduire ses avantages.
Sélectionnez le type de produit d'abonnement Product Type . Il existe trois types de produits :
- Durable : Des articles permanents qui persistent après utilisation ou acquisition, comme des objets physiques comme des armes.Si une souscription inclut un ensemble de différents types de marchandises, avec l'une ou plusieurs d'entre elles durables, comme un pack de valeur avec une épée et une potion, choisissez durable comme taperde produit.
- Consommables : Objets réutilisables temporaires qui expirent après utilisation ou acquisition, tels que les potions consommables qui accordent des boosts temporaires qui expirent au fil du temps.
- Devise : Tout moyen d'échange que les utilisateurs peuvent utiliser pour acheter des articles dans votre expérience.
Sélectionnez le prix de votre abonnement (en USD).Vous gagnez des Robux en fonction du prix web.Les abonnés à l'application mobile sont facturés un prix plus élevé.Les abonnés sont facturés dans leur monnaielocale.
La cadence récurrente est la fréquence à laquelle l'utilisateur est facturé pour l'abonnement.Actuellement, cette valeur est toujours mensuelle.Cliquez sur Créer une souscription .
Vérifiez les détails et cliquez sur Créer .
Activer les souscriptions
Une fois qu'une souscription est prête à être mise en vente, cliquez sur ⋯ dans le coin supérieur droit de la case de souscription et sélectionnez Activer .Les abonnements activés sont disponibles à la vente sur la page Détails de l'expérience et dans l'expérience elle-même.

Avant d'activer votre abonnement pour la première fois, vous devez confirmer une version abrégée du nom de votre expérience.Ce nom d'expérience raccourci est affiché à l'utilisateur lorsqu'il s'abonne, apparaissant à côté du nom d'abonnement que vous avez créé dans Créer des abonnements.Il est également visible en gérant les abonnements dans Roblox et les paramètres de l'App Store.
Modifier les abonnements
Vous pouvez avoir jusqu'à 50 abonnements par expérience entre les abonnements actifs et inactifs.Pour modifier les abonnements, naviguez dans votre expérience dans le tableau de bord du créateur et sélectionnez produits de monétisation > abonnements .
Vous pouvez modifier l'image, la description ou l'état d'un abonnement.Si vous souhaitez modifier plus que ces propriétés, vous devez supprimer et recréer les abonnements avec les modifications souhaitées.
Changer d'image
Pour mettre à jour l'image d'un abonnement :
Avec l'abonnement sélectionné, cliquez sur le bouton modifier .
Choisissez une nouvelle image et cliquez sur Enregistrer , puis Enregistrer les modifications . La nouvelle image devient active après avoir réussi à passer la modération.
Changer la description
Pour modifier la description d'un abonnement :
- Avec l'abonnement sélectionné, cliquez sur le champ Description .
- Modifiez la description, puis cliquez sur enregistrer les modifications . Les descriptions sont limitées à 1 000 caractères et peuvent prendre en charge les emojis.
- Confirmez les modifications en cliquant sur Oui, confirmer dans la fenêtre de confirmation. Les mises à jour de description sont reflétées immédiatement.
Modifier l'état
Les abonnements ont deux états possibles :
- Actif — Les abonnements actifs sont disponibles à la offre, avec des abonnés pouvant renouveler leur abonnement au début du prochain période.
- Inactif — Les abonnements inactifs ne sont pas disponibles en offre.
Pour modifier l'état d'un abonnement :
- Sur la page Abonnements, cliquez sur ⋯ au coin supérieur droit de la case d'abonnement.Soit Activer ou Retirer de la vente les affichages, en fonction de l'état actuel de l'abonnement, aux côtés de quelques autres options.
- Sélectionnez Activer ou Retirer de la vente pour faire basculer l'état de l'abonnement.
- Si vous sélectionnez Retirer de la vente , vous aurez l'option de permettre aux abonnés existants de renouveler ou d'annuler les renouvellements futurs pour les abonnés actuels.En général, il est conseillé d'autoriser les abonnés existants à renouveler à moins que vous ne prévoyez de supprimer définitivement les avantages d'abonnement associés à votre expérience.
Intégrer des abonnements dans une expérience
Cet exemple de code est un simple exemple de la façon de mettre en œuvre la détection d'abonnement dans votre expérience :
-- Exécutez ce code sur le serveur
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Remplacer par l'ID de votre abonnement
local function grantAward(player: Player)
-- Vous devez attribuer le prix associé à l'abonnement ici
end
local function revokeAwardIfGranted(player: Player)
-- Cette méthode est appelée pour chaque joueur qui ne possède pas d'abonnement _not_
-- Si votre code enregistre des abonnements dans des magasins de données ou fournit un avantage qui doit être « révoqué »
-- vous devez utiliser cette méthode pour gérer la révocation
end
local function checkSubStatus(player)
local success, response = pcall(function()
return MarketplaceService:GetUserSubscriptionStatusAsync(player, SUBSCRIPTION_ID)
end)
if not success then
warn(`Error while checking if player has subscription: {response}`)
return
end
if response.IsSubscribed then
grantAward(player)
else
revokeAwardIfGranted(player)
end
end
local function onUserSubscriptionStatusChanged(player: Player, subscriptionId: string)
if subscriptionId == SUBSCRIPTION_ID then
checkSubStatus(player)
end
end
Players.PlayerAdded:Connect(checkSubStatus)
Players.UserSubscriptionStatusChanged:Connect(onUserSubscriptionStatusChanged)
Remplacer un passe de jeu par un abonnement
Une option pour déployer des abonnements dans votre expérience consiste à remplacer un passe de jeu existant par un abonnement.C'est une excellente option si vous souhaitez rapidement implémenter des abonnements dans votre expérience sans ajouter de nouvelles fonctionnalités ou récompenses.
Il y a deux considérations importantes lors du remplacement d'un passe de jeu par un abonnement :
- Tous les détenteurs existants du passe de jeu devraient continuer à recevoir l'avantage qu'ils ont payé.
- Le passe de jeu devrait être retiré de vente afin que de nouveaux utilisateurs puissent acheter l'abonnement à la place.
- Les abonnements peuvent être révoqués, ce qui signifie que si votre passe de jeu a précédemment persisté ses avantages dans un boutiquede données, vous devez « annuler » ces avantages.Cette considération ne s'applique pas à toutes les implémentations de passe de jeu, mais pourrait s'appliquer à des plus complexes.
L'exemple de code suivant montre comment remplacer un passe de jeu par un abonnement :
-- Exécutez ce code sur le serveur
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local LEGACY_GAME_PASS_ID = 1234 -- Remplacer par l'ID du passe de jeu remplacé par un abonnement
local SUBSCRIPTION_ID = "EXP-11111111" -- Remplacer par l'ID de votre abonnement
local function awardBenefit(player: Player)
-- Vous devez attribuer l'abonnement ici
end
local function revokeBenefitIfGranted(player: Player)
-- Cette méthode est appelée pour chaque joueur qui ne possède pas d'abonnement _not_
-- Si votre code enregistre des abonnements dans des magasins de données ou fournit un avantage qui doit être « révoqué »
-- vous devez utiliser cette méthode pour gérer la révocation
end
local function checkSubscriptionStatus(player: Player)
local success, result = pcall(function()
return MarketplaceService:GetUserSubscriptionStatusAsync(player, SUBSCRIPTION_ID)
end)
if not success then
print(`Error fetching subscription status: {result}`)
return
end
if result.IsSubscribed then
awardBenefit(player)
else
revokeBenefitIfGranted(player)
end
end
local function onPlayerAdded(player: Player)
local success, result = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, LEGACY_GAME_PASS_ID)
end)
if not success then
print(`Error fetching game pass status: {result}`)
return
end
if result then
-- Si le joueur a acheté le passe de jeu hérité, nous n'avons pas besoin de rechercher leur statut d'abonnement
-- comme ils ont l'avantage accordé à vie
awardBenefit(player)
return
end
checkSubscriptionStatus(player)
end
local function onUserSubscriptionStatusChanged(player: Player, subscriptionId: string)
if subscriptionId == SUBSCRIPTION_ID then
checkSubscriptionStatus(player)
end
end
local function onPromptGamePassPurchaseFinished(player: Player, purchasedPassID: number, purchaseSuccess: boolean)
if purchaseSuccess and purchasedPassID == LEGACY_GAME_PASS_ID then
awardBenefit(player)
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
Players.UserSubscriptionStatusChanged:Connect(onUserSubscriptionStatusChanged)
-- Nous continuerons à écouter les achats de passes de jeu en jeu en cas de offredu passe de jeu
MarketplaceService.PromptGamePassPurchaseFinished:Connect(onPromptGamePassPurchaseFinished)
Achats d'abonnement rapides
Bien que les utilisateurs puissent acheter des abonnements directement à partir de la page détails du jeu d'une expérience, vous devez également ajouter un moyen d'acheter un abonnement dans le jeu.
Lorsque vous demandez un acheterd'abonnement, Players.UserSubscriptionStatusChanged se déclenche si le joueur possède déjà l'abonnement, ce qui aide à capturer des scénarios où un joueur achète un abonnement à partir de la page Détails du jeu alors qu'il est déjà dans le jeu.
Bien que vous puissiez demander un achat d'abonnement au client, vérifier si un utilisateur a déjà un abonnement via MarketplaceService.GetUserSubscriptionStatusAsync doit être effectué depuis le serveur.
Cet exemple crée un RemoteFunction que le client peut utiliser pour demander l'état d'un abonnement :
--Ce code doit s'exécuter sur le serveur
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Créer une fonction à distance que le client peut utiliser pour demander l'état d'statut
local getSubscriptionStatusRemote = Instance.new("RemoteFunction")
getSubscriptionStatusRemote.Name = "GetSubscriptionStatus"
getSubscriptionStatusRemote.Parent = ReplicatedStorage
getSubscriptionStatusRemote.OnServerInvoke = function(player: Player, subscriptionId: string)
assert(typeof(subscriptionId) == "string")
return MarketplaceService:GetUserSubscriptionStatusAsync(player, subscriptionId)
end
-- Ce code doit s'exécuter sur le client
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Remplacer par l'ID de votre abonnement
local getSubscriptionStatusRemote = ReplicatedStorage:WaitForChild("GetSubscriptionStatus")
local purchaseSubscriptionButton = script.Parent.PromptPurchaseSubscription -- Remplacer par votre bouton
local function playerHasSubscription()
-- Notez si votre abonnement remplace un passe de jeu, vous devrez vérifier si le passe de jeu est également possédé ici
local success, result = pcall(function()
return getSubscriptionStatusRemote:InvokeServer(SUBSCRIPTION_ID)
end)
if not success then
print(`Error fetching subscription status: {result}`)
return
end
return result.IsSubscribed
end
-- Masque le bouton si le joueur a déjà l'abonnement
local function hideButtonIfPlayerHasSubscription()
if playerHasSubscription() then
purchaseSubscriptionButton.Visible = false
end
end
local function onPromptSubscriptionPurchaseFinished(player: Player, subscriptionId: string, didTryPurchasing: boolean)
if didTryPurchasing then
-- Il peut falloir un certain temps pour que l'abonnement soit enregistré, alors nous vérifierons si l'achat a été effectué en 10 secondes
-- et cacher le bouton s'il a
task.delay(10, hideButtonIfPlayerHasSubscription)
end
end
-- Si le joueur a déjà l'abonnement, nous ne voulons pas montrer le bouton du tout
hideButtonIfPlayerHasSubscription()
purchaseSubscriptionButton.Activated:Connect(function()
MarketplaceService:PromptSubscriptionPurchase(Players.LocalPlayer, SUBSCRIPTION_ID)
-- Si le joueur a déjà l'abonnement, cachez le bouton
hideButtonIfPlayerHasSubscription()
end)
MarketplaceService.PromptSubscriptionPurchaseFinished:Connect(onPromptSubscriptionPurchaseFinished)
Autres fonctions pertinentes
D'autres fonctions pertinentes sont disponibles dans MarketplaceService :
Gagner avec des abonnements
Les abonnements sont facturés en monnaielocale, mais vous gagnez des Robux à un taux de 0,01 $ à 1 Robux selon le prix de la plate-forme de base que vous avez sélectionné pour l'abonnement après les frais de plate-forme.Roblox facture des frais de plate-forme de 30 % pour le premier mois seulement, ce qui signifie que vous recevez les revenus d'abonnement complets à partir du deuxième mois.Cette répartition des revenus est cohérente sur toutes les plates-formes.
Par exemple, si un utilisateur s'abonne au prix de base de 9,99 $ (bureau) ou 12,99 $ (mobile) :
- Premier mois : Le créateur de l'abonnement reçoit 999 * .7 = 699 (bureau) ou 1299 * .7 = 909 (mobile).
- Deuxième mois et suivant : Le créateur de l'abonnement reçoit (bureau) ou (mobile).
Les gains sont soumis à des retards de 30 jours et seront ajoutés à votre solde Robux après la fin du terme de l'abonnement.Si un utilisateur demande un remboursement pour un abonnement via sa banque ou son magasin d'applications au cours de la période de retenue de un mois, la retenue sera annulée et vous ne recevrez pas le paiement pour cette transaction.
Les remboursements reçus en dehors de la fenêtre de retenue entraîneront la déduction du montant du paiement de la transaction remboursée de votre solde Robux.Si votre expérience appartient à un groupe et que le solde du groupe est inférieur au montant à déduire, le reste sera déduit du solde du propriétaire du groupe en Robux.
Les utilisateurs qui annulent un abonnement actif et qui n'arrivent pas à le renouveler n'obtiennent pas automatiquement un remboursement.L'utilisateur doit demander manuellement des remboursements, qui sont gérés sur une base cas par cas.Pour plus d'informations sur le processus de remboursement des abonnements utilisateur, consultez le centre d'aide.
Paiements d'abonnement
Les paiements sont trouvés dans Robux Balance > Mes transactions :

Abonnements et paiements de groupe apparaissent sous entrants Robux, tandis que les remboursements sont regroupés sous sortants Robux en tant que réversal de paiement .Les pages abonnements et abonnements de groupe fournissent des informations supplémentaires pour leurs catégories respectives.

Pour afficher les informations de remboursement des utilisateurs individuels, utilisez MarketplaceService:GetUserSubscriptionPaymentHistoryAsync() .
Analyses d'abonnement
L'analyse des abonnements vous aide à évaluer le succès des abonnements individuels, à identifier les tendances et à prévoir les gains futurs potentiels.Les abonnements sont ajoutés à la page d'analyse des abonnements après la première fois qu'ils sont activés et ne sont pas supprimés lorsqu'ils sont désactivés ou supprimés.Vous pouvez accéder à des analyses prêtes à l'emploi via le tableau de bord du créateur, ou vous pouvez capturer les mises à jour d'abonnement en temps réel en utilisant des webhooks.
À travers le tableau de bord du créateur
Pour accéder à l'analyse des abonnements sur le tableau de bord du créateur :
Accédez à votre page créations sur tableau de bord du créateur et sélectionnez votre expérience.
Accédez à l'onglet Monétisation et sélectionnez Abonnements .
L'analyse des abonnements suit les métriques suivantes :
- Abonnements : Le montant total des abonnements actifs dans votre expérience.
- Revenu estimé : Le revenu net gagné par les expériences après les frais. Ne comprend pas d'information de remboursement.
- Répartition des abonnés : Les différents types d'abonnés.
- Nouveau : Le nombre d'achats d'abonnement par les premiers abonnés.
- Renouvelé : Le nombre d'abonnements renouvelés achetés dans une période antérieure.
- Résurrection : Le nombre de nouvelles souscriptions achetées par des utilisateurs qui avaient précédemment annulé.
- Annulations : Le nombre d'abonnements qui n'ont pas été renouvelés.Cela inclut toutes les annulations, indépendamment du déclencheur, que ce soit l'annulation de l'utilisateur, la désactivation d'abonnement par le créateur ou par d'autres moyens.
- Les annulations sont différentes des remboursements.Les abonnements annulés sont des abonnements qui ne se renouvelleront plus mais qui seront payés en totalité pour le reste du cycle de facturation, tandis que les remboursements retournent le montant de l'abonnement payé à l'utilisateur.
- Abonnements par plate-forme : Le nombre d'abonnements achetés sur chaque plateforme.
- Gains de plate-forme : Le revenu net gagné grâce aux abonnements achetés sur chaque plateforme.
Cette information est visible sous forme de tableaux basés sur une plage de dates dans l'onglet tendances et d'une liste complète d'abonnements totaux offerts dans l'onglet histoire .

Par le biais de webhooks
La fonctionnalité Webhook de l'API du cloud inclut des déclencheurs pour quatre événements d'abonnement : annulé, acheté, remboursé et renouvelé.Ces notifications se déclenchent immédiatement, vous pouvez donc réagir en temps réel ou créer vos propres analyses personnalisées.Pour plus d'informations sur la façon de configurer un webhook, voir notifications de webhook.