Las suscripciones dentro de las experiencias te permiten ofrecer a los usuarios beneficios recurrentes por una tarifa mensual. Esto es similar a los pases , la principal diferencia entre las suscripciones y los pases es que los beneficios de un pase se otorgan en perpetuidad, mientras que los beneficios de una suscripción están condicionados a que el usuario pague una tarifa mensual. Las suscripciones en Roblox tienen las siguientes características:
- Auto-renovación: Las suscripciones se renuevan automáticamente, no son compras únicas y se facturan en moneda local.
- Pago de Robux: Recibe ingresos de suscripción en Robux. Para más detalles, see Ganar con suscripciones .
- Single-Tiered: Todas las suscripciones dentro de una experiencia pueden ser propiedad de los usuarios simultáneamente. Las suscripciones mutuamente exclusivas no se admiten.
Los usuarios pueden comprar suscripciones en la aplicación o el sitio web del escritorio usando créditos de tarjeta de regalo de Roblox o una tarjetas regalode crédito o débito, y a través de los métodos de pago en las tiendas Apple y Google en regiones calificadas. Los usuarios pueden ver y administrar sus compras de suscripciones en la pestaña Suscripciones en la configuración de su cuenta Roblox.
Las suscripciones se desplegarán a más regiones en el futuro. Las regiones no disponibles incluyen: Argentina, Colombia, India, Indonesia, Japón, Rusia, Tailandia, Türkiye (Turquía), UAE, Ucrania y Vietnam.
Mejores prácticas de suscripciones
Antes de crear sus suscripciones, asegúrese de que coinciden con los Términos de uso de Roblox y cumplen con las leyes locales. Cualquier experiencia que se envuelva en estafas, intente engañar a los usuarios con ofertas falsas o de otra manera violar nuestros estándares de la comunidad será eliminado. Además, asegúrese de que sus suscripciones cumplan con las siguientes directrices:
- Proporcione opciones de suscripción borrar, distingibles y de fácil comprensión: Usa nombres cortos, concisos y de fácil comprensión que sirven para diferenciar las opciones de suscripción entre sí. Especifique el precio y la duración de cada opción al comprar en la experiencia.
- Ofrecer los mismos beneficios en todas las plataformas y dispositivos: Independientemente de dónde se compró la suscripción, asegúrese de que el usuario reciba los mismos beneficios para cualquier plan de suscripción dado.
- Diseña subscripciones para encajar con las demás ofertas de experiencia y subidas de nivel: La clasificación de las mismas ventajas, como ofrecer "Bronze", "Silver" y "Gold", que son niveles mutuamente exclusivos, no está disponible actualmente. Asegúrese de que las subscripciones representen conjuntos de ventajas distintos.
- Ofrecer los beneficios durante todo el término de la suscripción: Una vez que una oferta de suscripción esté en sitio activo, honor los beneficios descritos y no revocar los beneficios detrás de los bastidores.
- No dirija a los usuarios a comprar en otra plataforma (por ejemplo, móvil, web, etc.) en la experiencia: Mientras que está libre de comunicarse con los usuarios fuera de la plataforma, usando el servicio de aplicaciones Roblox para dirigir a los usuarios a comprar en otras plataformas está prohibido.
- No vence los beneficios de la suscripción con requisitos adicionales una vez que el usuario ha patrocinado: Requiere a un usuario que realice tareas adicionales, como publicar en redes sociales, para tener acceso a los beneficios que ha pagado. Esta guía no afecta a los pases de batalla, que se permiten crear y vender como una comprarde suscripción.
Creando Suscripciones
Antes de que pueda crear una suscripción, debe ser un teléfono o verificado ID . Para crear una suscripción:
Navegue a su experiencia en el Panel de control del creador y seleccione Productos de monetización > Suscripciones . Luego haga clic en 2>Crear una suscripción2>.
Sube una imagen de portada para tu suscripción. La imagen es visible para otros después de la moderación.
Crear un nombre de suscripción único. No dos suscripciones dentro de una experiencia pueden compartir el mismo nombre. Este nombre de suscripción aparece junto con una versión abreviada de su nombre de experiencia en los estados de facturación. Los caracteres permitidos son a-z, A-Z, 0-9, espacios y .,:/!?@#' /!?#' /!?#' /!?#' /!?#' /!?#' /!?#' /!?#
Escribe una Descripción de tu suscripción. Esto es lo que los usuarios ven cuando deciden comprar tu suscripción. Tu descripción debe describir claramente qué beneficios ofrece tu suscripción. Las descripciones están limitadas a 1,000 caracteres y soportan emojis. Una vez que activas una suscripción, no puedes reducir sus beneficios.
Seleccione la suscripción Tipo de producto . Hay tres tipos de productos:
- Durable: artículos permanentes que persisten después del uso o la adquisición, como artículos físicos como armas. Si una suscripción incluye un paquete de diferentes tipos de bienes, con uno o más de ellos durables, como un paquete de valor con una espada y una poción, elige Durable como su introducirde producto.
- Consumible: artículos temporales de recompra que expiran después del uso o adquisición, como pociones consumibles que brindan aumentos temporales que expiran con el tiempo.
- Moneda: Cualquier medio de intercambio que los usuarios puedan usar para comprar artículos dentro de tu experiencia.
Seleccione el precio de su suscripción (en USD). Gana Robux basado en el precio web. Los suscriptores de aplicaciones móviles se facturan un precio más alto. Los suscriptores se facturan en su moneda local.
La cadencia recurrente es con qué frecuencia se le cobra el usuario por la suscripción. Actualmente, este valor siempre es mensual. Haga clic en Crear suscripción .
Mira dos veces los detalles y haz clic en Crear .
Activando Suscripciones
Una vez que se haya preparado una suscripción para salir a la venta, haz clic en ⋯ en la esquina superior derecha de la suscripción y selecciona Activar . Las suscripciones activadas están disponibles para la venta en la página Detalles de la experiencia y dentro de la experiencia.
Antes de activar tu suscripción por primera vez, debes confirmar una versión abreviada de tu nombre de experiencia. Esta versión abreviada se muestra al usuario cuando se suscriben, apareciendo junto al nombre de la suscripción que creaste en Crear Suscripciones . También es visible administrando suscripciones en Roblox y App Store Settings.
Editando suscripciones
Puede tener hasta 50 suscripciones por experiencia entre suscripciones activas y inactivas. Para editar suscripciones, navegue a su experiencia en el Panel de control del creador y seleccione Productos de monetización > Suscripciones.
Puede editar la imagen, la descripción o el estado de una suscripción. Si desea editar más de estas propiedades, debe eliminar y reutilizar las suscripciones con los cambios deseados.
Cambiar imagen
Para actualizar la imagen de una suscripción:
Con la suscripción seleccionada, haz clic en el botón Cambiar .
Elija una nueva imagen y haga clic en Guardar , luego en Guardar cambios . La nueva imagen se pone en marcha después de pasar con éxito la moderación.
Cambio de Descripción
Para cambiar la descripción de una suscripción:
- Con la suscripción seleccionada, haz clic en el campo Descripción .
- Edita la descripción, luego haz clic en Guardar cambios . Las descripciones están limitadas a 1,000 caracteres y pueden admitir emojis.
- Confirme los cambios haciendo clic en Sí, confirmar en la ventana de confirmación. Las actualizaciones de descripción se reflejan inmediatamente.
Cambio de estado
Las suscripciones tienen dos estados posibles:
- Activo — Las suscripciones activas están disponibles para la venta, con suscriptores que pueden renovar su suscripción al comienzo de la próxima período.
- Inactivos — Las subscripciones inactivas no están disponibles para la venta.
Para cambiar el estado de una suscripción:
- En la página de Suscripciones, haz clic en ⋯ en la esquina superior derecha de la mosaicode la suscripción. Sea cual sea el estado de la suscripción, Activar o Desactivar venta, junto con algunas otras opciones, en el lado derecho del panel de suscripciones.
- Seleccione Activar o Quitar venta para cambiar el estado de la suscripción.
- Si selecciona Desactivar venta , se le dará la opción de permitir que los suscriptores existentes renovación, o cancelen las renovaciones futuras para los suscriptores actuales. En general, se recomienda permitir que los suscriptores existentes renueven a menos que estés planeando eliminar permanentemente los beneficios de suscripción asociados de tu experiencia.
Incorporar suscripciones a una experiencia
Este código de ejemplo es un simple ejemplo de cómo implementar la detección de suscripciones en tu experiencia:
-- Ejecutar este código en el servidor
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Reemplace con su ID de suscripción
local function grantAward(player: Player)
-- Deberías otorgar el premio asociado con la suscripción aquí
end
local function revokeAwardIfGranted(player: Player)
-- Este método se llama para cada jugador que no tenga la suscripción
-- Si su código guarda suscripciones a almacenes de datos o proporciona algún beneficio que necesita ser «revocado»
-- deberías usar este método para manejar la revocación
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)
Reemplazar un Game Pass con una Suscripción
Una opción para desplegar subscripciones en tu experiencia es reemplazar un Game Pass existente con una subscripción. Esta es una gran opción si quieres implementar rápidamente subscripciones en tu experiencia sin agregar nuevas características o recompensas.
Hay dos consideraciones importantes al reemplazar un Game Pass con una suscripción:
- Cualquier persona que tenga el Game Pass debería seguir recibiendo los beneficios que pagó.
- El Game Pass debería ser retirado de la venta para que los nuevos usuarios puedan comprar la suscripción en su lugar.
- Las suscripciones se pueden revocar, lo que significa que si su Game Pass anteriormente persistió sus beneficios en un tiendade datos, debe "hacer deshacer" estos beneficios. Esta consideración no se aplica a todas las implementaciones de Game Pass, pero puede aplicarse a algunas más complejas.
La siguiente muestra de código muestra cómo reemplazar un Game Pass con una suscripción:
-- Ejecutar este código en el servidor
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local LEGACY_GAME_PASS_ID = 1234 -- Reemplazar con la ID del pase de juego que se está reemplazando por una suscripción
local SUBSCRIPTION_ID = "EXP-11111111" -- Reemplace con su ID de suscripción
local function awardBenefit(player: Player)
-- Deberías otorgar la suscripción aquí
end
local function revokeBenefitIfGranted(player: Player)
-- Este método se llama para cada jugador que no tenga la suscripción
-- Si su código guarda suscripciones a almacenes de datos o proporciona algún beneficio que necesita ser «revocado»
-- deberías usar este método para manejar la revocación
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 el jugador ha comprado el pase de juego legacy, no necesitamos buscar su estado de suscripción
-- como tienen el beneficio concedido por la vida
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)
-- Continuaremos escuchando las compras de pases de juego en el juego en caso de que el pase de juego esté aún en venta
MarketplaceService.PromptGamePassPurchaseFinished:Connect(onPromptGamePassPurchaseFinished)
Solicitudes para comprar subscripciones
Aunque los usuarios pueden comprar suscripciones directamente desde la página Información del juego de una experiencia, también deberías agregar una manera de comprar una suscripción en el juego.
Cuando solicite una comprarde suscripción, Players.UserSubscriptionStatusChanged se activa si el jugador ya posee la suscripción, lo que ayuda a capturar escenarios en los que un jugador compra una suscripción desde la página Detalles del juego mientras está en el juego.
Aunque puede solicitar la compra de una suscripción del cliente, verificar si un usuario ya tiene una suscripción a través de MarketplaceService.GetUserSubscriptionStatusAsync debe hacerse desde el servidor.
Este ejemplo crea un RemoteFunction que el cliente puede usar para solicitar el estado de una suscripción:
--Este código debería ejecutarse en el servidor
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crea una función remota que el cliente puede usar para solicitar el estado de la suscripción
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
-- Este código debería ejecutarse en el cliente
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Reemplace con su ID de suscripción
local getSubscriptionStatusRemote = ReplicatedStorage:WaitForChild("GetSubscriptionStatus")
local purchaseSubscriptionButton = script.Parent.PromptPurchaseSubscription -- Reemplazar con su botón
local function playerHasSubscription()
-- Tenga en cuenta que si su suscripción está reemplazando un pase de juego, deberá verificar si el pase de juego también se posee aquí
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
-- Oculta el botón si el jugador ya tiene la suscripción
local function hideButtonIfPlayerHasSubscription()
if playerHasSubscription() then
purchaseSubscriptionButton.Visible = false
end
end
local function onPromptSubscriptionPurchaseFinished(player: Player, subscriptionId: string, didTryPurchasing: boolean)
if didTryPurchasing then
-- Puede llevar un tiempo para que se registre la suscripción, por lo que verificaremos para ver si la compra se completó en 10 segundos
-- y ocultar el botón si tiene
task.delay(10, hideButtonIfPlayerHasSubscription)
end
end
-- Si el jugador ya tiene la suscripción, no queremos mostrar el botón en todos/todas
hideButtonIfPlayerHasSubscription()
purchaseSubscriptionButton.Activated:Connect(function()
MarketplaceService:PromptSubscriptionPurchase(Players.LocalPlayer, SUBSCRIPTION_ID)
-- Si el jugador ya tiene la suscripción, ocultar el botón
hideButtonIfPlayerHasSubscription()
end)
MarketplaceService.PromptSubscriptionPurchaseFinished:Connect(onPromptSubscriptionPurchaseFinished)
Otras funciones relevantes
Otras funciones relevantes están disponibles en MarketplaceService :
Ganar con las suscripciones
Las suscripciones se facturan en moneda local, pero obtienes Robux a una tasa de US $ 0.01 a 1 Robux según el precio de la plataforma que seleccionaste para la suscripción después de los cargos de la plataforma. Roblox solo cobra un 30% de tasa de plataforma para el primer mes, lo que significa que recibe los ingresos completos de la suscripción del segundo mes en adelante. Este ingreso se distribuye de manera consistente en todas las plataformas.
Por ejemplo, si un usuario se susscribe en el precio base de $ 9.99 (equipo de escritorio) o $ 12.99 (móvil):
- Primer mes: El creador de la suscripción recibe 999 * .7 = 699 (equipo de escritorio) o 1299 * .7 = 909 (móvil).
- Segundo mes en adelante: El creador de la suscripción recibe 999 = 999 (dispositivo de equipo de escritorio) o 1299 = 1299 (móvil).
Las ganancias están sujetas a los ajustes de 30 días y se agregarán a su saldo de Robux después de que se entregue el período de prueba completo. Si un usuario solicita un reembolso por una suscripción a través de su banco o tienda de aplicaciones dentro del período de prueba de 30 días, el ajuste se cancelará y no recibirá el pago por esa transacción.
Las reembolsas recibidas fuera de la ventana de mantenimiento se resultarán en la cantidad de pago para la transacción reembolsada que se deducirá de su saldo de Robux. Si su experiencia es propiedad de un Grupo y el saldo del Grupo es inferior a la cantidad a reembolsar, el resto se deducirá del saldo del Grupo Propietario.
Los usuarios que cancelan una suscripción activa y no la renuevan no obtienen un reembolso automático. Los usuarios deben solicitar reembolsos manualmente, que se manejan en una base de caso por caso. Para obtener más información sobre el proceso de reembolso de la suscripción del usuario, consulte el centro de ayuda.
Pago de suscripciones
Los pagos se encuentran en Robux Balance > Mis transacciones :
Las suscripciones a y Grupo pagos aparecen debajo de Incoming Robux, mientras que los reembolsos se agrupan debajo de 0> Outgoing 0> Robux como un 3> Pago Reversal 3> . Las suscripciones y grupos de suscripciones subpáginas proporcionan información adicional para sus respectivas categorías.
Para ver información de reembolso de usuarios individuales, usa MarketplaceService:GetUserSubscriptionPaymentHistoryAsync() .
Análisis de suscripciones
Análisis de suscripciones ayuda a medir el éxito de las suscripciones individuales, identificar tendencias y predecir potenciales ingresos futuros. Las suscripciones se agregan a la página de análisis de suscripciones después de la primera vez que se activan y no se eliminan cuando se desactivan o eliminan. Puede acceder a análisis listos para usar a través de la página de creación de códigos, o puede capturar actualizaciones de suscripc
A través del Panel del Creador
Para acceder a la analítica de suscripciones en el Panel de Comerciante:
Navegue a su página de Creaciones en Crear una página y seleccione su experiencia.
Navegue a la pestaña Monetización y seleccione Suscripciones.
Subscription analytics rastrea las siguientes métricas:
- Suscripciones: La cantidad total de suscripciones activas en tu experiencia.
- Ingresos estimados: Los ingresos netos obtenidos por las experiencias después de las tarifas. No incluye información de reembolso.
- Descompostura de suscriptores: Los diferentes tipos de suscriptores.
- Nuevo : El número de compras de suscripciones por parte de los suscriptores por primera vez.
- Renovado : El número de suscripciones de renovación comprados en un período anterior.
- Resurrección : El número de nuevas suscripciones compradas por los usuarios que habían cancelado previamente.
- Cancelaciones : El número de suscripciones que no se renovaron. Esto incluye todas las cancelaciones independientemente del desencadenador, ya sea la cancelación por el usuario, la desactivación de la suscripción por el creador o por otros medios.
- Las cancelaciones son diferentes a los reembolsos. Las suscripciones canceladas son suscripciones que ya no se renuevan, sino que se pagan por completo por el resto del ciclo de facturación, mientras que los reembolsos devuelven la cantidad de suscripción pagada al usuario.
- Suscripciones por plataforma : El número de suscripciones compradas en cada plataforma.
- Ganancias de la plataforma : La moneda obtenida a través de las suscripciones compradas en cada plataforma.
Esta información se muestra en la forma de gráficos basados en un rango de fechas bajo la Tendencias pestaña, y como una lista completa de suscripciones totales ofrecidas bajo la Historial pestaña.
A través de Webhook
La función Cloud API Webhook incluye gatillos para cuatro eventos de suscripción: cancelado, comprado, reembolsado y renovado. Estas notificaciones se activan inmediatamente, para que pueda responder en tiempo real o crear su propia Análisispersonalizada. Para obtener más información sobre cómo configurar un webhook, see Notificaciones de webhook .