친구 추천 시스템은 기존 플레이어가 새로운 플레이어를 게임에 초대하도록 장려하여 플레이어 유지율과 전반적인 참여도를 높입니다. 플레이어는 플레이어 초대 프롬프트 또는 기본 게임 내 초대 메뉴에서 추천 링크에 접근하고 공유할 수 있습니다.
개발자로서, 보상 시스템을 광고하기 위해 맞춤형 배너를 만들고 공유 가능한 추천 링크를 사용하여:
- 어떤 플레이어가 다른 플레이어를 게임에 성공적으로 초대했는지 추적합니다.
- 어떤 플레이어가 다른 플레이어의 추천 링크 초대를 통해 게임에 가입했는지 추적합니다.
- 초대자와 초대받은 사람 모두에게 보상을 생성하고 배포합니다.
추천 시스템을 구현하려면 추천 이벤트 설정 및 추천 보상 생성을 Studio에서 수행하세요. GetJoinData()의 ReferredByPlayerId 속성은 모든 유형의 초대에 대해 자동으로 채워지며, 추천 플레이어의 사용자 ID에 접근할 수 있습니다. 그런 다음 Players.PlayerAdded 이벤트에서 이 데이터에 접근하여 초대자를 식별하고 초대자와 초대받은 사람 모두에게 보상을 부여할 수 있습니다.
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)플레이어가 보상 시스템을 이해할 수 있도록, 친구 초대 모달 상단에 맞춤형 보상 배너를 구현하여 그들이 얻을 수 있는 보상에 대한 세부정보를 보여주세요.
추천 이벤트 설정
추천 이벤트를 설정하려면:
- ReplicatedStorage에 RemoteEvent를 설정하여 추천이 수신될 때 클라이언트와 통신하는 원격 이벤트를 생성합니다.
- ReferredByPlayerId를 사용하여 초대자의 사용자 ID를 검색하여 플레이어 가입을 추적하고 Players.PlayerAdded 이벤트 중 서버 측 스크립트에서 추천 로직을 처리합니다.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 추천 처리를 위한 RemoteEvent 생성 또는 가져오기
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- 플레이어가 가입할 때 트리거되는 함수
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 플레이어가 추천을 통해 초대되었는지 확인
if referredByPlayerId and referredByPlayerId ~= 0 then
-- 초대자의 ID를 전달하며 클라이언트에 추천 이벤트를 발사
referrerEvent:FireClient(player, referredByPlayerId)
-- 초대자와 초대받은 사람에게 보상을 주는 추가 로직을 여기에 추가할 수 있습니다
-- 예: rewardReferrer(referredByPlayerId)
-- 예: rewardInvitee(player)
end
end
-- PlayerAdded 이벤트에 함수를 연결
Players.PlayerAdded:Connect(onPlayerAdded)추천 보상 부여
참여를 장려하기 위해 초대자와 초대받은 사람 모두에게 보상을 부여하세요. 예를 들어, 친구가 게임에 가입할 때 초대자에게 배지나 게임 내 통화를 제공하고, 초대받은 사람에게 추천 링크를 통해 게임에 가입한 것에 대한 환영 보상을 제공할 수 있습니다.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 추천 처리를 위한 RemoteEvent 생성 또는 가져오기
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- 플레이어가 가입할 때 트리거되는 함수
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 플레이어가 추천을 통해 초대되었는지 확인
if referredByPlayerId and referredByPlayerId ~= 0 then
-- 초대자의 ID를 전달하며 클라이언트에 추천 이벤트를 발사
referrerEvent:FireClient(player, referredByPlayerId)
-- 초대자에게 보상 부여
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- 초대자에게 보상 부여
-- 예: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- 초대받은 사람에게 보상 부여
function rewardInvitee(player)
-- 초대받은 사람에게 보상 부여
-- 예: player.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- PlayerAdded 이벤트에 함수를 연결
Players.PlayerAdded:Connect(onPlayerAdded)보상 배너 생성
보상 배너는 사용자에게 친구를 초대하여 얻을 수 있는 보상에 대한 세부정보를 보여줌으로써 게임에 초대하도록 장려합니다. 이러한 배너는 친구 초대 모달 상단에 표시됩니다.
맞춤형 보상 배너를 생성하려면:
- Creator Hub에서 Creations로 이동하여 추천 이벤트를 설정한 게임을 선택합니다.
- Engagement ⟩ Referral Rewards로 이동합니다.
- Add Reward Details를 클릭합니다.
- Referral Rewards 페이지에서:
- 기본 아이콘을 게임을 나타내는 이미지로 교체합니다.
- 배너에 표시할 보상 이름을 입력합니다.
- 배너를 플레이어에게 표시할 시작 및 종료 날짜를 선택합니다.
- OPTIONAL보상에 대한 세부정보를 포함한 설명을 입력합니다.
- OPTIONAL보상 제한을 추가하려면 보상 한도를 입력합니다. 예를 들어, 초대자당 최대 3개의 보상 한도.
- Save를 클릭하여 변경 사항을 저장합니다.
- Publish를 클릭하여 배너를 플레이어에게 표시합니다.
여러 가지 배너를 생성할 수 있지만, 한 번에 하나의 배너만 게시되고 표시될 수 있습니다. 게시된 배너가 Studio에서 구현한 추천 시스템을 정확하게 설명하는지 확인하세요.
추천 시스템 남용 방지
플레이어가 친구 추천 시스템을 악용하지 않도록 방지 조치를 구현할 수 있습니다.
- 초대받은 사람을 추적하고 한 번만 보상을 받을 수 있도록 일회성 보상을 제공합니다.
- 초대자가 다른 추천을 제출하기 전에 쿨다운 기간을 도입합니다.
- 비정상적인 활동을 모니터링하고 사용자 차단 또는 보상 취소와 같은 시정 조치를 구현합니다.
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- 추천을 위한 데이터 저장소 생성 또는 가져오기
local referralDataStore = DataStoreService:GetDataStore("ReferralDataStore")
-- 추천을 확인하고 표시하는 함수
local function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 플레이어의 추천 데이터 로드
local success, alreadyReferred = pcall(function()
return referralDataStore:GetAsync(tostring(player.UserId))
end)
if not success then
warn("플레이어의 추천 데이터를 가져오는 데 실패했습니다:", player.UserId)
return
end
if referredByPlayerId and referredByPlayerId ~= 0 and not alreadyReferred then
-- 초대자와 초대받은 사람에게 보상 부여
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
-- DataStore에서 플레이어를 추천된 것으로 표시
local saveSuccess, err = pcall(function()
referralDataStore:SetAsync(tostring(player.UserId), true)
end)
if not saveSuccess then
warn("플레이어의 추천 상태를 저장하는 데 실패했습니다:", player.UserId, err)
end
end
end
-- 플레이어가 가입할 때 함수 연결
Players.PlayerAdded:Connect(onPlayerAdded)자주 묻는 질문
어떤 게임이 이 기능을 사용할 수 있나요?
이 기능은 최소 하루 이상 라이브 상태인 게임에 열려 있으며, 커뮤니티 기준을 위반하지 않아야 합니다.
어떤 플레이어가 추천을 통해 혜택을 받을 수 있나요?
모든 플레이어가 추천을 통해 보상을 받을 수 있습니다.
초대는 Roblox의 친구에게만 제한되나요?
아니요, 플레이어는 Roblox 플랫폼에서 아직 연결되지 않은 친구에게도 초대를 보낼 수 있습니다.
추천 링크는 만료되나요?
링크는 만료되지 않습니다.
이 기능을 최대한 활용하려면 어떻게 해야 하나요?
게임 내 버튼을 추가하여 추천 시스템을 광고하고 플레이어가 추천을 활용하도록 장려할 수 있습니다. 그런 다음 버튼에 설명적인 제목을 부여하고 버튼 클릭 이벤트를 친구 초대 모달에 연결하여 플레이어가 보상 배너를 볼 수 있도록 합니다.