Pagos basados en el 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 en función de la proporción de tiempo que los miembros premium se involucran en una experiencia, independientemente del tamaño de la experiencia.Estos pagos se suman a los ingresos de otros métodos de monetización como pases.

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

Acceder a los datos de pago

Los datos de pago pueden proporcionar comentarios vitales para ayudarlo a comprender 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 tablero de creación del creador y seleccione su experiencia.
  2. Navegue a la pestaña Monetización y seleccione Pagos de compromiso .

Pagos de compromiso

Las tablas de pagos basados en el compromiso rastrean los datos de pago basados en las siguientes métricas:

  • Robux de tiempo de juego premium ganados: La cantidad que puedes esperar ganar por la compromisode suscriptores premium.Esto no se basa en el tiempo diario que los suscriptores premium pasan interactuando con la experiencia; en cambio, esta métrica agrega el comportamiento de cada usuario en los últimos 28 días.Como tal, aunque tengan tendencias similares, esta métrica no tiene relación matemática directa con la puntuación de tiempo de juego premium.

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

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


Modo de compra premium

Una estrategia para aumentar los pagos basados en el compromiso es alentar la actualización de premium a través del modo de compra .Los jugadores pueden completar la compra por completo dentro de la experiencia y recibir inmediatamente el estatus Premium y su estipendio inicial de Robux.

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

Recuerde que la membresía premium no debe ser un "requisito" para disfrutar de una experiencia.Al implementar incentivos para miembros premium, se recomienda altamente que sigas estas mejores prácticas:

  • Describe honesta y precisamente los beneficios de actualizar dentro de la descripción de la experiencia .
  • No prometas Robux u otras recompensas fuera de la experiencia que no controlas.
  • No muestre el modal como una "pared de pago" cuando los miembros no premium entren en la experiencia.
  • Considera ofrecer artículos exclusivos a los miembros Premium, pero no les des una ventaja táctica en el juego sobre los demás, como un conjunto de armas ultra poderosas que los miembros no Premium no pueden competir.

Comprobar la suscripción

Antes de programar cualquier lógica relacionada con la membresía premium o activar el modal, verifique la propiedad de un usuario MembershipType para determinar si ya está suscrito.


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

Activar el modal

Puedes activar el modo 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 a la que se le adjunta 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 personaje a área exclusiva
local function teleportPlayer(player)
-- Solicitar transmisión alrededor de la ubicación objetivo
player:RequestStreamAroundAsync(TELEPORT_POSITION)
-- Personaje de teletransporte
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 que tocan 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 personaje a á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 que salen 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)
-- Manipular el evento de cambio de membresía
Players.PlayerMembershipChanged:Connect(function(player)
warn("User membership changed; new membership is " .. tostring(player.MembershipType))
-- Teletransportar 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)