Produtos do desenvolvedor

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Um produto de desenvolvedor é um item ou capacidade que um usuário pode comprar mais de uma vez, como moeda na experiência, munição ou poções .

Crie um produto de desenvolvedor

Para criar um produto de desenvolvedor:

  1. Vá para Criações e selecione uma experiência.
  2. Vá para Monetização > Produtos para Desenvolvedores .
  3. Clique em Criar um Produto de Desenvolvedor .
  4. Carregue uma imagem para exibir como o ícone do produto.Certifique-se de que a imagem não exceda 512x512 pixels, não inclua detalhes importantes fora de seus limites circulares e esteja no formato .jpg, .png ou .bmp.
  5. Insira um nome e uma descrição para o produto.
  6. Defina o preço do produto em Robux. O preço mínimo é 1 Robux e o preço máximo é 1 bilhão de Robux.
  7. Clique em Criar Produto de Desenvolvedor .

Obtenha o ID do produto do desenvolvedor

Para usar scripting, você precisa de um ID de produto de desenvolvedor. Para obter o ID do produto:

  1. Vá para Monetização > Produtos para Desenvolvedores .

  2. Passe o mouse sobre a miniatura de um produto, clique no botão e selecione Copiar ID de Recurso no menu de contexto.

Vender um produto de desenvolvedor

Antes de vender produtos para desenvolvedores, certifique-se de estar processando corretamente recibos de vendas e concedendo aos usuários seus produtos comprados.Para fazer isso, você deve:

  • Use a API ProcessReceipt para verificar recibos de compra.ProcessReceipt lê e reconhece automaticamente que um usuário comprou um produto fora da experiência.
  • Valide cada recibo para User ID, Developer Product ID e o status do recibo.
  • Se a fatura tiver um status de Aberto , conceda ao usuário os itens de desenvolvedor que ele comprou.
  • Responda à API ProcessReceipt com uma mensagem que reconhece o recebimento e valida que os itens comprados foram concedidos.

Você pode vender produtos de desenvolvedor de duas maneiras:

Dentro da sua experiência

Para implementar e vender um produto de desenvolvedor dentro de uma experiência, chame funções MarketplaceService .

Use GetProductInfo para recuperar informações sobre um produto de desenvolvedor, como nome e preço, e depois exibir esse produto aos usuários.Você pode vender o produto dentro do mercado da sua experiência, por exemplo.Para produtos de desenvolvedor, o segundo parâmetro deve ser Enum.InfoType.Product .


local MarketplaceService = game:GetService("MarketplaceService")
-- Substitua o ID do espaço reservado pelo ID do produto do desenvolvedor
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Exibir informações do produto
-- Substitua as declarações de impressão por código de UI para exibir o produto
print("Developer Product Name: " .. productInfo.Name)
print("Price in Robux: " .. productInfo.PriceInRobux)
print("Description: " .. productInfo.Description)
end

Use GetDeveloperProductsAsync para recuperar todos os produtos de desenvolvedor associados à sua experiência.Essa função retorna um objeto Pages que você pode inspecionar e filtrar para construir coisas como uma loja na experiência ou lista de produtos Interface gráfica do usuário.


local MarketplaceService = game:GetService("MarketplaceService")
local success, developerProducts = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync()
end)
if success and developerProducts then
local firstPage = developerProducts:GetCurrentPage()
for _, developerProduct in firstPage do
-- Substitua a declaração de impressão por código de UI para exibir o produto
print(field .. ": " .. value)
end
end

Use PromptProductPurchase para solicitar a compra de produtos dentro da sua experiência.Você pode chamar essa função quando um usuário executa ações como pressionar um botão ou falar com um NPC fornecedor.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Substitua o ID do espaço reservado pelo ID do produto do desenvolvedor
local productId = 000000
local function promptProductPurchase()
local success, errorMessage = pcall(function()
MarketplaceService:PromptProductPurchase(player, productId)
end)
if success then
print("Purchase prompt shown successfully")
end
end

Você também pode combinar funções dentro de um LocalScript .Por exemplo, você pode criar um elemento de UI como um botão ou um NPC fornecedor, então use GetProductInfo() para conectar um produto de desenvolvedor existente a esse elemento, verifique se o produto está à promoção/vendae use PromptProductPurchase() para solicitar uma compra sempre que o usuário clicar nele.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
-- Substitua o ID do espaço reservado pelo ID do produto do desenvolvedor
local productId = 000000
-- Obtém informações do produto quando o usuário clica no botão da interface do usuário
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Verifica se o produto está à promoção/venda
if productInfo.IsForSale then
print("This is for sale")
-- Incita a comprarde produto
MarketplaceService:PromptProductPurchase(player, productId)
else
-- Notifica que o produto não está à promoção/venda
print("This product is not currently for sale.")
end
else
print("Error retrieving product info: " .. tostring(productInfo))
end
end)

Fora da sua experiência

Para habilitar compras de produtos de desenvolvedor fora da sua experiência, você deve trabalhar com a API (Interface de Programação para Aplicações)ProcessReceipt.Depois que um usuário faz uma compra na aba Loja de detalhes da sua experiência, você deve usar ProcessReceipt.

Modo de teste

A funcionalidade do modo de teste ajuda você a validar seu fluxo de compra simulando uma compra de produto de desenvolvedor fora de sua experiência .Você deve usar o modo de teste para garantir que implementou ProcessReceipt antes de habilitar a venda de produtos de desenvolvedor externo.

Os produtos do desenvolvedor que você coloca à venda no modo de teste só podem ser vistos por você e por membros do seu grupo. Eles não são visíveis para os usuários.

Para testar sua implementação:

  1. No Hub do Criador , vá para Monetização > Produtos para Desenvolvedores .
  2. Clique no menu e selecione Configurações de Compra Externa .
  3. Na página Configurações de Compra Externa , clique em Ativar modo de teste .
  4. Uma vez que o modo de teste esteja ativo, volte para a página Produtos do Desenvolvedor e selecione um produto para testar.
  5. Na página Configurações Básicas , selecione a caixa de seleção Permitir compras externas e salve suas alterações.
  6. Vá para a aba Loja da página de detalhes da experiência e compre o produto que você tornou disponível à promoção/venda.
  7. Entre na experiência e confirme que você recebeu o produto que comprou.O status de recibo da API ProcessReceipt deve ser atualizado para Fechado .

Depois de testar sua implementação, o Roblox verifica que o teste foi concluído com sucesso e permite que você ative totalmente o recurso para vender produtos de desenvolvedor fora de suas experiências.

Para mais informações sobre a API ProcessReceipt e sua implementação, consulte a página ProcessReceipt.

Ativar vendas externas

Para habilitar vendas externas:

  1. Vá para a página Configurações de Compra Externa .
  2. Ativar Compras Externas .
  3. Voltar para a página Produtos para Desenvolvedores e selecione os produtos que você deseja vender fora de sua experiência.
  4. Na página Configurações Básicas , selecione a caixa de seleção Permitir compras externas e salve suas alterações.
  5. Confirme que os produtos agora estão disponíveis para compra na aba Loja da página de detalhes da experiência.

Para desativar a venda externa de um produto do desenvolvedor, selecione o produto na página Produtos do desenvolvedor e limpe a caixa de seleção Permitir compras externas .

Limitações

  • Itens à venda no modo de teste custam Robux reais. Recomendamos testar produtos de desenvolvedor de baixo custo.
  • Itens à venda no modo de teste só podem ser vistos por você ou por membros do seu grupo.
  • Para ser vendido externamente, seus produtos de desenvolvedor devem ter uma miniatura.
  • Você não deve vender o seguinte fora de sua experiência:
    • Itens pagos aleatórios
    • Itens que são limitados a quantidades específicas, tempo, local ou configurações e papéis de usuário

Gerenciar a comprarde um produto de desenvolvedor

Depois que um usuário compra um produto de desenvolvedor, você deve lidar e registrar a transação.Para fazer isso, use um Script dentro de ServerScriptService usando a função ProcessReceipt.

Para mais informações sobre a API ProcessReceipt e sua implementação, consulte a página ProcessReceipt.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- Exemplo: o ID do produto 123123 traz o usuário de volta à saúde completa
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- Indica uma comprarbem-sucedida
return true
end
end
-- Exemplo: o ID do produto 456456 concede 100 moedas de ouro ao usuário
productFunctions[456456] = function(receipt, player)
local leaderstats = player:FindFirstChild("leaderstats")
local gold = leaderstats and leaderstats:FindFirstChild("Gold")
if gold then
gold.Value += 100
return true
end
end
local function processReceipt(receiptInfo)
local userId = receiptInfo.PlayerId
local productId = receiptInfo.ProductId
local player = Players:GetPlayerByUserId(userId)
if player then
-- Obtém a função de manipulador associada ao ID do produto do desenvolvedor e tenta executá-la
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- O usuário recebeu seus itens
-- Retorna "PurchaseGranted" para confirmar a transação
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- Os itens do usuário não puderam ser concedidos
-- Retorna "Ainda não processado" e tenta novamente na próxima vez que o usuário se juntar à experiência
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Define o retorno de chamada
-- Isso só pode ser feito uma vez por um script do lado do servidor
MarketplaceService.ProcessReceipt = processReceipt

Dados analíticosde produtos de desenvolvedor

Use a análise de produtos de desenvolvedor para analisar o sucesso de produtos individuais, identificar tendências e prever potenciais ganhos futuros.

Com Dados analíticos, você pode:

  • Veja seus principais produtos de desenvolvedor ao longo de um período de tempo selecionado.
  • Mostre até oito itens mais vendidos em um gráfico de série temporal para analisar as vendas gerais e a receita líquida.
  • Monitore seu catálogo e classifique itens por vendas e receita líquida.

Para acessar a Dados analíticosprodutos de desenvolvedor:

  1. Vá para Criações e selecione uma experiência.
  2. Vá para Monetização > Produtos para Desenvolvedores .
  3. Selecione a aba Análise de Dados .