Pagamentos baseados em engajamento

Pagamentos baseados em engajamento automáticos permitem que você ganhe Robux com base na parcela de tempo que usuários Premium participam de uma experiência, independentemente do tamanho da experiência. Esses pagamentos são adicionais aos ganhos de outros métodos monetização, tais como Passes.

Para incentivar o crescimento de assinantes Premium e aumentar seu potencial para ganhar pagamentos baseados em engajamento, você pode adicionar o Modal de Compra Premium diretamente em uma experiência.

Acessando Dados de Pagamento

Os dados de Pagamentos Premium fornecem um feedback essencial que ajuda você a compreender quais fatores levam assinantes Premium às suas experiências.

  1. Navegue até o Painel de Criações.

  2. Passe o mouse sobre a experiência desejada, clique no ícone e selecione Desenvolvedor Estatísticas.

    Opção de Estatísticas do Desenvolvedor no menu de opções de uma experiência no Painel de Criações
  3. Na navegação superior, clique na aba PAGAMENTOS BASEADOS EM ENGAJAMENTO.

    Guia de pagamentos baseados em engajamento na página de Estatísticas do Desenvolvedor do Painel de Criações

Pagamento Premium

O gráfico de Pagamentos baseados em engajamento rastreia os dados de pagamento com base nas seguintes métricas:

Pontuação de tempo de jogo Premium é o tempo que os assinantes Premium se engajam com sua experiência diariamente. Esta métrica pode fornecer feedback imediato a respeito do impacto de novos recursos lançados.

Robux ganhos por tempo de jogo Premium é o valor que você pode esperar ganhar pelo engajamento de assinantes Premium. Isso não é baseado no tempo diário dos assinantes Premium que gastam o seu relacionamento com a experiência; ao invés disso, essa métrica agrega o comportamento de cada usuário nos últimos 28 dias. Por isso, mesmo que haja tendências semelhantes, essa métrica não tem relação matemática direta com a Pontuação por tempo de jogo Premium.

Exemplo de gráfico que rastreia dados de pagamentos baseados em engajamento

Visitas Premium

O gráfico de Visitas Premium rastreia quantas visitas são provenientes de membros Premium. Usando o menu suspenso, escolha Porcentagem de Visitas Premium, Visitas Premium ou Visitas Totais.

Exemplo de gráfico que rastreia quantas visitas são de membros Premium

Uma estratégia para aumentar os pagamentos baseados no engajamento é incentivar assinaturas Premium através do modal de compra. Os jogadores podem completar a compra inteiramente dentro da experiência e receber imediatamente o status Premium e seu estipêndio inicial de Robux.

O modal de compras Premium dentro de uma experiência
Modal de compras Premium dentro de uma experiência

Lembre-se de que assinaturas Premium não devem ser um "requisito" para desfrutar de uma experiência. Ao implementar incentivos para membros Premium, é altamente recomendável que você siga estas boas práticas:

  • Descreva honestamente e com precisão os benefícios da assinatura dentro da descrição da experiência .
  • Não prometa Robux ou outras recompensas fora de experiência que você não controla.
  • Não mostre o modal como um "paywall" (barreira de pagamento) quando membros não-Premium entrarem na experiência.
  • Considere oferecer artigos exclusivo aos membros Premium, mas não dê a eles vantagens táticas de jogabilidade sobre os outros. como um conjunto de armas ultrapoderosas que os membros não-Premium não podem competir contra.

Verificando assinatura

Antes de escrever qualquer lógica relacionada à associação Premium ou de acionar o modal, verifique a propriedade MembershipType de um usuário para determinar se ele já é assinante.


local Players = game:GetService("Players")
local player = Players.LocalPlayer
if player.MembershipType == Enum.MembershipType.Premium then
-- Tome medidas especificamente para membros Premium
end

Ativando o Modal

Você pode acionar o Modal de Compra Premium com o método Class. MarketplaceService:PromptPremiumPurchase()|PromptPremiumPurchase(). Por exemplo, o código a seguir incentiva usuários a comprarem Premium quando o avatar deles tocar na parte em que Script está, como um teletransporte de acesso apenas para membros Premium.


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)
-- Teleport character to exclusive area
local function teleportPlayer(player)
-- Request streaming around target location
player:RequestStreamAroundAsync(TELEPORT_POSITION)
-- Teleport character
local character = player.Character
if character and character.Parent then
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(TELEPORT_POSITION))
end
end
-- Detect character parts touching teleporter
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
-- User has Premium; teleport character to exclusive area within experience
teleportPlayer(player)
else
-- Show purchase modal, using debounce to show once every few seconds at most
if not showModal then return end
showModal = false
task.delay(5, function()
showModal = true
end)
MarketplaceService:PromptPremiumPurchase(player)
end
end)
-- Detect character parts exiting teleporter
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)
-- Handle membership changed event
Players.PlayerMembershipChanged:Connect(function(player)
warn("User membership changed; new membership is " .. tostring(player.MembershipType))
-- Teleport character if membership type is Premium and character is on teleporter
if player.MembershipType == Enum.MembershipType.Premium and player:GetAttribute("CharacterPartsTouching") > 0 then
teleportPlayer(player)
end
end)