Subskrypcje w ramach doświadczeń pozwalają użytkownikom na oferowanie użytkownikom cyklicznych korzyści za miesięczną opłatę. Podobnie jak przepustki, główną różnicą między subskrypcjami a przepustkami jest to, że korzyści przepustki są przyznawane w perpetuum, podczas gdy korzyści subskrypcji są zależne od użytkownika, który p
- Automatyczne odnawianie subskrypcji:: Subskrypcje są automatycznie odnawiane, nie są to jednorazowe zakupy i są cenione w lokalnej waluta.
- Wypłata Robux: Otrzymujesz dochód z subskrypcji w Robux. Aby uzyskać więcej szczegółów, zobacz Zarabianie z subskrypcjami.
- Jednolite: Wszystkie subskrypcje w ramach doświadczenia można posiadać przez użytkowników jednocześnie. Nie są wspierane współdzielne subskrypcje.
Użytkownicy mogą kupować subskrypcje na aplikacji mobilnej lub na stronie internetowej za pośrednictwem kredytu z kartapodarunkowej Roblox lub kredytu lub debitu karty kredytowej, i poprzez metody płatności w sklepach Apple i Google w kwalifikujących się regionach. Użytkownicy mogą wyświetlić i zarządzać swoimi zakupami subskrypcji w zakładce Subskrypcje w ich ustawieniach konta Roblox.
Subskrypcje zostaną rozszerzone do więcej regionów w przyszłości. Niedostępne regiony obejmują: Argentyna, Kolumbia, Indie, Indonezja, Japonia, Rosja, Tajlandia, Turcja, Ukraina i Wietnam.
Wskazówki dotyczące subskrypcji
Przed utworzeniem subskrypcji upewnij się, że zgodzą się one z Warunkami użytkowania Roblox i zgodnie z lokalnym prawem. Wszelkie doświadczenie, które angażuje się w oszustwa, próbuje oszukać użytkowników fałszywymi ofertami lub inaczej łamie nasze Standardy społeczności, zostanie usunięte. Ponadto upewnij się, że twoje
- Dostarcz czyścić, odrębne opcje subskrypcji: Użyj krótkich, zrozumiałych i samozadających się nazw, które różnicują opcje subskrypcji nawzajem. Określ cenę i czas trwania dla każdej opcji podczas handlu w doświadczeniu.
- Oferuj tych samych korzyści na wszystkich platformach i urządzeniach: Niezależnie od tego, gdzie subskrypcja została zakupiona, zapewnij, że użytkownik otrzymuje te same korzyści dla każdego planu subskrypcji.
- Projekt subskrypcji dostosowany do siebie i ogólnych ofert doświadczeń: Tiering tych samych poziomów korzyści, jak oferowanie "Bronze", "Srebro" i "Złoto", jest obecnie niedostępny. Upewnij się, że subskrypcje reprezentują różne zestawy korzyści.
- Oferuj korzyści przez cały okres subskrypcji: Po live subskrypcja oferująca korzyści, honoruj opisane korzyści i nie cofnięte korzyści za kulisami.
- Nie kieruj użytkowników na inną platformę (taką jak mobilna, web, itp.) w doświadczeniu: Meskie jest dobre, ale musisz być wolny, aby komunikować się z użytkownikami poza platformą, używając aplikacji Roblox do kierowania użytkownikami do kupowania gdzie indziej.
- Nie wymagaj dodatkowych korzyści subskrypcji za dodatkowe wymagania, gdy użytkownik płatne: Wymaganie użytkownika do wykonania dodatkowych zadań, takich jak publikowanie w mediów społecznościowych, aby uzyskać dostęp do korzyści, które zapłacił, jest zabronione. Ta liniya kierunkowa nie dotyczy przepustek bitwy, które można tworzyć i sprzedawać jako kupowaćsubskrypcji.
Tworzenie subskrypcji
Zanim możesz utworzyć subskrypcję, musisz być telefon lub zweryfikowanym ID . Aby utworzyć subskrypcję:
Przejdź do swojego doświadczenia w Panelu twórcy i wybierz Produkty monetyzacji > Subskrypcje > 2>Kliknij2> 5>Utwórz subskrypcję5> .
Załaduj okładkowe zdjęcie dla swojej subskrypcji. Zdjęcie jest widoczne dla innych po moderacji.
Utwórz unikalne imię subskrypcji . Nie może być dwóch subskrypcji w ramach doświadczenia, które mogą się podzielić tę samą nazwę. Ta nazwa subskrypcji pojawia się obok skróconej wersji nazwy doświadczenia w fakturach. Dostępne znaki są a-z, A-Z, 0-9, spacje i .,:/!?@#&' .
Napisz Opis swojej subskrypcji. To jest to, co użytkownicy widzą, gdy decydują się na zakup swojej subskrypcji. Twoja opis musi wyraźnie opisać, jakie korzyści oferuje twoja subskrypcja. Opisy są ograniczone do 1000 znaków i wspierają emotki. Po aktywacji subskrypcji, nie możesz zmniejszyć jej korzyści.
Wybierz subskrypcję Typ produktu . Istnieje trzy rodzaje produktów:
- Trwałe: Trwałe przedmioty, które trwają po użyciu lub nabyciu, takie jak fizyczne przedmioty, takie jak broń. Jeśli subskrypcja zawiera zestaw różnych rodzajów przedmiotów, z jednego lub więcej z nich trwałych, takich jak pakiet wartości z mieczem i eliksir, wybierz Trwałe jako swój wpisywaćproduktu.
- Konsumowalne: Tymczasowe przedmioty konsumpcyjne, które wygasają po użyciu lub zdobyciu, takie jak konsumpowalne eliksiry, które zapewniają tymczasowe wzmocnienia, które wygasają z czasem.
- Waluta: dowolna waluta, którą użytkownicy mogą użyć do kupowania przedmiotów w Twoim doświadczeniu.
Wybierz Cenę swojej subskrypcji (w USD). Zarabiasz Robuxy w oparciu o cenę witryny. Subskrybenci aplikacji mobilnej są płatni wyższą ceną. Subskrybenci są płatni w walutalokalnej.
Recurring Cadence oznacza, jak często użytkownik jest opłacany za subskrypcję. Obecnie wartość ta jest zawsze co miesiąc. Kliknij Create Subscription .
Podwójnie sprawdź szczegóły i kliknij Utwórz .
Aktywowanie subskrypcji
Kiedy subskrypcja jest gotowa do sprzedaży, kliknij ⋯ w górnym prawym rogu subskrypcji i wybierz Aktywuj. Aktywowane subskrypcje są dostępne do sprzedaży na stronie Szczegóły doświadczenia i w samym doświadczeniu.
Zanim aktywujesz swoją subskrypcję po raz pierwszy, musisz potwierdzić skróconą wersję swojego nazwy doświadczenia. Ta skrócona nazwa doświadczenia jest wyświetlana dla użytkownika, gdy subskrybować, pojawiając się obok nazwy subskrypcji, którą stworzyłeś w Utworzenie subskrypcji. Jest również widoczne zarządzanie subskrypcji w Roblox i App Store Settings.
Edytowanie subskrypcji
Możesz mieć do 50 subskrypcji na doświadczenie między aktywnymi i nieaktywnymi subskrypcjami. Aby edytować subskrypcje, przesuń się do swojego doświadczenia w Panelu twórcy i wybierz Produkty monetyzacji > Subskrypcje .
Możesz edytować obraz, opis lub stan subskrypcji. Jeśli chcesz edytować więcej niż te właściwości, musisz usunąć i ponownie utworzyć subskrypcje zgodnie z pożądanymi zmianami.
Zmienianie obrazu
Aby aktualizować obraz subskrypcji:
Zaznaczając subskrypcję, kliknij przycisk Zmień .
Wybierz nowy obraz i kliknij Zapisz , a następnie Zapisz zmiany . Nowy obraz zostanie aktywny po pomyślnym przeprowadzeniu moderacji.
Zmiana opisu
Aby zmienić opis subskrypcji:
- Zaznaczając subskrypcję, kliknij pole Opis .
- Edytuj opis, a następnie kliknij Zapisz zmiany . Opisy są ograniczone do 1000 znaków i mogą wspierać emotki.
- Potwierdź zmiany, klikając Tak, Potwierdź na oknie potwierdzenia. Aktualizacja opisu jest natychmiastowa.
Zmiana stanu
Subskrypcje mają dwa możliwe stan:
- Aktywny — Aktywne subskrypcje są dostępne na sprzedaż, z subskrybentami mogącymi przedłużyć swoją subskrypcję na początku następnego okresu.
- Nieaktywne — Nieaktywne subskrypcje są niedostępne na sprzedaż.
Aby zmienić stan subskrypcji:
- Na stronie Subskrypcje, kliknij ⋯ w górnym, prawym rogu kafelki subskrypcji. Albo Aktualizuj lub Sprzedaj w wyprzedaży wyświetlenia, w zależności od stanu subskrypcji, obok kilku innych opcji.
- Wybierz jedną z opcji Aktualizuj lub Usuń sprzedaż , aby zmienić stan subskrypcji.
- Jeśli wybierzesz usunąć sprzedaż , otrzymasz opcję pozwolić obecnym subskrybentom na odnawiaćlub anulowanie przyszłych przedłużeń dla obecnych subskrybentów. W ogólnenie jest wskazane, aby pozwolić obecnym subskrybentom na przedłużenie, chyba że nie planujesz trwale usunąć związanych korzyści subskrypcji z Twojego doświadczenia.
Łączenie Subskrypcji w doświadczeniu
Ten kod przykładu jest prostym przykładem tego, jak wdrożyć wykrywanie subskrypcji w swoim doświadczeniu:
-- Wykonaj ten kod na serwerze
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Zastąp przez swój ID subskrypcji
local function grantAward(player: Player)
-- Powinieneś przyznać nagrodę związaną z subskrypcją tutaj
end
local function revokeAwardIfGranted(player: Player)
-- Ten metod jest wzywany dla każdego gracza, który nie ma subskrypcji
-- Jeśli twój kod zapisuje subskrypcje na magazyny danych lub dostarcza jakąś korzyść, którą należy „cofnąć”
-- należy użyć tego metody do zarządzania cofnięciem
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)
Zastąpienie gry przepustką za subskrypcję
Jedną z opcji do wypatrywania subskrypcji w swoim doświadczeniu jest zastąpienie istniejącego DLC Game Pass nową subskrypcją. Jest to świetny wybór, jeśli chcesz szybko wdrożyć subskrypcje w swoim doświadczeniu, bez dodawania nowych funkcji lub nagród.
Są dwa ważne rozważania, gdy wymieniasz Game Pass na subskrypcję:
- Wszyscy obecni posiadaciele Game Pass powinni nadal otrzymywać korzyści, za które zapłacili.
- Game Pass powinien zostać usunięty z sprzedaży, aby nowi użytkownicy mogli kupić subskrypcję zamiast tego.
- Subskrypcje można cofnąć, co oznacza, że jeśli Twój Game Pass wcześniej utrzymywał swoje korzyści w sklepdanych, musisz "odwołać" te korzyści. Ta uwaga nie dotyczy wszystkich implementacji Game Pass, ale może dotyczyć bardziej złożonych implementacji.
Poniższy przykład kodu pokazuje, jak zastąpić Game Pass subskrypcją:
-- Wykonaj ten kod na serwerze
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local LEGACY_GAME_PASS_ID = 1234 -- Zastąp przez ID gry, która zostanie zastąpiona przez subskrypcję
local SUBSCRIPTION_ID = "EXP-11111111" -- Zastąp przez swój ID subskrypcji
local function awardBenefit(player: Player)
-- Powinieneś tutaj przyznać subskrypcję
end
local function revokeBenefitIfGranted(player: Player)
-- Ten metod jest wzywany dla każdego gracza, który nie ma subskrypcji
-- Jeśli twój kod zapisuje subskrypcje na magazyny danych lub dostarcza jakąś korzyść, którą należy „cofnąć”
-- należy użyć tego metody do zarządzania cofnięciem
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
-- Jeśli gracz kupił legendarny przepustka, nie musimy sprawdzać jego statusu subskrypcji
-- gdyż mają przyznane korzyści na życie
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)
-- Będziemy nadal słuchać zakupów w grze w przypadku, gdyby dostępność gry nadal była na sprzedaży
MarketplaceService.PromptGamePassPurchaseFinished:Connect(onPromptGamePassPurchaseFinished)
Wymaganie zakupów subskrypcji
Chociaż użytkownicy mogą bezpośrednio kupować subskrypcje z Dettalami Gry strony, powinieneś również dodać sposób na kupienie subskrypcji w grze.
Gdy zapytasz o kupowaćsubskrypcji, Players.UserSubscriptionStatusChanged uruchom, jeśli gracz już posiada subskrypcję, co pomaga złapać sytuacje, w których gracz kupuje subskrypcję z strony Szczegóły gry , gdy jest już w grze.
Chociaż możesz poprosić o zakup subskrypcji od klienta, sprawdzenie, czy użytkownik ma już subskrypcję za pośrednictwem MarketplaceService.GetUserSubscriptionStatusAsync musi być wykonane z serwera.
Ten przykład tworzy RemoteFunction, którym klienci mogą używać do prośby o status subskrypcji:
--Ten kod powinien zostać wykonany na serwerze
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Utwórz funkcję zdalną, którą klient może użyć do weryfikacji stanu status
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
-- Ten kod powinien zostać wykonany na klientach
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local SUBSCRIPTION_ID = "EXP-11111111" -- Zastąp przez swój ID subskrypcji
local getSubscriptionStatusRemote = ReplicatedStorage:WaitForChild("GetSubscriptionStatus")
local purchaseSubscriptionButton = script.Parent.PromptPurchaseSubscription -- Zastąp swoim przyciskiem
local function playerHasSubscription()
-- Zaznacz, czy abonament zastępuje przepustkę do gry, będziesz musiał sprawdzić, czy przepustka do gry jest również w posiadaniu tutaj
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
-- Ukrywa przycisk, jeśli gracz już ma subskrypcję
local function hideButtonIfPlayerHasSubscription()
if playerHasSubscription() then
purchaseSubscriptionButton.Visible = false
end
end
local function onPromptSubscriptionPurchaseFinished(player: Player, subscriptionId: string, didTryPurchasing: boolean)
if didTryPurchasing then
-- Może to chwilę potrwać, aby subskrypcja została zarejestrowana, więc sprawdzimy, czy zakup zakończył się za 10 sekund
-- i ukryj przycisk, jeśli ma
task.delay(10, hideButtonIfPlayerHasSubscription)
end
end
-- Jeśli gracz już ma subskrypcję, nie chcemy pokazywać przycisku wszystko
hideButtonIfPlayerHasSubscription()
purchaseSubscriptionButton.Activated:Connect(function()
MarketplaceService:PromptSubscriptionPurchase(Players.LocalPlayer, SUBSCRIPTION_ID)
-- Jeśli gracz już ma subskrypcję, ukryj przycisk
hideButtonIfPlayerHasSubscription()
end)
MarketplaceService.PromptSubscriptionPurchaseFinished:Connect(onPromptSubscriptionPurchaseFinished)
Inne odpowiednie funkcje
Inne odpowiednie funkcje są dostępne w MarketplaceService :
Zarabianie z subskrypcjami
Subskrypcje są cenione w lokalnej waluta, ale zarabiasz Robuxy w wysokości US $0,01 do 1 Robux na podstawie ceny platformy, którą wybrałeś dla subskrypcji po cenach platformy. Roblox pobiera opłatę za platformę w wysokości 30% dla pierwszego miesiąca, co oznacza, że otrzymujesz pełne dochody z subskrypcji od drugiego miesiąca itu. Ta różnica w cenach jest
Na przykład, jeśli użytkownik subskrybuje podstawową cenę $ 9.99 (komputer stacjonarny) lub $ 12.99 (komórka mobilna):
- Pierwszy miesiąc: Twórca subskrypcji otrzymuje 999 * .7 = 699 (komputer stacjonarny) lub 1299 * .7 = 909 (komórka).
- Drugi miesiąc po przekroczeniu:: Twórca subskrypcji otrzymuje 999 = 999 (komputer stacjonarny) lub 1299 = 1299 (mobilne).
Zarobki są podlegane 30-dniowym opóźnieniom i zostaną doliczone do Twojego salda Robux po dostarczeniu pełnej subskrypcji. Jeśli użytkownik wniesie o zwrot subskrypcji za pośrednictwem swojego banku lub sklepu aplikacji w ciągu 30-dniowego okresu umowy, opóźnienie zostanie anulowane i nie otrzymasz płatności za tę transakcję.
Otrzymane zwroty z okienka przeciągnięcia poza oknem przeciągnięcia będą wynosić kwotę płatności dla transakcji zwróconej z Twojego konta Robux. Jeśli Twoje doświadczenie należy do grupy, a saldo grupy jest mniejsze niż kwota do zwrócenia, pozostała część zostanie odciągnięca z salda właściciela grupy.
Anulowanie aktywnej subskrypcji i nieudane jej odnowienie nie powoduje automatycznie zwrot, zwrot pieniędzy. Użytkownik musi ręcznie żądać płatności, co jest zarządzane na bazie przypadku do przypadku. Dla więcej informacji o procesie płatności użytkownika, sprawdź centrum pomocy.
Wygrane z subskrypcji
Wypłaty znajdują się w Robux Balance > Moje transakcje :
Subskrypcje i Subskrypcje grupowe pojawiają się pod Incoming Robux, podczas gdy płatności są grupowe pod 0> Outgoing 0> Robux jako 3> Płatność Reversal 3>. Subskrypcje i grupowe subskrypcje subpage dostarczają dodatkowe informacje dla swoich kategorii.
Aby zobaczyć informacje o zwrotach dla poszczególnych użytkowników, użyj MarketplaceService:GetUserSubscriptionPaymentHistoryAsync() .
Analiza subskrypcji
Analityka subskrypcji pomaga Ci zmierzyć sukces poszczególnych subskrypcji, zidentyfikować trendy i przewidzieć potencjalne zarobki przyszłości. Subskrypcje są dodawane do strony analizy subskrypcji po po raz pierwszy aktywowane i nie są usuwane, gdy są wyłączone lub usuwane. Możesz uzyskać dostęp do gotowych analityk poprzez panele głównego dostaw
Przez Panel Twórcy
Aby uzyskać dostęp do analiz subskrypcji na Panelu twórcy:
Przejdź do swojej strony Twórcy na Panelu twórcy i wybierz swoją własność.
Przejdź do zakładki Monetyzacja i wybierz Subskrypcje.
Subskrypcja analizuje następujące metryki:
- Subskrypcje: Całkowita liczba aktywnych subskrypcji w twojej doświadczeniu.
- Kwota przewidywanych dochodów: Netto przychodów z doświadczeń po opłatach. Nie zawiera informacji o zwrotach.
- Dostosowanie subskrybentów: Różne rodzaje subskrybentów.
- Nowy : liczba zakupów subskrypcji przez pierwszych subskrybentów.
- Odnawiony : Liczba subskrypcji odnawianych kupionych w poprzednim okresie.
- Z復活шены : Liczba nowych subskrypcji zakupionych przez użytkowników, którzy wcześniej anulowali.
- Odrzucenia : Liczba subskrypcji, które nie zostały odnawione. Obejmuje to wszystkie odwołania bez względu na trygrys, czy to użytkownika, czy subskrypcję dezaktywowaną przez twórcalub inny sposób.
- Anulowania różnią się od zwrotów. Anulowane subskrypcje to subskrypcje, które nie będą już się odnawiać, ale są płatne w pełni za resztę cyklu fakturowania, podczas gdy zwroty zwracają płatną kwotę subskrypcji użytkownikowi.
- Subskrypcje przez platformę : Liczba subskrypcji zakupionych na każdej platforma.
- Zarobki z platformy : Osiągnięto przychody z platformy poprzez subskrypcje zakupione na każdej platformie.
Ta informacja jest widoczna w formie grafik opartych na zasięgu czasowego w formie Trendy pod Historia zakładką.
Przez Webhook
Funkcja Cloud API Webhook obejmuje trigger dla czterech wydarzeń subskrypcji: anulowano, zakupiono, zwrócono i przedłużono. Te notyfikacje uruchamiają natychmiastowo, więc możesz odpowiadać w czasie rzeczywistym lub tworzyć własną analitykę danych. Dla więcej informacji o tym, jak ustawić webhook, zobacz Notatki o webhookach.