Pago de base de compromiso

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Los pagos automáticos basados ​​en el compromiso te permiten ganar Robux según la cantidad de tiempo que los miembros Premium comparten en una experiencia, independientemente del tamaño de la experiencia. Estos pagos se suman a los ingresos de otras métodos de monetización, como Pases.

Para fomentar el crecimiento de los suscriptores premium y aumentar tu potencial para ganar pagos basados ​​en el compromiso, puedes agregar el Premium Purchase Modal directamente a una experiencia. Tenga en cuenta, los usuarios de algunos países pueden no tener acceso a las suscripciones premium.

Accediendo a los datos de pago

Los datos de pago pueden proporcionar valiosos datos para ayudarlo a entender qué factores impulsan a los suscriptores premium a sus experiencias.

Para acceder a los datos de pago:

  1. Navegue a su página de Creaciones en Crear una página y seleccione su experiencia.

  2. Navegue a la pestaña Monetización y seleccione Pago de Ingresos .

Pago de compromisos

Las Presentaciones basadas en el compromiso rastrean los datos de pago según las siguientes métricas:

  • Robux de tiempo de juego premium ganado: La cantidad que puede esperar ganar por el compromiso de suscripción premium. Esto no se basa en el tiempo que los suscriptores premium gastan interactuando con la experiencia; en cambio, esta métrica agrega el comportamiento de cada usuario en los últimos 28 días. Como tal, a pesar de que tienen tendencias similares, esta métrica no tiene una relación matemática directa con la puntuación de playtime premium.

  • Puntuación de tiempo de juego premium: La cantidad de tiempo que los suscriptores premium invierten en la experiencia por día. Esta métrica puede proporcionar comentarios inmediatos sobre el impacto de las nuevas características que lanzas.

  • Visitas premium: Cuántas visitas son de miembros premium.


Modo de compra premium

Una estrategia para aumentar los pagos basados ​​en el compromiso es animar a los jugadores a actualizar Premium a través del modalidad de compra . Los jugadores pueden completar la compra completamente dentro de la experiencia y recibir inmediatamente tanto el estado de Robux como su prima inicial.

Premium purchase modal within an experience
Modalidad de compra premium dentro de una experiencia

Recuerda que la membresía Premium no debe ser un "requisito" para disfrutar de una experiencia. Cuando implementas incentivos para los miembros Premium, se recomienda altamente que sigas estas mejores prácticas:

  • Describe con honestidad y precisión los beneficios de actualizar dentro de la descripción del espacio de experienciadentro de la descripción del espacio de trabajo.
  • No prometas Robux u otras recompensas de experiencia que no controlas.
  • No muestre el modal como "paywall" cuando los miembros no Premium ingresen a la experiencia.
  • considere ofrecer exclusivos merchandías a los miembros Premium, pero no les dé una ventaja de juego táctica a otros, como un conjunto de armas ultra poderosas que los miembros no Premium no pueden competir.

Revisando afiliación de miembros

Antes de escribir cualquier lógica relacionada con la membresía Premium o Activar el modo modal, compruebe la propiedad de un usuario MembershipType para determinar si ya están suscritos.


local Players = game:GetService("Players")
local player = Players.LocalPlayer
if player.MembershipType == Enum.MembershipType.Premium then
-- Tome alguna acción específicamente para los miembros Premium
end

Activando el Modal

Puedes desencadenar la modalidad de compra con el método PromptPremiumPurchase() . Por ejemplo, el siguiente código solicita a los usuarios que compren Premium cuando su personaje toca la parte que contiene Script , como un teletransportador que permite el acceso a un área exclusiva.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local teleporter = script.Parent
local showModal = true
local TELEPORT_POSITION = Vector3.new(1200, 200, 60)
-- Teletransportar el personaje a un área exclusiva
local function teleportPlayer(player)
-- Solicitar streaming alrededor de la ubicación del objetivo
player:RequestStreamAroundAsync(TELEPORT_POSITION)
-- Teletransportar personaje
local character = player.Character
if character and character.Parent then
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(TELEPORT_POSITION))
end
end
-- Detectar partes de personaje tocando el teletransportador
teleporter.Touched:Connect(function(otherPart)
local player = Players:GetPlayerFromCharacter(otherPart.Parent)
if not player then return end
if not player:GetAttribute("CharacterPartsTouching") then
player:SetAttribute("CharacterPartsTouching", 0)
end
player:SetAttribute("CharacterPartsTouching", player:GetAttribute("CharacterPartsTouching") + 1)
if player.MembershipType == Enum.MembershipType.Premium then
-- El usuario tiene Premium; teletransportar el personaje a un área exclusiva dentro de la experiencia
teleportPlayer(player)
else
-- Mostrar modal de compra, usando debounce para mostrar una vez cada pocos segundos como máximo
if not showModal then return end
showModal = false
task.delay(5, function()
showModal = true
end)
MarketplaceService:PromptPremiumPurchase(player)
end
end)
-- Detectar partes de personaje saliendo del teletransportador
teleporter.TouchEnded:Connect(function(otherPart)
local player = Players:GetPlayerFromCharacter(otherPart.Parent)
if player and player:GetAttribute("CharacterPartsTouching") then
player:SetAttribute("CharacterPartsTouching", player:GetAttribute("CharacterPartsTouching") - 1)
end
end)
-- Manejar el evento cambiado de membresía
Players.PlayerMembershipChanged:Connect(function(player)
warn("User membership changed; new membership is " .. tostring(player.MembershipType))
-- Teletransportar el personaje si el tipo de membresía es Premium y el personaje está en el teletransportador
if player.MembershipType == Enum.MembershipType.Premium and player:GetAttribute("CharacterPartsTouching") > 0 then
teleportPlayer(player)
end
end)