Abbonamenti all'interno dei giochi ti permettono di offrire agli utenti benefici ricorrenti per una tariffa mensile. Gli abbonamenti sono simili ai pass, ma mentre i benefici di un pass vengono concessi indefinitamente, i benefici di un abbonamento sono subordinati al pagamento di una tariffa mensile da parte dell'utente.
Gli abbonamenti su Roblox hanno le seguenti caratteristiche:
- Rinnovo automatico: Gli abbonamenti si rinnovano automaticamente, non sono acquisti una tantum e possono essere prezzati in valuta locale o Robux.
- Pagamento in Robux: Che un abbonamento venga acquistato in valuta locale o in Robux, ricevi il ricavo dell'abbonamento in Robux. Per ulteriori dettagli, vedere Guadagna con gli abbonamenti.
- Unico livello: Tutti gli abbonamenti all'interno di un gioco possono essere posseduti dagli utenti contemporaneamente. Gli abbonamenti mutuamente esclusivi non sono supportati.
- Prezzi regionali: I prezzi regionali sono abilitati per impostazione predefinita per gli abbonamenti venduti in Robux e non possono essere disattivati. I prezzi regionali non sono disponibili per gli abbonamenti venduti in valuta locale.
Linee guida sugli abbonamenti
Prima di creare i tuoi abbonamenti, assicurati che siano conformi ai Termini di utilizzo di Roblox e rispettino le leggi locali. Qualsiasi gioco che partecipa a truffe, cerca di ingannare gli utenti con offerte false, o in altro modo viola i nostri Standard della comunità verrà rimosso.
Devi anche assicurarti che i tuoi abbonamenti seguano queste linee guida:
- Fornire opzioni di abbonamento chiare e distinguibili: Usa nomi brevi, concisi e autoesplicativi che differenziano le opzioni di abbonamento tra loro. Specifica il prezzo e la durata per ogni opzione quando commercializzi in gioco.
- Offrire gli stessi benefici su piattaforme e dispositivi: Indipendentemente da dove è stato acquistato l'abbonamento, assicurati che l'utente riceva gli stessi benefici per qualsiasi piano di abbonamento dato.
- Progettare abbonamenti in modo che si adattino tra loro e all'offerta generale del gioco: La suddivisione dello stesso insieme di benefici, come offrire livelli "Bronzo", "Argento" e "Oro" che sono mutuamente esclusivi, non è attualmente disponibile. Assicurati che gli abbonamenti rappresentino set distinti di benefici.
- Offrire i benefici per l'intero termine dell'abbonamento: Una volta che un'offerta di abbonamento è attiva, onora i benefici descritti e non revocare i benefici dietro le quinte.
- Non indirizzare gli utenti a effettuare l'acquisto su un'altra piattaforma (come mobile, web, ecc.) in gioco: Anche se sei libero di comunicare con gli utenti al di fuori della piattaforma, utilizzare l'app di Roblox per indirizzare gli utenti a effettuare acquisti altrove è vietato.
- Non limitare i benefici dell'abbonamento con requisiti aggiuntivi una volta che un utente ha pagato: Richiedere a un utente di eseguire attività aggiuntive, come pubblicare sui social media, per accedere ai benefici per cui ha pagato è vietato. Questa linea guida non influenza i battle pass, che sei autorizzato a creare e commercializzare come acquisto in abbonamento.
Robux vs valuta locale
Gli abbonamenti possono essere prezzati in Robux o in valuta locale. La seguente tabella confronta le due opzioni di pagamento.
| Robux | Valuta locale | |
|---|---|---|
| Idoneità | Tutti i creatori | Richiede un account verificato tramite ID o numero di telefono |
| Piattaforme | Disponibile su tutte le piattaforme | Disponibile su Web, App Store e Google Play |
| Paesi | Disponibile in tutti i paesi che supportano Roblox | Non disponibile in Argentina, Cina, Colombia, India, Indonesia, Giappone, Russia, Taiwan, Türkiye (Turchia), Emirati Arabi Uniti, Ucraina e Vietnam |
| Prezzo | Qualsiasi importo pari o superiore a 49 Robux | $2.99, $4.99, $7.99, $9.99, o $14.99 |
| Prezzi regionali | Abilitato per impostazione predefinita | Non disponibile |
| Pagamenti | 70% degli incassi abbonamenti ogni mese | 70% nel primo mese, quindi 100% nei mesi successivi |
Crea abbonamenti
Per creare un abbonamento:
- Clicca su Crea abbonamento.
- Carica un'immagine di copertura.
- Inserisci un nome che sia unico. Non puoi avere due abbonamenti con lo stesso nome nello stesso gioco.
- Inserisci una descrizione che descriva chiaramente i benefici che stai offrendo.
- Seleziona una delle seguenti opzioni di pagamento:
- Gli abbonati pagano in Robux: Addebita agli utenti la tariffa mensile ricorrente in Robux. Se selezioni questa opzione, devi inserire un prezzo personalizzato maggiore o uguale a 49 Robux. I prezzi regionali sono abilitati per impostazione predefinita per l'abbonamento e non possono essere disattivati.
- Gli abbonati pagano in valuta locale: Addebita agli utenti la tariffa mensile ricorrente nella loro valuta locale. Se selezioni questa opzione, devi scegliere un prezzo per l'abbonamento da uno dei 5 livelli di prezzo disponibili.
- Seleziona uno dei seguenti tipi di prodotto:
- Duraturo: Articoli permanenti che persistono dopo l'uso o l'acquisizione, come articoli fisici come armi. Se un abbonamento include un pacchetto di diversi tipi di beni, con uno o più di essi durevoli, come un pacco valore con una spada e una pozione, scegli Duraturo come tipo di prodotto.
- Consumato: Articoli temporanei riacquistabili che scadono dopo l'uso o l'acquisizione, come pozioni consumabili che conferiscono potenziamenti temporanei che scadono nel tempo.
- Valuta: Qualsiasi mezzo di scambio che gli utenti possono utilizzare per acquistare articoli all'interno del tuo gioco.
- Clicca su Crea abbonamento.
Attiva abbonamenti
Puoi avere fino a 50 abbonamenti per gioco tra abbonamenti attivi e inattivi.
Per mettere in vendita un abbonamento, clicca su ⋮ accanto all'abbonamento che desideri attivare e seleziona Attiva. Gli abbonamenti attivi sono automaticamente disponibili per la vendita nella scheda Negozio della pagina dei dettagli del gioco e possono essere aggiunti al tuo gioco attraverso le funzioni MarketplaceService.
Prima di attivare il tuo abbonamento per la prima volta, devi confermare una versione accorciata del nome del tuo gioco. Questo nome accorciato del gioco viene visualizzato all'utente quando si iscrive e appare accanto al nome dell'abbonamento che hai creato in Crea abbonamenti.
Stati dell'abbonamento
Gli abbonamenti possono avere due stati possibili:
- Attivo: Gli abbonamenti attivi sono disponibili per la vendita, con gli abbonati che possono rinnovare il loro abbonamento all'inizio del periodo successivo.
- Inattivo: Gli abbonamenti inattivi non sono disponibili per la vendita.
Per cambiare lo stato di un abbonamento, clicca su ⋯ nell'angolo in alto a destra del riquadro dell'abbonamento e seleziona Attiva (se l'abbonamento è attualmente inattivo) o Rimuovi dalla vendita (se l'abbonamento è attualmente attivo).
Se selezioni Rimuovi dalla vendita, ti verrà data l'opzione di consentire agli abbonati esistenti di rinnovare il loro abbonamento, o di annullare i rinnovi futuri per gli attuali abbonati. Se non hai intenzione di rimuovere permanentemente i benefici associati all'abbonamento dal tuo gioco, ti consigliamo di consentire agli abbonati esistenti di rinnovare il loro abbonamento.
Modifica abbonamenti
I campi che puoi modificare dipendono dal metodo di pagamento.
| Campo modificabile | Abbonamenti venduti in Robux | Abbonamenti venduti in valuta locale |
|---|---|---|
| Immagine di copertura | Sì | Sì |
| Nome | No | No |
| Descrizione | Sì | Sì |
| Metodo di pagamento | Sì (può passare a valuta locale) | Sì (può passare a Robux) |
| Prezzo | Sì (una volta ogni 60 giorni) | No |
| Tipo di prodotto | No | No |
| Stato attivo | Sì | Sì |
Cambiare il metodo di pagamento influisce solo sui nuovi abbonamenti. Gli abbonati esistenti rimangono sul loro metodo di pagamento originale e devono annullare e riabbonarsi per cambiare.
Elimina abbonamenti
Per eliminare un abbonamento, clicca su ⋮ accanto all'abbonamento che desideri eliminare e seleziona Elimina.
Eliminare un abbonamento attivo comporta rimborsi completi per gli abbonati attivi e zero Robux per te. Nella maggior parte delle situazioni, se desideri eliminare un abbonamento, ti consigliamo di rimuoverlo dalla vendita prima, selezionare l'opzione per annullare tutti i rinnovi e attendere che il periodo corrente si concluda.
Eliminare un abbonamento richiede le ultime quattro cifre dell'ID di abbonamento per conferma.
Integrare abbonamenti in un gioco
Controlla lo stato di abbonamento di un utente
Il seguente esempio di codice implementa il rilevamento dell'abbonamento nel tuo gioco:
-- Esegui questo codice sul server
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Sostituisci con il tuo ID di abbonamento
local function grantAward(player: Player)
-- Dovresti concedere il premio associato all'abbonamento qui
end
local function revokeAwardIfGranted(player: Player)
-- Questo metodo viene chiamato per ogni giocatore che non ha _l'abbonamento
-- Se il tuo codice salva gli abbonamenti nei Data Store o fornisce qualche beneficio che deve essere "revocato"
-- dovresti usare questo metodo per gestire la revoca
end
local function checkSubStatus(player)
local success, response = pcall(function()
return MarketplaceService:GetUserSubscriptionStatusAsync(player, SUBSCRIPTION_ID)
end)
if not success then
warn(`Errore durante il controllo se il giocatore ha l'abbonamento: {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)
Sostituisci un pass con un abbonamento
Una delle opzioni per implementare abbonamenti nel tuo gioco è sostituire un pass esistente con un abbonamento. Questa è una grande opzione se vuoi implementare rapidamente abbonamenti senza aggiungere nuove funzionalità o premi.
Quando sostituisci un pass con un abbonamento, tieni a mente quanto segue:
- Qualsiasi possessore esistente del pass dovrebbe continuare a ricevere il beneficio per cui ha pagato.
- Il pass dovrebbe essere rimosso dalla vendita in modo che i nuovi utenti possano acquistare l'abbonamento invece.
- Gli abbonamenti possono essere revocati, il che significa che se il tuo pass in precedenza persisteva i suoi benefici in un data store, devi "annullare" questi benefici. Questa considerazione non si applica a tutte le implementazioni dei pass, ma potrebbe applicarsi a quelle più complesse.
Il seguente esempio di codice sostituisce un pass con un abbonamento:
-- Esegui questo codice sul server
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local LEGACY_GAME_PASS_ID = 1234 -- Sostituisci con l'ID del pass sostituito da un abbonamento
local SUBSCRIPTION_ID = "EXP-11111111" -- Sostituisci con il tuo ID di abbonamento
local function awardBenefit(player: Player)
-- Dovresti assegnare l'abbonamento qui
end
local function revokeBenefitIfGranted(player: Player)
-- Questo metodo viene chiamato per ogni giocatore che non ha _l'abbonamento
-- Se il tuo codice salva gli abbonamenti nei Data Store o fornisce qualche beneficio che deve essere "revocato"
-- dovresti usare questo metodo per gestire la revoca
end
local function checkSubscriptionStatus(player: Player)
local success, result = pcall(function()
return MarketplaceService:GetUserSubscriptionStatusAsync(player, SUBSCRIPTION_ID)
end)
if not success then
print(`Errore durante il recupero dello stato dell'abbonamento: {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(`Errore durante il recupero dello stato del pass: {result}`)
return
end
if result then
-- Se il giocatore ha acquistato il pass legacy, non è necessario controllare il loro stato di abbonamento
-- poiché hanno il beneficio concesso a vita
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)
-- continueremo a monitorare gli acquisti di pass nel caso in cui il pass sia ancora in vendita
MarketplaceService.PromptGamePassPurchaseFinished:Connect(onPromptGamePassPurchaseFinished)
Promuovi l'acquisto di un abbonamento
Gli utenti possono acquistare abbonamenti direttamente dalla scheda Negozio della tua pagina di dettagli del gioco, ma dovresti anche aggiungere un modo per acquistarli in gioco.
Quando promuovi un acquisto di abbonamento, viene attivato UserSubscriptionStatusChanged se il giocatore possiede già l'abbonamento, il che aiuta a catturare scenari in cui un giocatore acquista un abbonamento dalla scheda Negozio della pagina di dettagli del gioco mentre si trova già in gioco.
Sebbene tu possa promuovere un acquisto di abbonamento dal client, controllare se un utente ha già un abbonamento con GetUserSubscriptionStatusAsync deve essere fatto dal server.
Il seguente esempio di codice crea un RemoteFunction che il client può utilizzare per richiedere lo stato di un abbonamento:
--Questo codice dovrebbe essere eseguito sul server
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crea un RemoteFunction che il client può usare per richiedere lo stato dell'abbonamento
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
-- Questo codice dovrebbe essere eseguito sul client
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Sostituisci con il tuo ID di abbonamento
local getSubscriptionStatusRemote = ReplicatedStorage:WaitForChild("GetSubscriptionStatus")
local purchaseSubscriptionButton = script.Parent.PromptPurchaseSubscription -- Sostituisci con il tuo pulsante
local function playerHasSubscription()
-- Nota che se il tuo abbonamento sta sostituendo un pass, dovrai controllare se il pass è posseduto anche qui
local success, result = pcall(function()
return getSubscriptionStatusRemote:InvokeServer(SUBSCRIPTION_ID)
end)
if not success then
print(`Errore durante il recupero dello stato dell'abbonamento: {result}`)
return
end
return result.IsSubscribed
end
-- Nasconde il pulsante se il giocatore ha già l'abbonamento
local function hideButtonIfPlayerHasSubscription()
if playerHasSubscription() then
purchaseSubscriptionButton.Visible = false
end
end
local function onPromptSubscriptionPurchaseFinished(player: Player, subscriptionId: string, didTryPurchasing: boolean)
if didTryPurchasing then
-- Può richiedere del tempo perché l'abbonamento venga registrato, quindi verificheremo se l'acquisto è andato a buon fine dopo 10 secondi
-- e nasconderemo il pulsante se è così
task.delay(10, hideButtonIfPlayerHasSubscription)
end
end
-- Se il giocatore ha già l'abbonamento, non vogliamo mostrare il pulsante affatto
hideButtonIfPlayerHasSubscription()
purchaseSubscriptionButton.Activated:Connect(function()
MarketplaceService:PromptSubscriptionPurchase(Players.LocalPlayer, SUBSCRIPTION_ID)
-- Se il giocatore ha già l'abbonamento, nascondi il pulsante
hideButtonIfPlayerHasSubscription()
end)
MarketplaceService.PromptSubscriptionPurchaseFinished:Connect(onPromptSubscriptionPurchaseFinished)
Altre funzioni rilevanti
Altre funzioni rilevanti disponibili in MarketplaceService sono:
- GetSubscriptionProductInfoAsync, che restituisce le informazioni sul prodotto di un abbonamento. Include se l'abbonamento è prezzato in Robux o in valuta locale.
- GetUserSubscriptionPaymentHistoryAsync, che restituisce la cronologia dei pagamenti di un utente per l'abbonamento.
- GetUserSubscriptionStatusAsync, che restituisce lo stato dell'abbonamento di un utente.
Guadagna con gli abbonamenti
Per abbonamenti prezzati in valuta locale, guadagni Robux a una tariffa di US $0.01 per 1 Robux secondo il prezzo base della piattaforma che hai selezionato, dopo le spese della piattaforma. Guadagni il 70% del valore dell'abbonamento nel primo mese, e il 100% dal secondo mese in poi. Questa divisione dei ricavi è coerente su tutte le piattaforme.
Ad esempio, se il tuo abbonamento mensile è prezzato a USD $5:
- Primo mese: Guadagni 350 Robux (500 * 0.7 = 350)
- Dal secondo mese in poi: Guadagni l'intero importo di 500 Robux (500 * 1.0 = 500)
Per abbonamenti prezzati in Robux, guadagni il 70% del valore dell'abbonamento ogni mese. Questa divisione dei ricavi è coerente su tutte le piattaforme.
Ad esempio, se il tuo abbonamento mensile è prezzato a 500 Robux:
- Primo mese: Guadagni 350 Robux (500 * 0.7 = 350)
- Dal secondo mese in poi: Continui a guadagnare 350 Robux (500 * 0.7 = 350)
I guadagni dagli abbonamenti in valuta locale sono soggetti a un periodo di attesa di 30 giorni e saranno aggiunti al tuo saldo di Robux dopo che l'intero termine dell'abbonamento è stato fornito.
I guadagni dagli abbonamenti in Robux seguono lo stesso periodo di attesa dei pass e dei prodotti per sviluppatori, che è di circa 5 giorni.
Rimborsi
Per gli abbonamenti in valuta locale, se un utente richiede un rimborso tramite la propria banca o app store entro il periodo di attesa di 30 giorni, la sospensione verrà annullata e non riceverai il pagamento per quella transazione.
I rimborsi ricevuti al di fuori della finestra di attesa comporteranno una deduzione dell'importo del pagamento per la transazione rimborsata dal tuo saldo di Robux. Se il tuo gioco è di proprietà di un Gruppo e il saldo del Gruppo è inferiore all'importo da dedurre, il restante sarà dedotto dal saldo di Robux del Proprietario del Gruppo.
Quando gli utenti annullano o non rinnovano i loro abbonamenti attivi, non ricevono automaticamente rimborsi. Devono richiedere manualmente i rimborsi, che vengono gestiti caso per caso. Per ulteriori informazioni sul processo di rimborso degli abbonamenti degli utenti, consulta il centro assistenza.
Pagamenti
Puoi trovare i tuoi pagamenti per abbonamenti in Saldo Robux ⟩ Le mie transazioni.
I pagamenti per Abbonamenti e Abbonamenti di Gruppo appaiono sotto In arrivo Robux, mentre i rimborsi sono raggruppati sotto In uscita Robux come Rivalsa di pagamento. Le sottopagine degli abbonamenti e degli abbonamenti di gruppo forniscono informazioni aggiuntive per le rispettive categorie.

Per visualizzare le informazioni sui rimborsi per utenti individuali, utilizza GetUserSubscriptionPaymentHistoryAsync.
Analisi degli abbonamenti
Analisi degli abbonamenti ti aiutano a valutare il successo dei singoli abbonamenti, identificare tendenze e prevedere potenziali guadagni futuri. Gli abbonamenti vengono aggiunti alla pagina di analisi degli abbonamenti dopo la prima attivazione e non vengono rimossi quando vengono disattivati o eliminati. Puoi accedere alle analisi pronte tramite il Creator Dashboard, oppure puoi catturare aggiornamenti sugli abbonamenti in tempo reale usando i webhook.
Tramite il Creator Dashboard
Per accedere all'analisi degli abbonamenti sul Creator Dashboard:
- Vai alla tua pagina Creazioni su Creator Dashboard e seleziona il tuo gioco.
- Vai a Monetizzazione ⟩ Abbonamenti.
- Seleziona la scheda Analisi.
L'analisi degli abbonamenti tiene traccia delle seguenti metriche:
- Abbonamenti: Il numero totale di abbonamenti attivi nel tuo gioco.
- Entrate stimate: Il ricavo netto guadagnato dai giochi dopo le commissioni. Non include le informazioni sui rimborsi.
- Suddivisione degli abbonati: I diversi tipi di abbonati.
- Nuovi: Il numero di acquisti di abbonamenti da parte di abbonati per la prima volta.
- Rinnovati: Il numero di abbonamenti rinnovati acquistati in un periodo precedente.
- Risuscitati: Il numero di nuovi abbonamenti acquistati da utenti che avevano precedentemente annullato.
- Annullamenti: Il numero di abbonamenti che non sono stati rinnovati. Questo include tutti gli annullamenti indipendentemente dal trigger, sia esso annullamento dell'utente, disattivazione dell'abbonamento da parte del creatore o per altri motivi.
- Gli annullamenti sono diversi dai rimborsi. Gli abbonamenti annullati sono abbonamenti che non si rinnoveranno più ma sono completamente pagati per il resto del ciclo di fatturazione, mentre i rimborsi restituiscono l'importo pagato dell'abbonamento all'utente.
- Abbonamenti per piattaforma: Il numero di abbonamenti acquistati su ciascuna piattaforma.
- Guadagni per piattaforma: Il ricavo netto guadagnato attraverso abbonamenti acquistati su ciascuna piattaforma.
Queste informazioni sono visibili sotto forma di grafici basati su un intervallo di date nella scheda Tendenze, e come un elenco completo dei total abbonamenti offerti nella scheda Storia.

Tramite webhook
La funzionalità Webhook dell'API Cloud include trigger per quattro eventi di abbonamento: annullato, acquistato, rimborsato e rinnovato. Queste notifiche si attivano immediatamente, quindi puoi rispondere in tempo reale o creare le tue analisi personalizzate. Per ulteriori informazioni su come impostare un webhook, consulta Notifiche Webhook.