Abbonamenti all'interno delle esperienze ti consentono di offrire ai utenti benefici ricorrenti a un costo mensile.Simile a passaggi, la principale differenza tra abbonamenti e pass è che i vantaggi di un pass sono concessi in perpetuità, mentre i vantaggi di un abbonamento sono condizionati al pagamento di una tariffa mensile da parte dell'utente.Le sottoscrizioni su Roblox hanno le seguenti caratteristiche:
- Rinnovo automatico: Gli abbonamenti sono rinnovati automaticamente, non acquisti one-time, e sono tariffati in Monetalocale.
- pagamentoin Robux: Ricevi entrate di abbonamento in Robux. Per ulteriori dettagli, vedi Guadagna con le sottoscrizioni .
- Singolo livello: Tutte le sottoscrizioni all'interno di un'esperienza possono essere possedute dagli utenti contemporaneamente.Le sottoscrizioni reciprocamente esclusive non sono supportate.
Gli utenti possono acquistare abbonamenti sull'app desktop o sul sito Web utilizzando il credito della carta regalo Roblox o una carte regalo, Gift cardsdi credito o debito e attraverso i metodi di pagamento negli Apple e Google Store nelle regioni qualificanti.Gli utenti possono visualizzare e gestire i loro acquisti di abbonamento nella scheda Abbonamenti nelle impostazioni del loro account Roblox.
Le sottoscrizioni verranno estese a più regioni in futuro. Le regioni non disponibili includono: Argentina, Colombia, India, Indonesia, Giappone, Russia, Taiwan, Türkiye (Turchia), UAE, Ucraina e Vietnam.
Linee guida per l'iscrizione
Prima di creare le tue iscrizioni, assicurati che si allineino ai Termini d'uso di Roblox e rispettino le leggi locali.Qualsiasi esperienza che si impegna in truffe, tenta di ingannare gli utenti con offerte false o viola altrimenti i nostri Standard della comunità, verrà rimossa.Inoltre, assicurati che le tue sottoscrizioni rispettino le seguenti linee guida:
- Fornisci opzioni di abbonamento Eliminare/Puliree distinguibili: Usa nomi brevi, succinti e auto-esplicativi che distinguono le opzioni di abbonamento l'uno dall'altro.Specifica il prezzo e la durata per ciascuna opzione quando merchandising in-experience.
- Offri gli stessi vantaggi su piattaforme e dispositivi diversi: Indipendentemente da dove è stata acquistata l'iscrizione, assicurati che l'utente riceva gli stessi vantaggi per qualsiasi piano di iscrizione specificato.
- Progetta abbonamenti per adattarsi l'un l'altro e alle offerte di esperienza complessiva: La segmentazione della stessa suite di benefici, come l'offerta di "Bronze", "Silver" e "Gold" livelli che sono reciprocamente esclusivi, non è attualmente disponibile.Assicurati che le sottoscrizioni rappresentino set distinti di vantaggi.
- Offri i vantaggi per l'intero termine dell'abbonamento: Una volta che un'offerta di abbonamento è Attiva, onora i vantaggi descritti e non revocare i vantaggi dietro le quinte.
- Non dirigere gli utenti all'acquisto su un'altra piattaforma (ad esempiomobile, web, eccetera.) in-experience: Mentre sei libero di comunicare con gli utenti off-platform, utilizzando l'app Roblox per dirigere gli utenti ad acquistare altrove è vietato.
- Non gateare i vantaggi di sottoscrizione con requisiti aggiuntivi una volta che un utente ha Pagato: Richiedere a un utente di eseguire compiti aggiuntivi, come la pubblicazione sui social media, per ottenere l'accesso ai vantaggi che ha pagato è vietato.Questa linea guida non ha alcun impatto sui pass di battaglia, che puoi creare e commercializzare sia come Acquistadi abbonamento.
Crea iscrizioni
Prima di poter creare un abbonamento, devi essere telefono o ID verificato. Per creare un abbonamento:
Naviga alla tua esperienza nella Dashboard del creatore e seleziona Prodotti di monetizzazione > Abbonamenti .Quindi fai clic su Crea un abbonamento .
Carica un'immagine di copertina per la tua iscrizione. L'immagine è visibile agli altri dopo la moderazione.
Crea un nome di abbonamento unico Nome di abbonamento .Nessuna delle due iscrizioni all'interno di un'esperienza può condividere lo stesso nome.Questo nome di abbonamento appare accanto a una versione abbreviata del nome della tua esperienza nelle dichiarazioni di fatturazione.I caratteri consentiti sono a-z, A-Z, 0-9, spazi e .,:/!?@#&' .
Scrivi una Descrizione della tua iscrizione.Questo è ciò che gli utenti vedono quando decidono di acquistare il tuo abbonamento.La tua descrizione deve descrivere chiaramente quali benefici offre la tua iscrizione.Le descrizioni sono limitate a 1.000 caratteri e supportano gli emoji.Una volta attivata un'iscrizione, non puoi ridurre i suoi benefici.
Seleziona il tipo di abbonamento Tipo di prodotto . Ci sono tre tipi di prodotti:
- Resistente: Oggetti permanenti che persistono dopo l'uso o l'acquisizione, come oggetti fisici come armi.Se un abbonamento include un insieme di diversi tipi di beni, con uno o più di essi durabili, come un pacchetto di valore con una spada e una pozione, scegli Durabile come suo inserisci / scrividi prodotto.
- Consumabili: Oggetti temporaneamente riacquistabili dopo l'uso o l'acquisizione, come pozioni consumabili che concedono potenziamenti temporanei che scadono nel tempo.
- Valuta: Qualunque media di scambio che gli utenti possono utilizzare per acquistare oggetti all'interno della tua esperienza.
Seleziona il Prezzo della tua iscrizione (in USD).Guadagni Robux in base al prezzo web.Gli iscritti all'app mobile sono addebitati un prezzo più alto.Gli iscritti vengono addebitati nella loro Monetalocale.
La Cadenza ricorrente è la frequenza con cui l'utente viene addebitato per l'abbonamento.Attualmente, questo valore è sempre Mensile.Fai clic su Crea abbonamento .
Controlla i dettagli e clicca Crea .
Attiva le iscrizioni
Una volta che una sottoscrizione è pronta per andare in sconto, fai clic su ⋯ in alto a destra della scheda di sottoscrizione e seleziona Attiva .Le sottoscrizioni attivate sono disponibili per la vendita nella pagina Dettagli dell'esperienza e all'interno dell'esperienza stessa.

Prima di attivare la tua iscrizione per la prima volta, devi confermare una versione abbreviata del nome della tua esperienza.Questo nome di esperienza abbreviato viene visualizzato all'utente quando si Sottoscrizione, Abbonamneto, appare accanto al nome di sottoscrizione che hai creato in Crea sottoscrizioni.È anche visibile la gestione delle sottoscrizioni in Roblox e nelle impostazioni dell'App Store.
Modifica iscrizioni
Puoi avere fino a 50 abbonamenti per esperienza tra abbonamenti attivi e inattivi.Per modificare le sottoscrizioni, naviga nella tua esperienza nella Dashboard del creatore e seleziona Prodotti di monetizzazione > Sottoscrizioni .
Puoi modificare l'immagine, la Descrizioneo lo stato di un abbonamento.Se vuoi modificare più di queste proprietà, devi eliminare e ricreare gli abbonamenti con i cambiamenti desiderati.
Cambia immagine
Per aggiornare l'immagine di un abbonamento:
Con l'abbonamento selezionato, fai clic sul pulsante Cambia .
Scegli una nuova immagine e clicca Salva , quindi Salva modifiche . L'immagine nuova va live dopo aver superato con successo la moderazione.
Cambia la Descrizione
Per modificare la Descrizionedi un abbonamento:
- Con l'abbonamento selezionato, fai clic sul campo Descrizione .
- Modifica la Descrizione, quindi clicca su Salva modifiche . Le descrizioni sono limitate a 1.000 caratteri e possono supportare gli emoji.
- Conferma le modifiche facendo clic su Sì, Conferma sulla finestra di conferma. Gli aggiornamenti della descrizione si riflettono immediatamente.
Cambia stato
Le sottoscrizioni hanno due stati possibili:
- Attivo — Le sottoscrizioni attive sono disponibili per la Vendita, con gli abbonati in grado di rinnovare l'abbonamento all'inizio del prossimo periodo.
- Inattive — Le sottoscrizioni inattive non sono disponibili In Vendita.
Per modificare lo stato di un abbonamento:
- Sulla pagina delle iscrizioni, fai clic su ⋯ nell'angolo in alto a destra della Piastrelladella sottoscrizione.Oppure Attiva o Rimuovi dalla vendita schermi, a seconda dello stato attuale dell'abbonamento, insieme ad alcune altre opzioni.
- Seleziona Attiva o Rimuovi dalla vendita per cambiare lo stato dell'abbonamento.
- Se selezioni Rimuovi vendita , ti verrà data l'opzione di consentire ai sottoscrittori esistenti di Rinnovoo annullare le rinnovazioni future per i sottoscrittori attuali.In Generale, è consigliabile consentire ai sottoscrittori esistenti di rinnovare a meno che tu non stia progettando di rimuovere definitivamente i benefici di sottoscrizione associati dalla tua esperienza.
Integrare le sottoscrizioni in un'esperienza
Questo esempio di codice è un semplice esempio di come implementare la rilevazione delle sottoscrizioni nella tua esperienza:
-- Esegui questo codice sul Server
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Sostituisci con l'ID di sottoscrizione
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 la sottoscrizione _not_
-- Se il tuo codice salva abbonamenti ai 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(`Error while checking if player has subscription: {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 di gioco con un abbonamento
Una delle opzioni per distribuire le sottoscrizioni nella tua esperienza è quella di sostituire un Game Pass esistente con un abbonamento.Questa è una grande opzione se vuoi implementare rapidamente le sottoscrizioni nella tua esperienza senza aggiungere nuove funzionalità o premi.
Ci sono due considerazioni importanti quando si sostituisce un Pass di gioco con un abbonamento:
- Qualsiasi detentore esistente del Game Pass dovrebbe continuare a ricevere il vantaggio che ha pagato.
- Il Game Pass dovrebbe essere rimosso dalla vendita in modo che gli nuovi utenti possano acquistare l'abbonamento invece.
- Le sottoscrizioni possono essere revocate, il che significa che se il tuo Game Pass in precedenza ha persistito nei suoi benefici in un Negoziodi dati, devi "annullare" questi benefici.Questa considerazione non si applica a tutte le implementazioni del Game Pass, ma potrebbe essere applicata a quelle più complesse.
Il seguente esempio di codice mostra come sostituire un Game 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 di gioco che viene sostituito da un abbonamento
local SUBSCRIPTION_ID = "EXP-11111111" -- Sostituisci con l'ID di sottoscrizione
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 la sottoscrizione _not_
-- Se il tuo codice salva abbonamenti ai 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(`Error fetching subscription status: {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(`Error fetching game pass status: {result}`)
return
end
if result then
-- Se il giocatore ha acquistato il Passaggi di giocodi gioco legacy, non abbiamo bisogno di cercare lo stato di Stato
-- 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 ad ascoltare gli acquisti di pass di gioco in gioco nel caso in cui il pass di gioco sia ancora in Vendita
MarketplaceService.PromptGamePassPurchaseFinished:Connect(onPromptGamePassPurchaseFinished)
Acquisti di abbonamento rapidi
Anche se gli utenti possono acquistare abbonamenti direttamente dalla pagina Dettagli di gioco di un'esperienza, dovresti anche aggiungere un modo per acquistare un abbonamento in gioco.
Quando richiedi l'Acquistadi un abbonamento, Players.UserSubscriptionStatusChanged brucia se il giocatore possiede già l'abbonamento, il che aiuta a catturare scenari in cui un giocatore acquista un abbonamento dalla pagina Dettagli di gioco mentre è già in gioco.
Anche se puoi richiedere l'acquisto di un abbonamento al client, controllare se un utente abbia già un abbonamento tramite MarketplaceService.GetUserSubscriptionStatusAsync deve essere eseguito dal Server.
Questo esempio 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 una funzione remota che il client può utilizzare 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 deve essere eseguito sul client
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Sostituisci con l'ID di sottoscrizione
local getSubscriptionStatusRemote = ReplicatedStorage:WaitForChild("GetSubscriptionStatus")
local purchaseSubscriptionButton = script.Parent.PromptPurchaseSubscription -- Sostituisci con il tuo pulsante
local function playerHasSubscription()
-- Nota se la tua iscrizione sta sostituendo un Passaggi di giocodi gioco, dovrai controllare se anche il pass di gioco è di proprietà qui
local success, result = pcall(function()
return getSubscriptionStatusRemote:InvokeServer(SUBSCRIPTION_ID)
end)
if not success then
print(`Error fetching subscription status: {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ò volerci un po' di tempo perché la sottoscrizione venga registrata, quindi controlleremo se l'acquisto è avvenuto in 10 secondi
-- e nascondi il pulsante se ha
task.delay(10, hideButtonIfPlayerHasSubscription)
end
end
-- Se il giocatore ha già l'abbonamento, non vogliamo mostrare il pulsante tutti/tutte
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 sono disponibili in MarketplaceService :
Guadagna con gli abbonamenti
Le sottoscrizioni sono tariffate in Monetalocale, ma guadagni Robux ad un tasso di US $0,01 a 1 Robux secondo il prezzo della piattaforma di base che hai selezionato per la sottoscrizione dopo le spese della piattaforma.Roblox addebita una tassa di piattaforma del 30% solo per il primo mese, il che significa che ricevi l'intero guadagno dell'abbonamento dal secondo mese in poi.Questa divisione dei ricavi è coerente su tutte le piattaforme.
Ad esempio, se un utente si abboni al prezzo di base di US$ 9,99 (Desktop) o $12,99 (mobile):
- Primo mese: Il creatore dell'abbonamento riceve 999 * .7 = 699 (Desktop) o 1299 * .7 = 909 (mobile).
- Secondo mese in poi: Il creatore dell'abbonamento riceve 999 = 999 (Desktop) o 1299 = 1299 (mobile).
Gli utili sono soggetti a 30 giorni di sospensione e verranno aggiunti al tuo saldo Robux dopo che il termine completo dell'abbonamento è stato consegnato.Se un utente richiede un rimborso per un abbonamento attraverso la banca o l'app store nel periodo di detenzione di un mese, il periodo di detenzione verrà annullato e non riceverai il pagamento per quella transazione.
I rimborsi ricevuti al di fuori della finestra di attesa daranno luogo all'importo di pagamento per la transazione rimborsata che verrà detratto dal tuo saldo Robux.Se la tua esperienza è di proprietà di un Gruppo e l'equilibrio del Gruppo è inferiore all'importo da dedurre, il resto verrà dedotto dal saldo del proprietario del Gruppo Robux.
Gli utenti che annullano un abbonamento attivo e non riescono a rinnovarlo non ricevono automaticamente un rimborso.L'utente deve richiedere manualmente rimborsi, che vengono gestiti su base caso per caso.Per maggiori informazioni sul processo di rimborso dell'abbonamento dell'utente, consulta il centro d'assistenza.
Pagamenti di abbonamento
I pagamenti sono trovati in Robux Balance > Le mie transazioni :

Sottoscrizioni e Pagamenti di gruppo appaiono sotto In arrivo Robux, mentre i rimborsi sono raggruppati sotto Uscita Robux come Reversal di pagamento .Le pagine delle sottoscrizioni e delle sottoscrizioni di gruppo forniscono ulteriori informazioni per le rispettive categorie.

Per visualizzare le informazioni di rimborso degli utenti individuali, usa MarketplaceService:GetUserSubscriptionPaymentHistoryAsync() .
Analitica delle sottoscrizioni
Analitica delle sottoscrizioni ti aiuta a misurare il successo delle singole sottoscrizioni, a identificare le tendenze e a prevedere potenziali guadagni futuri.Le sottoscrizioni vengono aggiunte alla pagina analitica delle sottoscrizioni dopo la prima volta che vengono attivate e non vengono rimosse quando vengono disattivate o eliminate.Puoi accedere ad analisi preconfezionate attraverso la dashboard del creatore, o puoi catturare gli aggiornamenti di abbonamento in tempo reale utilizzando i webhook.
Attraverso la dashboard del creatore
Per accedere all'analisi delle sottoscrizioni sulla dashboard del creatore:
Naviga alla tua pagina Creazioni su Dashboard del creatore e seleziona la tua esperienza.
Passa alla scheda Monetizzazione e seleziona Abbonamenti .
L'analisi delle sottoscrizioni traccia le seguenti metriche:
- Abbonamenti: Importo totale di abbonamenti attivi nella tua esperienza.
- Redditto stimato: Il reddito netto guadagnato dalle esperienze dopo le tasse. Non include le informazioni di rimborso.
- Breakdown degli abbonati: I diversi tipi di abbonati.
- Nuovo : Il numero di acquisti di abbonamenti da parte di nuovi abbonati per la prima volta.
- Rinnovato : Il numero di abbonamenti di rinnovo acquistati in un periodo precedente.
- Resurrected : Il numero di nuove sottoscrizioni acquistate da utenti che hanno precedentemente annullato.
- Cancellazioni : Il numero di abbonamenti che non sono stati rinnovati.Questo include tutte le cancellazioni indipendentemente dal grilletto, che sia l'annullamento dell'utente, la disattivazione dell'abbonamento da parte del Creatoreo con altri mezzi.
- Le cancellazioni sono diverse dai rimborsi.Le sottoscrizioni annullate sono sottoscrizioni che non si rinnoveranno più ma saranno pagate per intero per il resto del ciclo di fatturazione, mentre i rimborsi restituiscono l'importo della sottoscrizione pagata all'utente.
- Iscrizioni per piattaforma : Il numero di iscrizioni acquistate su ogni Piattaforma.
- Guadagni della piattaforma : Il ricavo netto guadagnato attraverso le sottoscrizioni acquistate su ogni Piattaforma.
Questa informazione è visibile nella forma di grafici basati su un intervallo di date sotto la scheda Trend , e come una lista completa di abbonamenti totali offerti sotto la scheda Storia .

Attraverso webhook
La funzione Webhook API Cloud include trigger per quattro eventi di abbonamento: annullati, acquistati, rimborsati e rinnovati.Queste notifiche si attivano immediatamente, quindi puoi rispondere in tempo reale o creare le tue analitiche personalizzate.Per ulteriori informazioni su come configurare un webhook, vedi Notifiche webhook.