Powiadomienia o doświadczeniu

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

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.

Example notification
Example notification

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.

  1. Podobnie jak odznaki, ciągniki powiadomień są powiązane z określonym doświadczeniem . Zlokalizuj miniaturkę tego doświadczenia i kliknij ją.

  2. W lewej kolumnie, pod zaangażowaniem , kliknij powiadomienia .

  3. W środkowym regionie kliknij przycisk Utwórz ciąg powiadomień .

  4. 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?

  5. Gdy będziesz gotowy, kliknij przycisk Utwórz ciąg powiadomień .

  6. Na stronie powiadomień, w tabeli powiadomień, kliknij przycisk w kolumnie Akcje i wybierz Kopiuj ID zasobu .

  7. 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.

  1. Z zakładki Widok, otwórz Pudełko z narzędziami i wybierz zakładkę Sklep z twórcami .

    Toolbox toggle button in Studio
  2. Upewnij się, że wybrano sortowanie modele , a następnie kliknij przycisk Zobacz wszystko dla kategorii .

  3. Zlokalizuj i kliknij pasek modułów rozwojowych .

  4. Zlokalizuj moduł Otwórz chmurę i kliknij go, lub przeciągnij i upuść do widoku 3D.

  5. 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 .

Notifications stream on the Roblox app

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 powiadomienia
local userNotification = {
payload = {
messageId = "5dd7024b-68e3-ac4d-8232-4217f86ca244",
type = "MOMENT"
}
}
local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)
if result.statusCode ~= 200 then
print(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:

{userId-friend} beat your high score by {points} points! Time to level up?

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 = 505306092
local 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 then
print(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().

The in-experience permission prompt encourages users to enable notifications

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.

  1. Wezwij ExperienceNotificationService:CanPromptOptInAsync(), owinięty w pcall() ponieważ jest to asynchroniczne wezwanie sieciowe, które może czasami nie powodzić się.
  2. 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 powiadomienia
local 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 then
print(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 ).

  1. Podobnie jak odznaki , ciągniki powiadomień są powiązane z określonym doświadczeniem . Zlokalizuj miniaturkę tego doświadczenia i kliknij ją.
  2. W lewej kolumnie, pod zaangażowaniem , kliknij powiadomienia .
  3. 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.

StatystykaOpis
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 powiadomienia
local userNotification = {
payload = {
messageId = "5dd7024b-68e3-ac4d-8232-4217f86ca244",
type = "MOMENT"
}
}
local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)
if result.statusCode ~= 200 then
print(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.

KluczTypOpis
messageIdciągID, które reprezentuje niestandardową wiadomość powiadomienia, którą tworzysz w Pulpicie nawigacyjnym twórcy.
typeciągTyp powiadomienie. Obecnie wspierany jest tylko "MOMENT".
parametersstółTabela parametrów używanych do renderowania szablonu wiadomości ostrzeżenia. Zobacz Dostosuj powiadomienia za pomocą parametrów na przykładzie użycia.
joinExperiencestół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.
analyticsDatastół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ść:

KluczTypOpis
statusCodenumber liczbaKod stanu HTTP dla prośba.
errorstółTabela zawierająca code i message klucze opisujące kod błędu GRPC i wiadomość o błędzie, odpowiednio.
responsestółTabela zawierająca id i path klucze opisujące unikalny identyfikator UUID i ścieżkę zasobu powiadomienia użytkownika, odpowiednio.