ด้วยการตั้งราคาที่จัดการได้ คุณสามารถเสนอ ราคาที่เฉพาะเขต สำหรับรายการของคุณและสร้างเศรษฐกิจโลกที่เข้าถึงได้มากขึ้น และสามารถรวมกลุ่มได้มากขึ้น หลังจากที่คุณกำหนดราคาทั่วไปเริ่มต้นสำหรับรายการหนึ่ง Roblox จะใช้สัญญาณต่างๆ เช่น ความสามารถในการซื้อในภูมิภาค อัตราแลกเปลี่ยนสกุลเงิน และพฤติกรรมการใช้จ่ายในท้องถิ่น เพื่อกำหนดราคาที่เหมาะสมที่สุดสำหรับรายการนั้นๆ ตามภูมิภาค
คุณสามารถเลือกได้ว่ารายการใดบ้างที่คุณต้องการตั้งราคาในระดับภูมิภาค เมื่อคุณเปิดใช้งานการตั้งราคาที่จัดการได้สำหรับรายการในเกมของคุณ Roblox จะปรับราคาของรายการนั้นโดยอัตโนมัติให้กับผู้ใช้ตามสถานที่ทางเศรษฐกิจของพวกเขา
สถานที่ทางเศรษฐกิจไม่จำเป็นต้องตรงกับสถานที่บัญชีเสมอไป เพื่อกำหนดสถานที่ทางเศรษฐกิจของผู้ใช้ Roblox จะดูสัญญาณรวมทั้งการใช้งาน VPN ประวัติการเรียกเก็บเงิน และประวัติบัญชี หากไม่สามารถกำหนดสถานที่ทางเศรษฐกิจของผู้ใช้ได้ ผู้ใช้จะเห็นราคาทั่วไปเริ่มต้นสำหรับรายการแทน
เพื่อป้องกันการฉวยโอกาสในการตั้งราคาเมื่อผู้ใช้มอบหรือแลกเปลี่ยนรายการที่มีราคาที่จัดการต่างกัน คุณสามารถ จัดการการส่งในเกมด้วย API GetUsersPriceLevelsAsync
เปิดใช้งานการตั้งราคาท้องถิ่น
สำหรับพาส
การตั้งราคาในระดับภูมิภาคเปิดใช้งานโดยค่าเริ่มต้นสำหรับพาสใหม่และที่มีอยู่ทั้งหมดผ่าน การตั้งราคาที่จัดการได้
ในการปิดใช้งานการตั้งราคาที่จัดการได้สำหรับพาส:
- ไปที่ Creations และเลือกเกม
- ไปที่ การสร้างรายได้ ⟩ พาส
- เลือกพาสที่มีอยู่หนึ่งหรือหลายพาส
- คลิก ปิดการใช้งานการตั้งราคาที่จัดการได้
- OPTIONALเพื่อดูราคาที่จัดการได้ตามประเทศหรือภูมิภาค ให้เลือกพาสและไปที่หน้า การขาย ของมัน รายการ ประเทศ/ภูมิภาคชั้นนำ จะอัปเดตเพื่อแสดงราคาที่ปรับตามราคาทั่วไปเริ่มต้นของพาสนั้น หากต้องการดูราคาสำหรับทุกประเทศและภูมิภาค ให้คลิก ดูทุกประเทศ
สำหรับผลิตภัณฑ์นักพัฒนา
ในการเปิดใช้งานการตั้งราคาที่จัดการได้สำหรับผลิตภัณฑ์นักพัฒนา:
- ตรวจสอบให้แน่ใจว่าผลิตภัณฑ์นักพัฒนาของคุณมี ราคาที่เขียนโปรแกรมแบบไดนามิก
- ใช้งาน GetUsersPriceLevelsAsync วิธีการ เพื่อควบคุมการส่งรายการตามระดับราคาของผู้ใช้
- ไปที่ Creations และเลือกเกม
- ไปที่ การสร้างรายได้ ⟩ ผลิตภัณฑ์นักพัฒนา
- เลือกผลิตภัณฑ์ที่มีอยู่หนึ่งหรือหลายผลิตภัณฑ์ หรือสร้างผลิตภัณฑ์ใหม่
- คลิก เปิดใช้งานการตั้งราคาที่จัดการได้
- OPTIONALเพื่อดูการตั้งราคาที่จัดการได้ตามประเทศหรือภูมิภาค ให้เลือกผลิตภัณฑ์และไปที่หน้า การตั้งค่าพื้นฐาน ของมัน รายการ ประเทศ/ภูมิภาคชั้นนำ จะอัปเดตเพื่อแสดงราคาที่ปรับตามราคาทั่วไปเริ่มต้นของผลิตภัณฑ์นั้น หากต้องการดูการตั้งราคาที่จัดการสำหรับทุกประเทศและภูมิภาค ให้คลิก ดูทุกประเทศ
สำหรับการสมัครสมาชิก
การตั้งราคาที่จัดการได้รับการเปิดใช้งานโดยค่าเริ่มต้นสำหรับการสมัครสมาชิกที่ตั้งราคาเป็น Robux และไม่สามารถปิดได้ สำหรับข้อมูลเพิ่มเติม ดูที่ สร้างการสมัครสมาชิก
การตั้งราคาแบบที่จัดการไม่ได้มีให้สำหรับการสมัครสมาชิกที่ตั้งราคาเป็นสกุลเงินท้องถิ่น
สำหรับรายการ Avatar
ในการเปิดใช้งานการตั้งราคาที่จัดการสำหรับรายการ Avatar ดูที่ การตั้งราคา ในหน้าการเผยแพร่ไปยัง Marketplace
ตรวจสอบการตั้งราคาแบบไดนามิก
เมื่อคุณเปิดใช้งานการตั้งราคาที่จัดการได้ ราคาของรายการจะปรับให้เหมาะสมกับผู้ใช้ในภูมิภาคต่างๆ ไม่ว่าจะขายอยู่ภายในหรือภายนอกเกมของคุณ อย่างไรก็ตาม หากคุณได้ตั้งราคาคงที่ใน UI ของเกม ราคานั้นจะไม่อัปเดตเนื่องจากไม่เป็นไดนามิกหรือไม่สามารถเข้าถึงได้จาก Roblox ทำให้ผู้ใช้ถูกเรียกเก็บเงินราคาที่เป็นราคาท้องถิ่นที่ถูกต้อง แต่ UI ยังคงแสดงค่าเป็นราคาคงที่
เครื่องมือ ตรวจสอบราคาที่เป็นไดนามิก จะอัปเดตรายการทั้งหมดที่ขายอยู่ภายในเกมของคุณโดยใช้ราคาหรือสถานที่ทางเศรษฐกิจปลอมเพื่อช่วยให้คุณระบุราคาไหนที่ถูกตั้งเป็นโค้ดคงที่ใน UI ของเกมและราคาไหนที่เขียนโปรแกรมแบบไดนามิกด้วย MarketplaceService และเรียกจากสคริปต์ไคลเอ็นต์ หลังจากที่คุณได้ระบุพาสที่เป็นโค้ดคงที่แล้ว คุณสามารถปรับปรุงให้ใช้ฟังก์ชัน MarketplaceService ได้
ในการใช้เครื่องมือตรวจสอบราคาที่เป็นไดนามิก:
- ไปที่ การสร้างรายได้
- สำหรับพาส ไปที่ พาส
- สำหรับผลิตภัณฑ์นักพัฒนา ไปที่ ผลิตภัณฑ์นักพัฒนา
- คลิก … และเลือก ตรวจสอบราคาที่เป็นไดนามิก
- ภายใต้ เพิ่มบัญชีทดสอบ ป้อนชื่อผู้ใช้ Roblox ได้สูงสุดห้าคนเพื่อตรวจสอบราคาที่เป็นโค้ดคงที่
- เลือกประเภทการทดสอบ
- Price pinned จะปรับปรุงราคาที่เขียนโปรแกรมแบบไดนามิกทั้งหมดด้วยจำนวน Robux ปลอมที่ตั้งไว้
- Location pinned จะปรับปรุงราคาที่เขียนโปรแกรมแบบไดนามิกทั้งหมดด้วยราคาที่เฉพาะสำหรับสถานที่ทางเศรษฐกิจปลอม
- คลิก เปิดใช้งาน หลังจากไม่กี่นาที ให้เข้าร่วมเกมของคุณเพื่อระบุราคาที่เป็นโค้ดคงที่
ในการปิดใช้งานเครื่องมือตรวจสอบราคาที่เป็นไดนามิก ให้ไปที่หน้าตรวจสอบราคาที่เป็นไดนามิกและคลิก ปิดใช้งาน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับราคาที่เป็นโค้ดคงที่เมื่อเปรียบเทียบกับราคาที่เขียนโปรแกรมแบบไดนามิก ดูที่ ตรวจสอบการตั้งราคาแบบไดนามิก ในหน้าการปรับราคา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการขายพาสและผลิตภัณฑ์นักพัฒนาด้วยฟังก์ชัน MarketplaceService ดูที่ ขายพาสภายในเกมของคุณ และ ขายผลิตภัณฑ์นักพัฒนาภายในเกมของคุณ
แสดงราคาท้องถิ่นในเกมของคุณ
ด้วยการตั้งราคาที่จัดการได้ ราคาที่ผู้ใช้เห็นอาจแตกต่างกันไปตามตำแหน่งของพวกเขา หากคุณแสดงราคาใน UI ภายในเกมแบบกำหนดเอง เช่น TextLabel คุณสามารถเรียกรายละเอียดของผลิตภัณฑ์ที่ใช้งานอยู่ เพื่อให้แน่ใจว่าราคาที่แสดงตรงกับราคาที่แสดงในคำเชิญซื้อ
ในการแสดงราคาท้องถิ่นสำหรับผลิตภัณฑ์นักพัฒนาหรือพาสเดียว ให้ใช้ GetProductInfoAsync
ในการแสดงราคาท้องถิ่นสำหรับผลิตภัณฑ์นักพัฒนาทั้งหมด ให้ใช้ GetDeveloperProductsAsync
ป้องกันการแลกเปลี่ยนและของขวัญของคุณ
การตั้งราคาที่จัดการสามารถส่งผลต่อการส่งในเกม เช่น การแลกเปลี่ยนและการมอบของขวัญ เนื่องจากความแตกต่างของราคาในภูมิภาคต่าง ๆ การฉวยโอกาสด้านราคาจึงอาจเกิดขึ้น (การใช้ประโยชน์จากความแตกต่างของราคาในผลิตภัณฑ์เดียวกันเพื่อสร้างกำไร) เพื่อจัดการโอกาสในการฉวยโอกาสด้านราคา คุณสามารถใช้ API GetUsersPriceLevelsAsync ซึ่งช่วยให้คุณกำหนดระดับราคาสัมพัทธ์ของผู้ใช้ เพื่อที่คุณจะได้ดำเนินการอย่างมีเหตุผลในการควบคุมการส่งรายการตามระดับเหล่านี้
GetUsersPriceLevelsAsync จะให้ค่าหมายเลขระหว่าง 1 ถึง 1000 ที่บ่งบอกถึงระดับราคาของผู้ใช้ ค่านี้ถูกออกแบบมาเพื่อแสดงถึงเปอร์เซ็นต์ของราคาทั้งหมดที่ผู้ใช้คาดว่าจะจ่าย ระดับราคา 1000 แสดงถึงราคาทั่วไปทั้งหมด ในขณะที่ระดับราคาที่ต่ำกว่าจะบ่งบอกว่าผู้ใช้ปกติจะจ่ายราคาที่ต่ำกว่าเพราะสถานที่ทางเศรษฐกิจของพวกเขา
ความแตกต่างของระดับราคาที่ต่ำกว่าจะหมายความว่ามีความแตกต่างของราคาที่น้อยระหว่างราคาทั่วไปและราคาที่จัดการของผู้ใช้ ในขณะที่ความแตกต่างของระดับราคาที่สูงกว่าจะหมายความว่ามีความแตกต่างของราคาที่มากขึ้น ระดับราคาสำหรับผู้ใช้ A มีระดับราคา 1000 ซึ่งแสดงถึงราคาทั่วไปทั้งหมด โดยผู้ใช้นี้จ่าย 100% ของราคาพื้นฐานสำหรับรายการ
- ผู้ใช้ B มีระดับราคา 500 ซึ่งแสดงถึง 50% ของราคาทั่วไปทั้งหมด โดยผู้ใช้นี้จ่าย 50% ของราคาพื้นฐานสำหรับรายการ
- เมื่อคุณทราบระดับราคาของผู้ใช้แต่ละคน คุณสามารถเลือกอนุญาตหรือบล็อคการมอบของขวัญหรือการแลกเปลี่ยนระหว่างผู้ใช้ A และผู้ใช้ B ตามความแตกต่างของระดับราคาที่ 500
ใช้งาน GetUsersPriceLevelsAsync
ในการรับระดับราคาของผู้ใช้ที่เกี่ยวข้องในการส่งรายการ ให้เรียกใช้ฟังก์ชัน GetUsersPriceLevelsAsync ใน MarketplaceService ฟังก์ชันนี้จะรับอาเรย์ของหมายเลข ID ผู้ใช้เป็นพารามิเตอร์และส่งคืนอาเรย์ของอ็อบเจ็กต์ PriceLevelInfo ที่มีฟิลด์ดังต่อไปนี้:
type PriceLevelInfo = {UserId: number,PriceLevel: number}
หลังจากทำการใช้งานฟังก์ชันแล้ว ให้ใช้ระดับราคาที่ส่งคืนเพื่อเลือกว่าคุณต้องการอนุญาตให้อัปโหลดการส่งรายการหรือไม่ ตัวอย่างเช่น คุณสามารถอนุญาตให้ผู้ใช้ที่มีระดับราคาสูงกว่ามอบรายการให้แก่ผู้ใช้ที่มีระดับราคาต่ำกว่า แต่อนุญาตให้การแลกเปลี่ยนระหว่างผู้ใช้ที่มีระดับราคาเท่ากันเท่านั้น ดู ตัวอย่างที่มีอยู่ สำหรับข้อมูลเพิ่มเติม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ API GetUsersPriceLevelsAsync ดูที่ MarketplaceService.
ตัวอย่าง
ตัวอย่างของวิธีที่คุณสามารถใช้ GetUsersPriceLevelsAsync กับการตั้งราคาในระดับภูมิภาค
ตัวอย่างที่ 1: ตรวจสอบระดับราคาในรายการของผู้ใช้
ตัวอย่างนี้จะแสดงวิธีดึงระดับราคาในรายการของผู้ใช้ ซึ่งสามารถช่วยให้คุณเลือกว่าจะอนุญาตให้อัปโหลดการส่งรายการหรือไม่
-- รับ MarketplaceService
local MarketplaceService = game:GetService("MarketplaceService")
-- กำหนดฟังก์ชันในการดึงระดับราคาในรายการของผู้ใช้และสร้างตารางค้นหาจาก UserId ไปยัง PriceLevel
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- แผนที่แต่ละ PriceLevelInfo ไปยังตารางค้นหาจาก UserId -> PriceLevel
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("เกิดข้อผิดพลาดในการดึงระดับราคา:", result)
return nil
end
end
-- ตัวอย่างการใช้หมายเลข ID เป็นสัญลักษณ์
local user1Id = 123456789
local user2Id = 987654321
-- เรียกฟังก์ชันและเก็บผลลัพธ์
local priceLevels = getPriceLevelsLookup({user1Id, user2Id})
-- หากสำเร็จ ให้พิมพ์ระดับราคาแต่ละผู้ใช้
if priceLevels then
print("ระดับราคาของผู้ใช้ 1:", priceLevels[user1Id])
print("ระดับราคาของผู้ใช้ 2:", priceLevels[user2Id])
else
print("ไม่สามารถดึงระดับราคาได้.")
end
ตัวอย่างที่ 2: เปรียบเทียบระดับราคาของผู้ส่งกับระดับราคาของผู้รับ
ตัวอย่างนี้แสดง การใช้งานตัวอย่าง ของวิธีการตรวจสอบระดับราคาของผู้ส่งกับระดับราคาของผู้รับ นี่สามารถช่วยให้คุณจัดการการมอบของขวัญจากผู้ใช้ในพื้นที่ราคาสูงให้กับผู้ใช้ในพื้นที่ราคาต่ำ
-- รับ MarketplaceService
local MarketplaceService = game:GetService("MarketplaceService")
-- กำหนดฟังก์ชันในการดึงระดับราคาในรายการของผู้ใช้และสร้างตารางค้นหาจาก UserId ไปยัง PriceLevel
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- แผนที่แต่ละ PriceLevelInfo ไปยังตารางค้นหาจาก UserId -> PriceLevel
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("เกิดข้อผิดพลาดในการดึงระดับราคา:", result)
return nil
end
end
-- กำหนดฟังก์ชันที่ตรวจสอบว่าผู้ส่งมีระดับราคาสูงกว่าหรือเท่ากับผู้รับหรือไม่
-- พารามิเตอร์คือผู้เล่นที่ส่งรายการและผู้เล่นที่รับรายการ
-- ฟังก์ชันจะส่งคืน true หากระดับราคาของผู้ส่งสูงกว่าหรือเท่ากับระดับราคาของผู้รับ
function isSenderPriceLevelHigherOrEqualforGifting(sender, recipient)
local priceLevelsLookup = getPriceLevelsLookup({ sender.UserId, recipient.UserId })
if not priceLevelsLookup then
error("MarketplaceService:GetUsersPriceLevelsAsync ล้มเหลว ไม่สามารถดึงระดับราคาของผู้ใช้ได้.")
end
local senderPriceLevel = priceLevelsLookup[sender.UserId]
local recipientPriceLevel = priceLevelsLookup[recipient.UserId]
return senderPriceLevel >= recipientPriceLevel
end
ตัวอย่างที่ 3: ตรวจสอบว่าผู้ใช้สองคนมีระดับราคาเดียวกันหรือไม่
ตัวอย่างนี้แสดง การใช้งานตัวอย่าง ของวิธีการตรวจสอบว่าผู้ใช้สองคนมีระดับราคาเดียวกันหรือไม่ ซึ่งสามารถช่วยจัดการการแลกเปลี่ยนและทำให้มั่นใจได้ว่าจะมีการแลกเปลี่ยนที่เป็นธรรมระหว่างผู้ใช้จากภูมิภาคที่แตกต่างกัน
-- รับ MarketplaceService
local MarketplaceService = game:GetService("MarketplaceService")
-- กำหนดฟังก์ชันในการดึงระดับราคาในรายการของผู้ใช้และสร้างตารางค้นหาจาก UserId ไปยัง PriceLevel
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- แผนที่แต่ละ PriceLevelInfo ไปยังตารางค้นหาจาก UserId -> PriceLevel
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("เกิดข้อผิดพลาดในการดึงระดับราคา:", result)
return nil
end
end
-- กำหนดฟังก์ชันที่ตรวจสอบว่าผู้ใช้สองคนมีระดับราคาเดียวกันหรือไม่
-- พารามิเตอร์คือผู้ใช้สองคนที่คุณต้องการเปรียบเทียบระดับราคา
-- ฟังก์ชันจะส่งคืน true หากผู้ใช้ทั้งสองมีระดับราคาเดียวกัน
function haveSamePriceLevelForTrading(userA, userB)
local priceLevelsLookup = getPriceLevelsLookup({ userA.UserId, userB.UserId })
if not priceLevelsLookup then
error("MarketplaceService:GetUsersPriceLevelsAsync ล้มเหลว ไม่สามารถดึงระดับราคาของผู้ใช้ได้.")
end
local userAPriceLevel = priceLevelsLookup[userA.UserId]
local userBPriceLevel = priceLevelsLookup[userB.UserId]
return userAPriceLevel == userBPriceLevel
end