경험 알림 은 13세 이상의 사용자가 시기적이고 개인화된 알림을 통해 좋아하는 경험을 유지할 수 있는 방법입니다.개발자로서 경험 내 활동의 종류를 결정하여 사용자에게 알리고, 알림 내용을 정의할 수 있습니다.


경험 알림 시스템에는 팔로잉포함됩니다:
매개 변수가 있는 사용자 지정 가능한 알림 — 매개 변수를 사용하여 알림 메시지를 완전히 사용자 지정할 수 있는 예:
Your gold goose egg has hatched!Allie @LaterSk8er1 just beat your record on the Tokyo Tour track!런칭 데이터 — 알림 수신자가 참여할 때 런칭 데이터 를 읽을 수 있는 선택적 데이터를 포함합니다.이는 사용자를 좌표 위치로 라우팅하거나 참여 경험을 개인화하는 것을 포함할 수 있습니다.
분석 지원 — 도달 가능한 오디언스와 크리에이터 대시보드의 알림 성과를 추적하십시오.
요구 사항 적격성
알림을 보내기 위해 API를 사용하려면 경험이 다음 기본 요건을 충족해야 합니다:
- 시작이후 최소 100회 방문.
- 경험은 조정되지 않아야 합니다.
- 개발자로서 경험을 관리할 수 있는 권한이 있어야 합니다.
사용 가이드라인
알림은 수신자에게 개인화되어야 하며 사용자와 관련이 있는 경험 활동에 따라야 합니다.반대로 알림은 일반적이고 광고 성격의 것이 아닌 것이어야 합니다.
이상적으로 알림은 사용자가 즉시 조치를 취할 수 있는 것에 대해서도 경고해야 합니다 즉시 조치 .직접적인 응답이나 액션유발하지 않는 순수 정보 알림을 피하십시오.
알림 콘텐츠는 허용되지 않습니다 사용자를 조작하거나 속이는 암흑 패턴이나 다른 전술을 통합할 수 없으며, 사용자가 의도하지 않은 선택을 하거나 최선의 이익에 반하는 결과를 초래할 수 있습니다.여기에는 팔로잉포함될 수 있습니다:
위장된 광고 — 의도적으로 유기농 콘텐츠로 위장된 알림이지만 실제로는 광고입니다.예를 들어, 다음 알림을 클릭하면 Petz World로 이동하지만 "중요한 정보"가 표시되지 않는다고 가정하십시오.
시간 압박 작업 — 가짜 시간 압박을 적용하여 사용자를 클릭, 구독, 동의 또는 구매로 유도하는 알림
무료 아이템이나 다른 보상과 바이트-앤-스위치 — 사용자에게 무료로 무언가를 받을 것이라고 잘못 알리는 알림예를 들어, 다음 알림을 클릭하면 선물을 받기 위해 더 많은 것이 필요하다는 점이 분명해집니다.
사용자를 구매로 속이기 — 사용자를 의도하지 않은 구매로 속이는 알림.예를 들어, 다음 알림을 클릭하면 사용자가 구매하지 않은 아이템으로 미리 로드된 구매 시스템으로 바로 연결되는 것으로 가정하십시오.
경험은 참여하거나 게임 플레이진행하기 위해 사용자가 알림을 켜야 하지 않아야 합니다.
구현
경험 알림 구현은 알림 문자열을 만들고 프로젝트에 패키지를 포함하는 것으로 시작됩니다.이들이 설정되면 선택적 사용자 지정 매개변수로 알림을 보낼 수 있습니다..
또는 무료형 API 요청을 통해 알림을 트리거하기 위해 오픈 클라우드 API를 사용할 수 있습니다.
알림 문자열 생성
플레이어 초대 프롬프트와 마찬가지로 크리에이터 대시보드에서 알림 문자열을 만들고 편집해야 합니다. 기본 경험 알림 문자열이 없으므로 이 단계가 필요합니다.
탐색하여 크리에이터 대시보드로 이동합니다.
배지와 마찬가지로 알림 문자열은 특정 경험에 연결됩니다. 해당 경험의 썸네일을 찾아 클릭하십시오.
왼쪽 열에서 참여 아래에서 알림 을 클릭하십시오.
중앙 지역에서 알림 문자열 생성 버튼을 클릭하십시오.
식별자 이름(오직 본인만 볼 수 있음)과 사용자 지정 알림 문자열을 채우십시오(99개 문자로 제한되며 무한한 사용자 지정 매개변수를 포함할 수 있음); 이는 제한되지만 무제한의 사용자 지정 매개변수를 포함할 수 있습니다.알림은 경험의 제목을 알림 제목으로 자동으로 사용하지만, 알림 본문 텍스트에서 경험을 참조하기 위해 experienceName 을 추가로 사용할 수 있습니다.
예시 알림 문자열:
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?준비가 되면 알림 문자열 생성 버튼을 클릭하십시오.
알림 페이지에서 알림 테이블에서 ⋯ 버튼을 행동 열에서 클릭하고 자산 ID 복사 를 선택합니다.
예제 스크립트에서 보여준 것처럼 키 값에 복사된 ID를 사용하여 테이블의 키 값을 사용하십시오.
패키지 포함
경험 알림을 구현하려면 크리에이터 스토어에서 Luau 패키지를 가져와야 합니다.
보기 탭에서 도구 상자 를 열고 크리에이터 스토어 탭을 선택합니다.
모델 정렬이 선택되었는지 확인한 다음 모두 보기 버튼을 클릭하여 카테고리를 확인하십시오.
찾아서 클릭하십시오 개발자 모듈 타일.
클라우드 열기 모듈을 찾아 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.
탐색기 창에서 전체 OpenCloud 모델을 ServerScriptService로 이동합니다.
경험 알림 전송
알림 문자열을 만들고 프로젝트에 패키지를 포함한 후, 서버 사이드 스크립트에서 알림을 보낼 수 있습니다.알림은 Roblox 알림 스트리밍통해 13세 이상의 옵트인 사용자에게 전달되며, 이 시점에서 알림에서 가입 버튼을 통해 직접 경험에 참여하고 출시 데이터에 따라 생성할 수 있습니다.

특정 사용자에게 기본 알림을 보내려면 페이로드의 알림 문자열 자산 ID를 포함하고, 수신자의 및 요청 데이터로 createUserNotification 함수를 호출하십시오.
경험 알림 전송
local ServerScriptService = game:GetService("ServerScriptService")local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)local recipientPlayerID = 505306092-- 페이로드에서 "messageId"는 알림 자산 ID의 값입니다local 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
매개 변수를 사용하여 알림 사용자 정의
각 받는 수신자대한 알림을 사용자 지정하려면 매개변수 를 알림 문자열에 포함하고 API를 호출할 때 매개변수를 사용자 지정하면 됩니다.예를 들어 알림 문자열을 다음과 같이 정의할 수 있습니다.
그런 다음 스크립트에서 userId-friend 및 points 매개 변수를 설정하십시오:
매개 변수를 사용하여 알림 사용자 정의
local ServerScriptService = game:GetService("ServerScriptService")local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)local recipientPlayerID = 505306092local userIdFriendParam = {int64Value = 3702832553}local pointsParam = {stringValue = "5"}-- 페이로드에서 "messageId"는 알림 자산 ID의 값입니다-- 이 예제에서는 알림 문자열이 "{userId-friend}가 최고 점수를 {points}포인트 경신했습니다! 레벨업 시간?"입니다.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
사용자에게 알림 활성화 요청
사용자가 경험에 대한 알림을 활성화하도록 유도하려면, ExperienceNotificationService:PromptOptIn() 메서드를 사용하여 13세 이상의 사용자에게 경험 내 권한 프롬프트를 표시할 수 있습니다.

경험 내의 적절한 컨텍스트에서 미래의 알림을 보장하는 프롬프트를 트리거할 수 있습니다.프롬프트의 텍스트는 사용자 지정할 수 없으며 모든 경험에서 표준화됩니다.
사용자가: 나타나지 않으면 모달이 나타나지 않습니다.
- 13세 미만입니다.
- 이미 경험에 대한 알림을 활성화했습니다.
- 지난 30일 동안 경험에 대한 권한 프롬프트를 이미 보았습니다.
사용자에게 알림을 활성화하도록 요청하려면 먼저 사용자가 적격인지 여부를 결정해야 합니다.확인되면 사용자에게 권한 프롬프트를 표시할 수 있습니다.
- 호출 ExperienceNotificationService:CanPromptOptInAsync() , 비동기 네트워크 호출이기 때문에 때때로 실패할 수 있는 캡슐화된 pcall() 에 포장되었습니다.
- 사용자를 프롬프트할 수 있는 경우 ExperienceNotificationService:PromptOptIn()를 호출하십시오.
로컬스크립트 - 알림 권한 프롬프트 구현
local ExperienceNotificationService = game:GetService("ExperienceNotificationService")
-- 플레이어에게 알림을 활성화하도록 요청할 수 있는지 확인하는 함수
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
-- 옵트인 프롬프트 폐쇄 이벤트 듣기
ExperienceNotificationService.OptInPromptClosed:Connect(function()
print("Opt-in prompt closed")
end)
런칭 및 분석 데이터 포함
사용자 경험을 향상시키기 위해 라우팅 사용자를 좌표 위치로 또는 조인 경험을 개인화하는 시나리오와 같은 발사 데이터 를 알림에 포함할 수 있습니다.또한, 분석 데이터를 포함하여 다양한 카테고리의 알림의 성능을 세분화할 수 있습니다.또한 발사 데이터를 설정하고 사용하는 방법에 대한 플레이어 초대 프롬프트 예제도 참조하십시오.
런칭 데이터 및 분석 데이터 포함
local ServerScriptService = game:GetService("ServerScriptService")local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)local recipientPlayerID = 505306092-- 페이로드에서 "messageId"는 알림 자산 ID의 값입니다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 thenprint(result.statusCode)print(result.error.code)print(result.error.message)end
배달 시스템
스팸 방지 시스템이 있어 사용자에 대한 알림 품질을 보장하고 모든 개발자의 공유 알림 채널을 보호합니다.이로 인해 알림 전달이 보장되지 않습니다.이 스팸 방지 시스템은 사용자 참여로 직접 알려집니다: 사용자가 알림과 더 많이 상호작용할수록, 그들이 받을 수 있는 범위가 증가합니다.영agement 메트릭을 투명하게 분석 대시보드에서 추적할 수 있으며, 아래에 설명된 대로 분석 대시보드에 있습니다.
경험 알림에는 정적 제한 속도가 있으며, 각 사용자는 지정된 경험에서 하루에 하나의 알림을 받을 수 있고, 사용자의 제한 속도가 도달하면 투명한 피드백을 받습니다.
또한 다음 목록에서는 알림의 배달 실패 를 일으킬 수 있는 일부 특별 사례를 설명합니다.
- 경험 자격 요건이 충족되지 않았습니다.
- 받는 사람이 경험의 알림을 받지 않도록 선택하지 않았습니다.
- 경험에 대한 수신자 스로틀 제한이 도달했습니다.
- 받는 사람의 일간 평균 스로틀 제한이 도달했습니다.
- 누락되거나 무효한 요청 매개변수.
- 알림 문자열이 조정되었습니다.
- 사용자 언급이 있는 알림의 경우, 다음 조건 중 하나가 충족되면 전달되지 않습니다:
- 수신자와 언급된 사용자는 친구가 아닙니다.
- 언급된 사용자에게는 아래에서 "내 활동에 대한 친구 업데이트?"에 대해 "개인 정보" 아래에 "다른 설정"이 선택되어 있지 않습니다 → Roblox 계정 설정의 프라이버시 → 다른 설정 에서 "Privacy" 아래에 "업데이트 친구에 대한 업데이트"가 선택되어 있습니다.
분석
알림 및 알림 가능한 대상의 성능은 분석 탭의 알림 페이지에서 알림 문자열 구성 (단순히 크리에이션 에서 분석 으로 탭)에 표시됩니다.
- 탐색하여 크리에이터 대시보드로 이동합니다.
- 배지와 마찬가지로 알림 문자열은 특정 경험에 연결됩니다. 해당 경험의 썸네일을 찾아 클릭하십시오.
- 왼쪽 열에서 참여 아래에서 알림 을 클릭하십시오.
- 대상 페이지에서 분석 탭을 클릭하여 분석 대시보드로 전환합니다.
알림 요약
요약 섹션은 알림의 집계 성능의 스냅샷으로 사용됩니다.성능 통계를 표시하려면 최소 100개의 집합 인상이 필요합니다.

통계 | 설명 |
---|---|
옵트인 사용자 | 경험에 대한 알림을 활성화한 사용자 총 수.이는 13세 미만의 사용자를 포함하며, 개인화된 경험 업데이트 알림만 받을 수 있고, 개인화된 경험 알림은 포함하지 않습니다. |
인상 | 누적으로 받은 모든 알림의 사용자 인상 수의 합계. |
클릭 | 집계된 모든 알림의 총 클릭 수. |
트래픽 비용 클릭률(CTR) | 사용자가 클릭하는 속도, 즉 클릭 횟수 대비 인상 횟수 비율입니다. |
끄기 | 사용자가 경험에 대한 알림을 직접 꺼는 속도, 즉 끄기 작업과 인상 비율을 계산한 값. |
거절 | 사용자가 알림을 무시하는 속도, 즉 거절 작업과 인상 비율로 계산됩니다. |
아이템화된 통계
경험 알림 테이블에는 최소 100회 이상의 인상 날짜별로 정렬된 각 알림의 상세 성능 통계가 표시됩니다.The 경험 알림 table displays detailed performance statistics for each notification with at least 100 impressions, ordered by the date of first impression for that notification.

이름 열은 알림의 키 식별자입니다.기본적으로 이름은 알림 문자열을 만들 때 지정한 식별자 이름과 일치하지만, API 호출의 필드를 통해 재정의할 수 있으며, 이 경우 이름이 재정의됩니다.크리에이터 대시보드의 문자열 이름 변경 또는 API 호출에서 메시지 ID를 참조하는 문자열을 변경하면 테이블에 새 행이 생성됩니다
다른 문자열의 성능을 A/B 테스트하려는 경우 유사한 이름의 전혀 새로운 알림 문자열을 만드는 것이 좋습니다(예:
- EggHatchA — "귀하의 황금 알이 부화했습니다! 새로운 애완동물을 만나러 오세요."
- EggHatchB — "부화 시간입니다! 새 펫을 만나러 오세요."
API 참조
함수
사용자 알림 생성 createUserNotification
createUserNotification ( userId : 번호 , userNotification : 사용자 알림) : 사용자 알림 결과 >서버 사이드 스크립트에서 알림을 보냅니다.수신자의 Player.UserId와 사용자 알림이 필요합니다.반환 사용자 알림 결과.
경험 알림 전송
local ServerScriptService = game:GetService("ServerScriptService")local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)local recipientPlayerID = 505306092-- 페이로드에서 "messageId"는 알림 자산 ID의 값입니다local 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
유형
사용자 알림
사용자에게 전송할 알림에 대한 세부 정보가 포함된 테이블.필수 payload 및 선택적 messageId 및 type 및 parameters 및 joinExperience 및 analyticsData 테이블을 포함해야 합니다.
키 | 유형 | 설명 |
---|---|---|
messageId | 문자열 | 크리에이터 대시보드에서 생성하는 사용자 지정 가능한 알림 메시지 템플릿을 나타내는 ID입니다.An ID that represents a customizable notification message template that you create in the Creator Dashboard. |
type | 문자열 | 알림의 유형. 현재 "MOMENT"만 지원됩니다. |
parameters | 테이블 | 알림 메시지 템플릿을 렌더링하는 데 사용되는 매개변수 테이블. 예시로 매개변수를 사용하여 알림 사용자 정의를 참조하십시오. |
joinExperience | 테이블 | 경험에 참여하는 행동을 나타내는 호출입니다.현재 사용자가 알림을 통해 경험에 참여할 때 사용할 수 있는 임의의 데이터를 나타내는 launchData 키-값 쌍을 지원하며, 이 값은 최대 200바이트로 제한됩니다.예시로 시작 및 분석 데이터 포함을 참조하십시오. |
analyticsData | 테이블 | 분석 보고 방법에 대한 데이터.현재 알림 카테고리를 나타내는 category 키-값 쌍을 지원하며, 분석 데이터를 그룹화하는 데 사용됩니다.예시로 시작 및 분석 데이터 포함을 참조하십시오. |
사용자 알림 결과
전송된 알림의 응답을 보유하는 래퍼 개체. 다음 키-값 쌍을 포함합니다:
키 | 유형 | 설명 |
---|---|---|
statusCode | 번호 | 요청에 대한 HTTP 상태 코드. |
error | 테이블 | GRPC 오류 코드와 오류 메시지를 각각 설명하는 code 및 message 키가 포함된 테이블. |
response | 테이블 | 고유한 UUID와 사용자 알림의 리소스 경로를 설명하는 id 및 path 키가 포함된 테이블. |