Powiadomienia o doświadczeniach są sposobem dla użytkowników z wybranymi opcjami w wieku 13 lat +, aby nadążyć za swoimi ulubionymi doświadczeniami za pomocą terminowych, spersonalizowanych powiadomień.Jako programista możesz określić, jakie rodzaje działań w doświadczeniu są najważniejsze do powiadomienia użytkowników, a także określić treść powiadomienia.


System powiadomień o doświadczeniu zawiera obserwujefunkcje:
Dostosowywalne powiadomienia z parametrami — Pełna elastyczność dostosowywania wiadomości o powiadomieniu z parametrami, na przykład:
Your gold goose egg has hatched!Allie @LaterSk8er1 just beat your record on the Tokyo Tour track!Dane o uruchomieniu — Obejmują opcjonalne dane o uruchomieniu, które można odczytać za pośrednictwem Player:GetJoinData(), gdy odbiorca powiadomienia dołączy.Może to obejmować przekierowanie użytkownika do lokalizacji koordynacyjnej lub dostosowanie jego doświadczenia dołączania.
Wsparcie analityczne — Śledź zasięg swojej dostępnej publiczności i wyniki swoich powiadomień w panelu twórcy.
Wymagania kwalifikacyjne
Aby korzystać z interfejsów programowania aplikacji do wysyłania powiadomień, doświadczenie musi spełniać następujące podstawowe kryteria:
- Minimalnie 100 odwiedzin od uruchamiać.
- Doświadczenie nie może być moderowane.
- Musisz jako twórca mieć uprawnienie do zarządzania doświadczeniem.
Wskazówki dotyczące użycia
Powiadomienia powinny być osobiste dla odbiorcy i powinny opierać się na działaniu w doświadczeniu, które jest specjalnie odpowiednie dla użytkownika.Odwrotnie, powiadomienia nie powinny mieć ogólnego, reklamowego charakteru.
Idealnie powiadomienia powinny również ostrzec użytkowników o czymś, na co mogą podjąć niezwłoczną akcję .Unikaj czysto informacyjnych powiadomień, które nie wywołują bezpośredniej odpowiedzi lub akcji.
Całe zawartość powiadomień i zachowania podlegają standardom społeczności Roblox i filtrowaniu tekstu na poziomie platformy , niezależnie od wytycznych dotyczących wieku doświadczenia .Oznacza to, że jeśli twoje doświadczenie jest doświadczeniem 17+, twoje powiadomienia nadal podlegają standardom ogólno platformowym, nie standardom polityki 17+ .
Treść powiadomienia nie może zawierać nie ciemnych wzorców lub innych taktyk, które manipulują lub oszukują użytkowników do podejmowania decyzji, których nie zamierzają, lub które mogą być sprzeczne z ich najlepszymi interesami.Może to obejmować obserwujeelementy:
Przebrane reklamy — Powiadomienia, które są celowo przebierane jako organiczna treść, ale w rzeczywistości są reklamą.Na przykład, załóżmy, że kliknięcie następnej powiadomienia prowadzi do Petz World, ale nie wyświetla się żadna "ważna informacja".
Akcje pod presją czasu — Powiadomienia, które naciskają użytkowników na klikanie, subskrybowanie, zgadzanie się lub kupowanie poprzez zastosowanie fałszywej presji czasu.
Przynęta i przełącznik z darmowymi przedmiotami lub innymi nagrodami — Powiadomienia, które fałszywie mówią użytkownikom, że otrzymają coś za darmo, gdy tak nie jest.Na przykład, po kliknięciu następującej powiadomieniestaje się jasne, że potrzebne jest coś więcej, aby otrzymać prezent.
Oszukiwanie użytkowników do zakupu — Powiadomienia, które oszukują użytkowników, aby dokonywali niezamierzonych zakupów.Na przykład, załóżmy, że kliknięcie następnej powiadomienia prowadzi bezpośrednio do systemu zakupów, który został wcześniej wczytany z przedmiotami, które użytkownik nie kupowaćdo zakupu.
Doświadczenia nie powinny wymagać od użytkowników włączenia powiadomień, aby wziąć udział lub postępować w rozgrywka.
Implementacja
Implementacja powiadomień o doświadczeniu zaczyna się od stworzenia ciągu powiadomień i włączenia pakietu w projekt.Gdy te są skonfigurowane, możesz wysyłać powiadomienia z opcjonalnymi parametrami niestandardowymi.
Alternatywnie możesz użyć Otwórz API chmury, aby uruchomić powiadomienia za pomocą wolnych próśb API.
Utwórz ciąg powiadomień
Podobnie jak w przypadku zaproszeń do grania, musisz utworzyć i edytować swoje struny powiadomień w panelu twórcy. Nie ma domyślnej strony powiadomienia o ciąg, więc ten krok jest wymagany.
Przejdź do Pulpitu nawigacyjnego twórcy.
Podobnie jak odznaki, ciągniki powiadomień są powiązane z określonym doświadczeniem . Zlokalizuj miniaturkę tego doświadczenia i kliknij ją.
W lewej kolumnie, pod zaangażowaniem , kliknij powiadomienia .
W środkowym regionie kliknij przycisk Utwórz ciąg powiadomień .
Wypełnij nazwę identyfikatora (widoczną tylko dla ciebie) oraz ciąg powiadomienia niestandardowego; ograniczony jest do 99 znaków i może zawierać nieograniczone parametry niestandardowe.Powiadomienia będą automatycznie używać tytułu swojego doświadczenia jako tytuł powiadomienia, ale możesz dodatkowo użyć experienceName , aby odnieść się do swojego doświadczenia w tekście ciała powiadomienia.
Przykładowe struny powiadomień:
You're {numQuests} quests away from completing the weekly challenge!Your {eggName} hatched! Come meet your new pet.You won {numRaces} races this week and unlocked the {racetrackName} track!{userId-friend} just beat your record on the Tokyo Tour track! Time for revenge?Gdy będziesz gotowy, kliknij przycisk Utwórz ciąg powiadomień .
Na stronie powiadomień, w tabeli powiadomień, kliknij przycisk ⋯ w kolumnie Akcje i wybierz Kopiuj ID zasobu .
Użyj skopiowanego ID dla wartości klucza w tabeli jako pokazano w przykładzie skryptu >.
Zawórz pakiet
Aby wdrożyć powiadomienia o doświadczeniach, musisz uzyskać pakiet Luau z sklepu twórców.
Upewnij się, że wybrano sortowanie modele , a następnie kliknij przycisk Zobacz wszystko dla kategorii .
Zlokalizuj i kliknij pasek modułów rozwojowych .
Zlokalizuj moduł Otwórz chmurę i kliknij go, lub przeciągnij i upuść do widoku 3D.
W oknie Eksploratora przenieś cały model OpenCloud do ServerScriptService .
Wyślij powiadomienie o doświadczeniu
Po utworzeniu linii powiadomienia i włączeniu pakietu w projekcie możesz wysyłać powiadomienia z krytycznych skryptów serwerowych.Powiadomienia zostaną dostarczone do zarejestrowanych użytkowników w wieku 13+ za pośrednictwem ich strumienia powiadomień Roblox, po którym będą mogli dołączyć do doświadczenia bezpośrednio za pomocą przycisku Dołącz na powiadomieniu i wygenerować zgodnie z danymi o uruchomieniu .

Aby wysłać podstawową powiadomienie do określonego odbiorca, włącz ID strony powiadomienia w polu przesłania, a następnie wezwij funkcję createUserNotification z danymi odbiorcy i danymi żądania.
Wyślij powiadomienie o doświadczeniu
local ServerScriptService = game:GetService("ServerScriptService")local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)local recipientPlayerID = 505306092-- W treści, "messageId" jest wartością ID zasobu powiadomienialocal userNotification = {payload = {messageId = "5dd7024b-68e3-ac4d-8232-4217f86ca244",type = "MOMENT"}}local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)if result.statusCode ~= 200 thenprint(result.statusCode)print(result.error.code)print(result.error.message)end
Dostosuj powiadomienia za pomocą parametrów
Aby dostosować powiadomienie dla każdego odbiorca, możesz dodać parametry do linii powiadomienia, a następnie dostosuj parametry podczas wywoływania API.Na przykład możesz określić ciąg powiadomienia jako:
Następnie ustaw parametry userId-friend i points w skrypcie:
Dostosuj powiadomienie za pomocą parametrów
local ServerScriptService = game:GetService("ServerScriptService")local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)local recipientPlayerID = 505306092local userIdFriendParam = {int64Value = 3702832553}local pointsParam = {stringValue = "5"}-- W treści, "messageId" jest wartością ID zasobu powiadomienia-- W tym przykładzie ciąg powiadomienia to "{userId-friend} pobił twój rekordowy wynik o {points} punktów! Czas na awansowanie?"local userNotification = {payload = {messageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1",type = "MOMENT",parameters = {["userId-friend"] = userIdFriendParam,["points"] = pointsParam}}}local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)if result.statusCode ~= 200 thenprint(result.statusCode)print(result.error.code)print(result.error.message)end
Zachęć użytkowników do włączenia powiadomień
Aby zachęcić użytkowników do włączenia powiadomień dla twojego doświadczenia, możesz wyświetlić monit o pozwolenie w doświadczeniu dla użytkowników w wieku 13+ za pomocą metody ExperienceNotificationService:PromptOptIn().

Możesz uruchomić monit ostrzeżenia w dowolnym odpowiednim kontekście w swoim doświadczeniu, który zapewnia przyszłe powiadomienie.Tekst polecenia nie jest dostosowywalny i jest standaryzowany we wszystkich doświadczeniach.
Modal nie pojawi się jeśli użytkownik :
- Ma mniej niż 13 lat.
- Włączył już powiadomienia dla twojego doświadczenia.
- Widział już powiadomienie o uprawnieniach dla twojego doświadczenia w ciągu ostatnich 30 dni.
Aby poprosić użytkowników o włączenie powiadomień, najpierw powinieneś określić, czy użytkownik jest uprawniony.Po potwierdzeniu możesz wyświetlić monit o zgodę użytkownikowi.
- Wezwij ExperienceNotificationService:CanPromptOptInAsync(), owinięty w pcall() ponieważ jest to asynchroniczne wezwanie sieciowe, które może czasami nie powodzić się.
- Jeśli użytkownik może zostać poproszony, zadzwoń ExperienceNotificationService:PromptOptIn().
LocalScript - Wdrożenie powiadomienia o pozwoleniu
local ExperienceNotificationService = game:GetService("ExperienceNotificationService")
-- Funkcja sprawdzania, czy gracz może zostać poproszony o włączenie powiadomień
local function canPromptOptIn()
local success, canPrompt = pcall(function()
return ExperienceNotificationService:CanPromptOptInAsync()
end)
return success and canPrompt
end
local canPrompt = canPromptOptIn()
if canPrompt then
local success, errorMessage = pcall(function()
ExperienceNotificationService:PromptOptIn()
end)
end
-- Słuchaj wydarzenia zamkniętego z prośbą o zgodę
ExperienceNotificationService.OptInPromptClosed:Connect(function()
print("Opt-in prompt closed")
end)
Włącz dane o uruchomieniu i analizie
Aby dalej poprawić doświadczenia użytkownika, możesz dodać dane o uruchomieniu do powiadomienie, przydatne do scenariuszy takich jak przekierowanie użytkowników do lokalizacji koordynacyjnej lub personalizacja doświadczenia połączenia.Ponadto możesz dodać dane analityczne do segmentowania wydajności różnych kategorii powiadomień.Proszę również odnieść się do przykładu zaproszeń do grania na temat tego, jak można ustawić i wykorzystać dane uruchomienia.
Włącz dane o uruchomieniu i dane analityczne
local ServerScriptService = game:GetService("ServerScriptService")local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)local recipientPlayerID = 505306092-- W treści, "messageId" jest wartością ID zasobu powiadomienialocal userNotification = {payload = {messageId = "5dd7024b-68e3-ac4d-8232-4217f86ca244",type = "MOMENT",joinExperience = {launchData = "Test_Launch_Data"},analyticsData = {category = "Test_Analytics_Category"}}}local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)if result.statusCode ~= 200 thenprint(result.statusCode)print(result.error.code)print(result.error.message)end
System dostawy
Istnieje system zapobiegania spamowi, aby zapewnić jakość powiadomień dla użytkowników i chronić wspólny kanał powiadomień dla wszystkich programistów.Z tego powodu nie gwarantuje się dostarczania powiadomień.Ten system zapobiegania spamowi jest bezpośrednio informowany przez zaangażowanie użytkowników: im więcej użytkowników angażuje się w Twoje powiadomienia, tym więcej osiągnień otrzymają.Możesz przejrzeć transparentnie metryki zaangażowania w panelu analitycznym, jak wyjaśniono poniżej.
Powiadomienia o doświadczeniach mają ograniczenie prędkości statycznej; każdy użytkownik może otrzymywać jedną powiadomienie dziennie z danego doświadczenia, a otrzymujesz przejrzyste informacje zwrotne, gdy osiągnie się limit prędkości użytkownika.
Ponadto poniższa lista przedstawia niektóre z wyjątkowych przypadków, które mogą skutkować nie dostarczeniem powiadomienie:
- Wymagania kwalifikacyjne doświadczenia nie są spełnione.
- Odbiorca nie wybrał otrzymywania powiadomień z twojego doświadczenia.
- Osiągnięto limit przepustowości odbiorcy dla twojego doświadczenia.
- Osiągnięto ogólny limit przepustowości dziennej odbiorcy.
- Brakujące lub nieważne parametry żądania.
- Szczegóły powiadomienia zostały przefiltrowane.
- W przypadku powiadomień z wzmiankami o użytkowniku niezostanie dostarczone, jeśli którekolwiek z tych warunków zostanie spełnione:
- Odbiorca i wspomniany użytkownik nie są przyjaciółmi.
- Wspomniany użytkownik ma Nie wybrane dla "Aktualizuj przyjaciół o mojej aktywność?" pod Prywatnością → Innymi ustawieniami w ustawieniach konta Roblox.
Analityka
Wydajność Twoich powiadomień i odbiorców powiadomień są wyświetlane w zakładce Analizy na stronie Powiadomienia , gdzie możesz skonfigurować ciągi powiadomień (po prostu zakładka z Kreacji do Analizy ).
- Przejdź do Pulpitu nawigacyjnego twórcy.
- Podobnie jak odznaki , ciągniki powiadomień są powiązane z określonym doświadczeniem . Zlokalizuj miniaturkę tego doświadczenia i kliknij ją.
- W lewej kolumnie, pod zaangażowaniem , kliknij powiadomienia .
- Na stronie docelowej kliknij zakładkę Analityka , aby przełączyć się na panel analityczny.
Podsumowanie podsumowanie
Sekcja podsumowania służy jako przekrój ogólnej wydajności Twoich powiadomień.Wymagane jest minimalnie 100 agregowanych wrażeń, aby wyświetlić statystyki wydajności.

Statystyka | Opis |
---|---|
Wybrani użytkownicy | Całkowita liczba użytkowników, którzy włączyli powiadomienia dla twojego doświadczenia.Pamiętaj, że obejmuje to użytkowników poniżej wieku 13 lat, którzy mogą otrzymywać tylko powiadomienia o aktualizacjach doświadczenia, a nie dostosowane powiadomienia o doświadczeniu. |
Wrażenia | Całkowita liczba wrażeń użytkownika, które wszystkie twoje powiadomienia otrzymały w ujęciu ogólnym. |
Kliknij | Całkowita liczba kliknięć, które w sumie otrzymały wszystkie twoje powiadomienia w ujęciu ogólnym. |
CTR | Szybkość, z jaką użytkownicy klikają na twoje powiadomienia, obliczona jako stosunek klików do wrażeń. |
Wyłącz | Szybkość, z jaką użytkownicy wyłączają powiadomienia dla twojego doświadczenia bezpośrednio z powiadomień, obliczona jako stosunek wyłączenia działań do wrażeń. |
Odrzuć | Szybkość, z jaką użytkownicy odrzucają Twoje powiadomienia, obliczona jako stosunek działań odrzucania do wrażeń. |
Podzielone statystyki
Tabela Powiadomienia o doświadczeniach wyświetla szczegółowe statystyki wydajności dla każdej notyfikacji z przynajmniej 100 wrażeniami, sortowana według daty pierwszego wrażenia dla tej powiadomienie.

Kolumna Nazwa jest kluczowym identyfikatorem powiadomienie.Domyślnie nazwa pasuje do nazwy identyfikatora, którą określiłeś podczas tworzenia ciągu powiadomienia, ale możesz ją anulować za pomocą pola category w swoich wezwaniach API, w przypadku którego category anuluje nazwę.Zmiana nazwy ciągu w panelu administratora twórcy lub zmiana ciągu odniesienia ID wiadomości w wezwaniu API wygeneruje nową linię w tabeli.
Jeśli chcesz przetestować wydajność różnych ciągów, zaleca się utworzenie zupełnie nowej strony powiadomienia o podobnej nazwie, na przykład:
- EggHatchA — "Twoje złote jajko wykluło się! Przyjdź poznać twojego nowego zwierzaka."
- EggHatchB — "Nadszedł czas na wyklucie! Przyjdź poznać nowego zwierzaka."
Referencja API
Funkcje
stwórz powiadomienie użytkownika
createUserNotification ( identyfikator użytkownika : numer , użytkownikNotification : UżytkownikNotification) : rezultat notyfikacji użytkownika >Wysyła powiadomienie z kryptu ze strony serwera.Wymaga odbiorcy Player.UserId i powiadomienia odbiorca.Zwraca wynik powiadomienia użytkownika.
Wyślij powiadomienie o doświadczeniu
local ServerScriptService = game:GetService("ServerScriptService")local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)local recipientPlayerID = 505306092-- W treści, "messageId" jest wartością ID zasobu powiadomienialocal userNotification = {payload = {messageId = "5dd7024b-68e3-ac4d-8232-4217f86ca244",type = "MOMENT"}}local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)if result.statusCode ~= 200 thenprint(result.statusCode)print(result.error.code)print(result.error.message)end
Typy
Powiadomienie użytkownika
Tabela zawierająca szczegóły dotyczące powiadomienia, które ma zostać wysłane do użytkownika.Musi zawierać tabelę payload z wymaganymi messageId i type ciągami oraz opcjonalną parameters , joinExperience i analyticsData tablicami.
Klucz | Typ | Opis |
---|---|---|
messageId | ciąg | ID, które reprezentuje niestandardową wiadomość powiadomienia, którą tworzysz w Pulpicie nawigacyjnym twórcy. |
type | ciąg | Typ powiadomienie. Obecnie wspierany jest tylko "MOMENT". |
parameters | stół | Tabela parametrów używanych do renderowania szablonu wiadomości ostrzeżenia. Zobacz Dostosuj powiadomienia za pomocą parametrów na przykładzie użycia. |
joinExperience | stół | Wezwanie do działania, które reprezentuje dołączenie do doświadczenia.Obecnie wspiera parę klucz-wartość launchData, która reprezentuje dowolne dane dostępne dla doświadczenia, gdy użytkownik dołącza do doświadczenia z powiadomienie; ta wartość jest ograniczona do maksymalnie 200 bajtów.Zobacz Włącz dane o uruchomieniu i analizie na przykładzie użycia. |
analyticsData | stół | Dane o tym, jak raportowana jest analiza.Obecnie wspiera parę kluczowo-wartościową category reprezentującą kategoriapowiadomienia, używaną do grupowania danych analitycznych.Zobacz Włącz dane o uruchomieniu i analizie na przykładzie użycia. |
Wynik powiadomienia użytkownika
Przedmiot owinięcia, który zawiera odpowiedź z wysłanej powiadomienie. Zawiera następujące pary klucz-wartość:
Klucz | Typ | Opis |
---|---|---|
statusCode | number liczba | Kod stanu HTTP dla prośba. |
error | stół | Tabela zawierająca code i message klucze opisujące kod błędu GRPC i wiadomość o błędzie, odpowiednio. |
response | stół | Tabela zawierająca id i path klucze opisujące unikalny identyfikator UUID i ścieżkę zasobu powiadomienia użytkownika, odpowiednio. |