友達紹介システムは、既存のプレイヤーが新しいプレイヤーをゲームに招待することを奨励し、プレイヤーの保持率と全体的なエンゲージメントを向上させます。プレイヤーは、プレイヤー招待プロンプトから、またはデフォルトのゲーム内招待メニューから直接紹介リンクにアクセスして共有できます。
開発者として、報酬システムを宣伝するためのカスタマイズされたバナーを作成し、共有可能な紹介リンクを使用して:
- どのプレイヤーが他のプレイヤーをゲームに成功裏に招待したかを追跡します。
- どのプレイヤーが他のプレイヤーからの紹介リンクの招待を使用してゲームに参加したかを追跡します。
- 招待者と招待されたプレイヤーの両方に報酬を作成して配布します。
紹介システムを実装するには、紹介イベントを設定し、紹介報酬を作成します。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をクリックして、バナーをプレイヤーに表示可能にします。
さまざまなバナーを作成できますが、同時に公開されて表示できるバナーは1つだけです。公開されたバナーが、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)よくある質問
どのゲームがこの機能を使用する資格がありますか?
この機能は、少なくとも1日以上稼働しているゲームで、コミュニティ基準に違反していないゲームに開放されています。
どのプレイヤーが紹介を利用できますか?
すべてのプレイヤーが紹介を通じて報酬を得る資格があります。
招待はRobloxの友達に制限されていますか?
いいえ、プレイヤーはまだRobloxプラットフォームで接続されていない友達に招待を送信できます。
紹介リンクは期限切れになりますか?
リンクは期限切れになりません。
この機能を最大限に活用するにはどうすればよいですか?
ゲーム内ボタンを追加して紹介システムを宣伝し、プレイヤーが紹介を利用するように奨励できます。その後、ボタンに説明的なタイトルを付け、ボタンクリックイベントを友達招待モーダルに接続して、プレイヤーが報酬バナーを見ることができるようにします。