منتجات المطورين

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

منتج المطور هو عنصر أو قدرة يمكن للمستخدم شراؤها أكثر من مرة، مثل العملة داخل اللعبة، أو الذخيرة، أو الجرع.

إنشاء منتج مطور

لإنشاء منتج مطور:

  1. انتقل إلى الإبداعات واختر لعبة.
  2. انتقل إلى الت monetizationمنتجات المطورين.
  3. انقر على إنشاء منتج مطور.
  4. قم بتحميل صورة لعرضها كأيقونة للمنتج. تأكد من أن الصورة لا تتجاوز 512x512 بكسل، ولا تتضمن تفاصيل مهمة خارج حدودها الدائرية، وأن تكون بصيغة .jpg، .png، أو .bmp.
  5. أدخل اسمًا ووصفًا للمنتج.
  6. اختر فئة للمنتج. تُستخدم الفئة لتنظيم العناصر في المتجر داخل لعبتك.
  7. قم بتعيين سعر المنتج بالروبكس. الحد الأدنى للسعر هو 1 روبكس، والحد الأقصى للسعر هو 1 مليار روبكس.
  8. انقر على حفظ التغييرات.

احصل على معرّف المنتج المطور

للاستخدام في البرمجة، تحتاج إلى معرّف منتج مطور. للحصول على معرّف المنتج:

  1. انتقل إلى الت monetizationمنتجات المطورين.

  2. مرر فوق صورة مصغرة لمنتج، انقر على زر ، واختر نسخ معرّف الأصل من قائمة السياق.

بيع منتج مطور

قبل بيع منتجات المطورين، تأكد من أنك تعالج إيصالات المبيعات بشكل صحيح وتمنح المستخدمين المنتجات التي اشتروها. لتحقيق ذلك، يجب عليك:

  • استخدام API ProcessReceipt للتحقق من إيصالات الشراء. يقوم ProcessReceipt تلقائيًا بقراءة والاعتراف بأن مستخدمًا قد اشترى منتجًا خارج اللعبة.
  • تحقق من كل إيصال لـ User ID و Developer Product ID وحالة الإيصال.
  • إذا كانت حالة الإيصال مفتوحة، امنح المستخدم العناصر التطويرية التي اشتراها.
  • قم بالرد على API ProcessReceipt برسالة تعترف بالإيصال وتحقق من أن العناصر المشتراة قد تم منحها.

يمكنك بيع منتجات المطورين بطريقتين:

داخل لعبتك

لتطبيق وبيع منتج مطور داخل لعبة، استدعِ وظائف MarketplaceService.

استخدم GetProductInfo لاسترداد معلومات حول منتج مطور، مثل الاسم والسعر، ثم لعرض هذا المنتج على المستخدمين. يمكنك بيع المنتج داخل سوق لعبتك، على سبيل المثال. بالنسبة لمنتجات المطورين، يجب أن تكون المعلمة الثانية Enum.InfoType.Product.


local MarketplaceService = game:GetService("MarketplaceService")
-- استبدل معرّف العنصر بالمعرّف الخاص بك
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- عرض معلومات المنتج
-- استبدل عبارات الطباعة برمز واجهة المستخدم لعرض المنتج
print("اسم منتج المطور: " .. productInfo.Name)
print("السعر بالروبكس: " .. productInfo.PriceInRobux)
print("الوصف: " .. productInfo.Description)
end

استخدم GetDeveloperProductsAsync لاسترداد جميع منتجات المطورين المرتبطة بلعبتك. تعيد هذه الوظيفة كائن Pages يمكنك فحصه وتصفيته لبناء أشياء مثل متجر داخل اللعبة أو واجهة قائمة المنتجات.


local MarketplaceService = game:GetService("MarketplaceService")
local success, developerProducts = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync()
end)
if success and developerProducts then
local firstPage = developerProducts:GetCurrentPage()
for _, developerProduct in firstPage do
-- استبدل عبارة الطباعة برمز واجهة المستخدم لعرض المنتج
print(field .. ": " .. value)
end
end

استخدم PromptProductPurchase لطلب شراء المنتجات داخل لعبتك. يمكنك استدعاء هذه الوظيفة عندما يقوم المستخدم بإجراءات مثل الضغط على زر أو التحدث إلى NPC بائعي.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- استبدل معرّف العنصر بالمعرّف الخاص بك
local productId = 000000
local function promptProductPurchase()
local success, errorMessage = pcall(function()
MarketplaceService:PromptProductPurchase(player, productId)
end)
if success then
print("تم عرض طلب الشراء بنجاح")
end
end

يمكنك أيضًا دمج الوظائف داخل LocalScript. على سبيل المثال، يمكنك إنشاء عنصر واجهة مستخدم مثل زر أو NPC بائع، ثم استخدام GetProductInfo() لربط منتج مطور موجود بذلك العنصر، والتحقق مما إذا كان المنتج معروضًا للبيع، واستخدام PromptProductPurchase() لطلب الشراء في كل مرة ينقر فيها المستخدم عليه.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
-- استبدل معرّف العنصر بالمعرّف الخاص بك
local productId = 000000
-- يحصل على معلومات المنتج عندما ينقر المستخدم على زر واجهة المستخدم
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- يتحقق مما إذا كان المنتج معروضًا للبيع
if productInfo.IsForSale then
print("هذا معروض للبيع")
-- يطلب شراء المنتج
MarketplaceService:PromptProductPurchase(player, productId)
else
-- يخبر أن المنتج ليس معروضًا للبيع
print("هذا المنتج غير معروض حاليًا للبيع.")
end
else
print("خطأ في استرداد معلومات المنتج: " .. tostring(productInfo))
end
end)

خارج لعبتك

لتمكين شراء منتجات المطورين خارج لعبتك، يجب أن تعمل مع API ProcessReceipt. بعد أن يقوم المستخدم بعمل شراء في علامة المتجر على صفحة تفاصيل لعبتك، يجب عليك استخدام ProcessReceipt لتأكيد عملية الشراء ومنحهم العناصر الخاصة بهم بمجرد دخولهم إلى لعبتك.

وضع الاختبار

تساعد ميزة وضع الاختبار في التحقق من تدفق الشراء الخاص بك عن طريق محاكاة عملية شراء منتج مطور خارج لعبتك. يجب عليك استخدام وضع الاختبار للتأكد من أنك قد قمت بتنفيذ ProcessReceipt بشكل صحيح قبل تمكين مبيعات منتجات المطورين الخارجية.

لا يمكن رؤية منتجات المطورين التي تعرضها في وضع الاختبار إلا من قبلك ومن قبل أعضاء مجموعتك. إنها غير مرئية للمستخدمين.

لاختبار تنفيذك:

  1. في مركز المنشئين، اذهب إلى الت monetizationمنتجات المطورين.
  2. انقر على قائمة واختر إعدادات الشراء الخارجية.
  3. في صفحة إعدادات الشراء الخارجية، انقر على تمكين وضع الاختبار.
  4. بمجرد تفعيل وضع الاختبار، عد إلى صفحة منتجات المطورين واختر منتجًا للاختبار.
  5. في صفحة الإعدادات الأساسية، حدد مربع السماح بالشراء الخارجي واحفظ تغييراتك.
  6. انتقل إلى علامة المتجر في صفحة تفاصيل اللعبة واشتري المنتج الذي جعلته متاحًا للبيع.
  7. ادخل اللعبة وتحقق من أنك تلقيت المنتج الذي اشتريته. يجب أن يتم تحديث حالة الإيصال لـ API ProcessReceipt إلى مغلق.

بعد أن تختبر تنفيذك، تتحقق روبلوكس من أن الاختبار قد اكتمل بنجاح وتسمح لك بتنشيط الميزة بالكامل لبيع منتجات المطورين خارج ألعابك.

لمزيد من المعلومات حول API ProcessReceipt وتنفيذه، انظر إلى صفحة ProcessReceipt.

تمكين المبيعات الخارجية

لتمكين المبيعات الخارجية:

  1. انتقل إلى صفحة إعدادات الشراء الخارجية.
  2. قم بتشغيل المشتريات الخارجية.
  3. عد إلى صفحة منتجات المطورين واختر المنتجات التي تريد بيعها خارج لعبتك.
  4. في صفحة الإعدادات الأساسية، حدد مربع السماح بالمشتريات الخارجية واحفظ تغييراتك.
  5. تأكد من أن المنتجات متاحة الآن للشراء في علامة المتجر في صفحة تفاصيل اللعبة.

لإلغاء البيع الخارجي لمنتج مطور، حدد المنتج في صفحة منتجات المطورين وقم بإلغاء تحديد مربع السماح بالمشتريات الخارجية.

القيود

  • تكلف العناصر المعروضة للبيع في وضع الاختبار روبكس حقيقي. نوصي باختبار منتجات المطورين ذات التكلفة المنخفضة.
  • يمكن رؤية العناصر التي تعرض للبيع في وضع الاختبار فقط من قبلك أو من قبل أعضاء مجموعتك.
  • يجب أن تحتوي منتجات المطورين التي سيتم بيعها خارجيًا على صورة مصغرة.
  • يجب ألا تبيع الأشياء التالية خارج لعبتك:
    • عناصر عشوائية مدفوعة
    • عناصر محدودة بكميات معينة، أو زمن، أو مكان، أو إعدادات المستخدم والأدوار

التعامل مع شراء منتج مطور

بعد أن يشتري المستخدم منتج مطور، يجب أن تتعامل مع الصفقة وتسجلها. للقيام بذلك، استخدم Script داخل ServerScriptService باستخدام وظيفة ProcessReceipt.

لمزيد من المعلومات حول API ProcessReceipt وتنفيذه، انظر إلى صفحة ProcessReceipt.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- مثال: معرّف المنتج 123123 يعيد المستخدم إلى صحة كاملة
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- يشير إلى إجراء شراء ناجح
return true
end
end
-- مثال: معرّف المنتج 456456 يمنح 100 قطعة ذهبية للمستخدم
productFunctions[456456] = function(receipt, player)
local leaderstats = player:FindFirstChild("leaderstats")
local gold = leaderstats and leaderstats:FindFirstChild("Gold")
if gold then
gold.Value += 100
return true
end
end
local function processReceipt(receiptInfo)
local userId = receiptInfo.PlayerId
local productId = receiptInfo.ProductId
local player = Players:GetPlayerByUserId(userId)
if player then
-- يحصل على وظيفة المعالجة المرتبطة بمعرّف المنتج المطور ويحاول تشغيلها
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- لقد تلقى المستخدم عناصره
-- عائد "PurchaseGranted" لتأكيد الصفقة
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("فشل معالجة الإيصال:", receiptInfo, result)
end
end
-- لم يتمكن من منح عناصر المستخدم
-- عائد "NotProcessedYet" ويحاول مرة أخرى في المرة القادمة التي ينضم فيها المستخدم إلى اللعبة
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- تعيين رد النداء
-- لا يمكن القيام بذلك إلا مرة واحدة بواسطة برنامج نصي واحد من جانب الخادم
MarketplaceService.ProcessReceipt = processReceipt

تخصيص متجرك داخل اللعبة

يمكنك استخدام واجهات برمجة التطبيقات لذكاء المنتجات لترتيب وتوصية منتجات المطورين للمستخدمين. يساعد تخصيص متجرك داخل اللعبة على ظهور العناصر الأكثر صلة بكل مستخدم، مما يعزز التفاعل والإيرادات. من خلال تكييف منتجات المطورين وفقًا لتفضيلات المستخدم، يمكنك تحسين اكتشافها وزيادة معدلات التحويل وفتح فرص جديدة لتحقيق الدخل.

تصنيف منتجات المطورين المعروضة للبيع

تعمل RankProductsAsync على أخذ قائمة من معرّفات المنتجات وإرجاع قائمة مرتبة شخصية من تلك المنتجات. يمكنك استخدام هذه الطريقة لتقديم توصيات شخصية للمستخدمين في متجرك داخل اللعبة.

مثال: ثلاث عناصر "قوى" مرتبة للمستخدم
ثلاث عناصر مرتبة للمستخدم.

local MarketplaceService = game:GetService("MarketplaceService")
-- إنشاء مصفوفة من المنتجات التي تريد ترتيبها
local productIdentifiers = {
{InfoType = Enum.InfoType.GamePass, Id = 123},
{InfoType = Enum.InfoType.Product, Id = 456},
{InfoType = Enum.InfoType.Product, Id = 789}
}
-- قم بإجراء مكالمة محمية للتعامل مع الأخطاء
local success, rankedProducts = pcall(function()
return MarketplaceService:RankProductsAsync(productIdentifiers)
end)
if not success then
error("فشل ترتيب المنتجات")
end
-- تحميل العناصر المعادة في المتجر
for i, rankedItem in ipairs(rankedProducts) do
local productIdentifier = rankedItem.ProductIdentifier
local productInfo = rankedItem.ProductInfo
-- ...
-- المنطق لإضافة المنتجات إلى المتجر
end

عرض أفضل منتجات المطورين لديك

تأخذ RecommendTopProductsAsync مصفوفة من قيم InfoType وترجع حتى 50 عنصرًا من المحتمل أن يتفاعل معها المستخدم ويقوم بشرائها. يمكنك استخدام هذه الطريقة لإنشاء قسم "أفضل الاختيارات" في متجرك داخل اللعبة.

إذا تعذر تحديد أي توصيات، فإن RecommendTopProductsAsync تُرجع 0 عناصر.

في حالات نادرة، يمكن أن تكون المكالمات إلى نموذج التصنيف بطيئة. للمساعدة في منع الإضافات المتأخرة للمستخدمين، نوصي باستخدام task.spawn لجعل المكالمة إلى RecommendTopProducts غير حابسة.

مثال: علامة "أفضل الاختيارات" في متجر داخل اللعبة
علامة أفضل الاختيارات في متجر داخل اللعبة.

local MarketplaceService = game:GetService("MarketplaceService")
-- إنشاء مصفوفة من أنواع المنتجات التي تريد تضمينها في التوصيات -- يتضمن هذا المثال كلاً من التمريرات ومنتجات المطورين
local productTypes = {Enum.InfoType.GamePass, Enum.InfoType.Product}
-- قم بإجراء مكالمة محمية للتعامل مع الأخطاء
local success, topRankedItems = pcall(function()
return MarketplaceService:RecommendTopProductsAsync(productTypes)
end)
if not success then
error("فشل ترتيب المنتجات")
end
-- تحميل العناصر المعادة في المتجر
-- تأكد من تصفية أي عناصر غير مؤهلة من topRankedItems مثل منتجات المطورين التي لم يعد بإمكان المستخدم شراؤها
for i, rankedItem in ipairs(topRankedItems) do
local productIdentifier = rankedItem.ProductIdentifier
local productInfo = rankedItem.ProductInfo
-- ...
-- المنطق لإضافة المنتجات إلى المتجر
end

تحليلات منتج المطور

استخدم تحليلات منتج المطور لتحليل نجاح المنتجات الفردية، وتحديد الاتجاهات، وتوقع الأرباح المستقبلية المحتملة.

مع التحليلات، يمكنك:

  • عرض أفضل منتجات المطورين لديك خلال فترة زمنية مختارة.
  • عرض ما يصل إلى ثمانية عناصر الأكثر مبيعًا على رسم بياني زمني لتحليل المبيعات الإجمالية والإيرادات الصافية.
  • مراقبة كتالوجك وتصنيف العناصر حسب المبيعات والإيرادات الصافية.

للوصول إلى تحليلات منتجات المطورين:

  1. انتقل إلى الإبداعات واختر لعبة.
  2. اذهب إلى الت monetizationمنتجات المطورين.
  3. حدد علامة تحليلات.
©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.