গেমের পরিসংখ্যান

গেমের পরিসংখ্যান হল আপনার গেমের ক্রমবর্ধমান পরিসংখ্যান যা প্লেয়াররা তাদের গেমার প্রোফাইলে দেখতে পাবেন। এই পরিসংখ্যানের মাধ্যমে প্লেয়াররা লাইফটাইম প্রোগ্রেস ট্র্যাক করতে, হাইলাইট করা মুহূর্ত দেখতে এবং অন্যান্য প্লেয়ারের সাথে তুলনা করতে পারবেন। এছাড়াও, ভবিষ্যতে কোয়েস্ট, সোশ্যাল চ্যালেঞ্জ এবং আরও অনেক কিছুর মতো Google Play ফিচার পরিচালনা করতে পারবেন।

গেমের পরিসংখ্যানের ক্ষেত্রে নিম্নলিখিত শর্ত মেনে চলতে হবে:

  • কোনও কিছু কেনার প্রয়োজন নেই (যেমন, জেম কেনা) অর্থাৎ কোনও IAP কেনাকাটার ফলে সেগুলি আপডেট হওয়া উচিত নয়।
  • বিজ্ঞাপন দেখার প্রয়োজন নেই, অর্থাৎ বিজ্ঞাপন দেখার ফলে সেগুলি আপডেট হওয়া উচিত নয়।
  • গেমের সাধারণ ব্যবহার নয় (যেমন, গেম খোলা; সেটিংস ব্যবহার করা)।
  • Play নীতি অনুযায়ী ব্যবহারকারীর ব্যক্তিগত ও সংবেদনশীল ডেটা অন্তর্ভুক্ত করা যাবে না, যার মধ্যে ব্যবহারকারীর আইডি, পাসওয়ার্ড, সুনির্দিষ্ট লোকেশন বা স্বাস্থ্য সংক্রান্ত ডেটা অথবা কোনও আপত্তিকর, অশ্লীল, যৌনতাপূর্ণ, হিংসাত্মক বা ঘৃণাত্মক কন্টেন্ট অন্তর্ভুক্ত।
  • সব ব্যবহারকারীর জন্য উপলভ্য হতে হবে (যেমন, টিম-নির্দিষ্ট অ্যাকশন বা নির্দিষ্ট লেভেলের ব্যবহারকারীদের জন্য উপলভ্য বা সীমিত সময়ের লাইভ-অপারেশন ইত্যাদির মধ্যে সীমাবদ্ধ নয়)

ছবিতে অ্যাকাউন্ট ট্যাবে গেমার প্রোফাইলে গেমের পরিসংখ্যান দেখানো হয়েছে। অ্যাকাউন্ট ট্যাবে এই ইউজার ইন্টারফেস (UI) শুধুমাত্র পরীক্ষা করার জন্য উপলভ্য। গেমের পরিসংখ্যান UI সেপ্টেম্বর ২০২৬-এ উপলভ্য হবে।

'অ্যাকাউন্ট' ট্যাবে গেমের পরিসংখ্যান
'অ্যাকাউন্ট' ট্যাবে হাইলাইট সহ গেমের পরিসংখ্যান।

এগ্রিগেশনের ধরন

আপনার পাঠানো প্রতি-ইভেন্ট ভ্যালু থেকে কীভাবে পরিসংখ্যান গণনা করতে হবে তা অ্যাগ্রিগেশন টাইপ Google Play-কে জানায়:

  • SUM: ক্রমবর্ধমান পরিসংখ্যানের জন্য ব্যবহার করুন (যেমন, মোট সংগৃহীত কয়েন, মোট ক্ষতি)। গেমটিকে অবশ্যই প্রতিটি ইভেন্ট ইনস্ট্যান্সের সময় উপার্জিত স্বতন্ত্র পরিমাণ পাঠাতে হবে।
  • COUNT: কোনও ইভেন্ট কতবার ঘটেছে তা দেখানোর জন্য এই পরিসংখ্যান ব্যবহার করুন (যেমন, কতগুলি গেম খেলা হয়েছে, কতগুলি গেম জেতা হয়েছে)। গেমটিকে অবশ্যই ডিসক্রিট ইভেন্ট ঘটনার ইনস্ট্যান্স পাঠাতে হবে।
  • MAX: শুধুমাত্র একবার ঘটা সর্বোচ্চ কৃতিত্বের জন্য ব্যবহার করুন (যেমন, একটি রানে সর্বোচ্চ স্কোর, সর্বাধিক কম্বো স্ট্রিক বা একটি ম্যাচে সর্বোচ্চ ক্ষতি)। আগে থেকে গণনা করা রানিং ভ্যালু থেকে লাইফটাইম মোট দেখানোর জন্য MAX-কে বিকল্প হিসেবে ব্যবহার করবেন না।

পুনরাবৃত্তিমূলক পরিসংখ্যানের জন্য গুরুত্বপূর্ণ প্রয়োগ সংক্রান্ত প্রয়োজনীয়তা

  • প্রতি-ইভেন্ট ভ্যালু পাঠান: প্রতিটি ইভেন্টের জন্য, শুধুমাত্র সেই ইভেন্টে কী ঘটেছে তা পাঠান, যেমন একটি রান থেকে সংগ্রহ করা কয়েন। তারপর আপনার স্ট্যাট কনফিগারেশনে SUM বা COUNT-এর মতো অ্যাগ্রিগেশন টাইপ সেট করুন। এটি নিশ্চিত করে যে পুনরাবৃত্তিমূলক পরিসংখ্যান এনগেজমেন্ট মেকানিক্স জুড়ে পুনরায় ব্যবহারযোগ্য এবং Google Play-কে সঠিক প্লেয়ার অভিজ্ঞতা তৈরি করতে দেয়।
  • লাইফটাইম মোট ডেটা পাঠাবেন না: যেমন, আপনার গেম ক্লায়েন্ট বা সার্ভারে কোনও প্লেয়ারের সংগ্রহ করা মোট কয়েন ট্র্যাক করবেন না এবং MAX এগ্রিগেশনের সাথে সেই মোট ডেটা পাঠাবেন না। এই ধরনের পরিসংখ্যান গেমার প্রোফাইল UI-তে দেখানো হবে, তবে Google Play এগুলি ব্যবহার করে লিগ, কোয়েস্ট ও স্প্রিন্টের মতো পুরস্কার প্রদানকারী ফিচারগুলি চালাতে পারবে না, যার ফলে প্লেয়ারের অভিজ্ঞতা উন্নত করা এবং আপনার গেমের উপর প্রভাব ফেলা সম্ভব হবে না।

সঠিক ইভেন্ট মডেলিংয়ের নির্দেশাবলী ও উদাহরণের জন্য প্লেয়ার ইভেন্ট এবং আপনার পরিসংখ্যান কনফিগার করুন দেখুন।

ইন্টিগ্রেশনের ধাপ

পুনরাবৃত্তিমূলক পরিসংখ্যানের জন্য প্লেয়ার ইভেন্ট হিসেবে Game Stats API ব্যবহার করে ডেটা পাঠান এবং প্রগ্রেশন স্ট্যাটের জন্য একটি পূর্বনির্ধারিত ইভেন্ট progressUpdate। আপনাকে গেমার প্রোফাইলে দেখানো হবে এমন পরিসংখ্যান এবং তাদের ডিসপ্লে তথ্য গণনা করার জন্য লজিক কনফিগার করতে হবে।

প্লেয়ার ইভেন্ট গেমের মধ্যে বিভিন্ন মুহূর্ত, গেম লুপ সম্পূর্ণ করা বা অগ্রগতির মাইলস্টোন দেখায়।

প্লেয়ার ইভেন্টকে এইভাবে সংজ্ঞায়িত ও মডেল করা হয়:

  1. কোনও ইভেন্টকে প্লেয়ারের নেওয়া নির্দিষ্ট অ্যাকশন দ্বারা দেখানো হয়, যেমন ম্যাচ সম্পূর্ণ করা, রান শেষ করা, চেস্ট আনলক করা বা কোনও এলাকায় অগ্রগতি সেভ করা।
  2. প্রতিটি অ্যাকশনের ফলে নির্দিষ্ট ফলাফল পাওয়া যায় বা অ্যাকশনকে সংজ্ঞায়িত করে এমন নির্দিষ্ট বৈশিষ্ট্য থাকে। এগুলি ইভেন্ট প্রপার্টি হিসেবে মডেল করা হয় যা ইভেন্ট ও তার নির্দিষ্ট ফলাফল সম্পর্কে প্রাসঙ্গিক তথ্য প্রদান করে (যেমন, ম্যাচের ধরন, সেই রান চলাকালীন সংগ্রহ করা কয়েন, ম্যাচের ফলাফল বা হেডশটের সংখ্যা)।

ইন্টিগ্রেশনে নিম্নলিখিত ধাপগুলি রয়েছে:

  • র ডেটা স্কিমা ঘোষণা করুন: Play Console-এ CSV আপলোড করে প্লেয়ার ইভেন্ট সংজ্ঞায়িত করুন। ইভেন্ট তৈরি করুন দেখুন।
  • গেমের পরিসংখ্যান API-এর সাথে ইন্টিগ্রেট করুন: প্লেয়ার ইভেন্ট ও progressUpdate ইভেন্টের জন্য ঘোষিত ফর্ম্যাটে প্লেয়ারের র ডেটা পাঠান।
    • ক্লায়েন্ট সাইড বা সার্ভার সাইড ইন্টিগ্রেশন ব্যবহার করে সব সংজ্ঞায়িত ইভেন্ট পাঠান। আরও তথ্যের জন্য, প্লেয়ার ইভেন্ট এবং progressUpdate ইভেন্ট-এর উদাহরণ দেখুন।
  • ZIP ফাইল আপলোড করুন: ৩টি CSV ফাইল এবং সব আইকন ছবির ফাইল দিন যা ৫টি পুনরাবৃত্তিমূলক স্ট্যাটাস এবং ১টি প্লেয়ার প্রগ্রেশন লেভেলকে সংজ্ঞায়িত করে। আরও তথ্যের জন্য, জিপ ফাইল সংক্রান্ত নির্দেশিকা দেখুন। নিম্নলিখিত বিবরণ অন্তর্ভুক্ত করুন:
    • পুনরাবৃত্তিমূলক পরিসংখ্যানের জন্য CSV ফাইল:
      • পরিসংখ্যানের জন্য একটি অনন্য আইডি।
      • পরিসংখ্যান গণনা করার জন্য ব্যবহার করা হবে এমন ইভেন্ট লেবেল উল্লেখ করুন। আপনি এখানে progressUpdate ইভেন্ট লেবেল ব্যবহার করতে পারবেন না।
        • পরিসংখ্যান গণনা করার জন্য ব্যবহার করা হবে এমন প্রপার্টি লেবেল উল্লেখ করুন। এটি অবশ্যই নির্দিষ্ট ইভেন্টের একটি প্রপার্টি হতে হবে।
        • বেছে নেওয়া প্রপার্টি লেবেলে কীভাবে পরিসংখ্যান গণনা করা হবে তা নির্ধারণ করতে অ্যাগ্রিগেশনের ধরন (SUM, MAX, MIN বা COUNT) নির্দিষ্ট করুন।
        • শুধুমাত্র শর্ত পূরণ হলে লজিক গণনা করার জন্য একটি ঐচ্ছিক ফিল্টার শর্ত নির্দিষ্ট করুন। প্রপার্টি ও ইভেন্ট লেবেল, অপারেটর (=, <, <=, >=, বা >) এবং থ্রেশহোল্ড ভ্যালু নির্ধারণ করুন।
      • প্রতিযোগিতামূলক ফিচারের জন্য স্ট্যাট ব্যবহার করা যাবে কিনা তা নির্দেশ করতে একটি বুলিয়ান ফ্ল্যাগ অন্তর্ভুক্ত করুন।
      • ফিচারটি যদি প্রতিযোগিতামূলক ফিচারের জন্য ব্যবহার করা যায়, তাহলে একজন আসল প্লেয়ারের জন্য ন্যূনতম এবং সর্বাধিক প্রতি ঘণ্টার সীমা। লিগ ও সোশ্যাল চ্যালেঞ্জের মতো ফিচারে অংশগ্রহণ করার সময় কোনও প্লেয়ার অপব্যবহার করছেন কিনা তা শনাক্ত করতে এটি ব্যবহার করা হবে।
      • পরিসংখ্যানের জন্য একটি অনন্য ডিসপ্লে নাম প্রদান করুন যা প্লেয়াররা দেখতে পাবেন।
      • পরিসংখ্যান বর্ণনা করে এমন অনন্য টেক্সট প্রদান করুন। এই বিবরণটি খেলোয়াড় কীভাবে এটি উপার্জন করে তার বিবরণ প্রদান করা উচিত এবং গেমার প্রোফাইল UI-তে খেলোয়াড়দের দেখানো হবে।
      • CSV ফাইলে আইকনের ফাইলের নাম সঠিকভাবে লিখে স্ট্যাটাস দেখানোর জন্য একটি অনন্য আইকন প্রদান করুন।
      • ক্রমবর্ধমান মান বা হ্রাসমান মান প্লেয়ারের জন্য ভাল কিনা তা ঐচ্ছিক ইনপুট প্রদান করুন। এই ইনপুটটি প্লেয়ারের মুভমেন্ট উদযাপন করার জন্য ব্যবহার করা হবে।
      • পরিসংখ্যানের জন্য পরিমাপের ঐচ্ছিক একক প্রদান করুন, যেমন কিমি, মাইল এবং সেকেন্ড।
    • প্লেয়ারের প্রগ্রেস স্ট্যাটের জন্য CSV ফাইল:
      • প্লেয়ারের প্রগ্রেসের জন্য একটি অনন্য ডিসপ্লে নাম প্রদান করুন যা প্লেয়াররা দেখতে পাবেন।
      • পরিসংখ্যান দেখানোর জন্য একটি অনন্য আইকন দিন।
      • প্রোগ্রেস স্ট্যাটের বিবরণ দিন।
      • ক্রমবর্ধমান মান বা হ্রাসমান মান প্লেয়ারের জন্য ভাল কিনা তা ঐচ্ছিক ইনপুট প্রদান করুন। এই ইনপুটটি শুধুমাত্র তখনই প্লেয়ারের মুভমেন্ট উদযাপন করার জন্য ব্যবহার করা হবে যখন currentProgress প্রপার্টি INT টাইপের হবে।
      • পরিসংখ্যানের জন্য পরিমাপের ঐচ্ছিক একক প্রদান করুন, যেমন কিমি, মাইল, সেকেন্ড।
    • লোকালাইজেশনের জন্য CSV ফাইল: সব পরিসংখ্যানের জন্য লোকালাইজ করা ডিসপ্লে নাম প্রদান করুন।
      • প্রতিটি লোকালাইজেশনের জন্য একটি করে সারি যোগ করুন।
      • আগের CSV-তে যোগ করা স্ট্যাট ডিসপ্লে নামের স্ট্রিং ব্যবহার করুন যাতে যে স্ট্যাটের জন্য লোকালাইজেশন যোগ করা হচ্ছে সেটি অনন্যভাবে শনাক্ত করা যায়।
      • ভাষা কোডের তালিকা থেকে ভাষা উল্লেখ করুন।
      • নির্দিষ্ট ভাষায় ডিসপ্লে নামের জন্য লোকালাইজেশন যোগ করুন।
      • নির্দিষ্ট ভাষায় স্ট্যাট বিবরণের জন্য লোকালাইজেশন যোগ করুন।

স্কিমার পরিকল্পনা করুন

Game Stats API ব্যবহার করে আপনি দুই ধরনের ডেটা পাঠাতে পারবেন: প্লেয়ার ইভেন্ট এবং প্লেয়ারের প্রোগ্রেস সংক্রান্ত পরিসংখ্যানের জন্য আগে থেকে নির্ধারিত ইভেন্ট।

বিভিন্ন ধরনের গেমে প্লেয়ার ইভেন্ট কেমন দেখায় তা নিম্নলিখিত উদাহরণ থেকে বোঝা যাবে:

প্লেয়ার ইভেন্ট

প্লেয়ার ইভেন্ট বলতে গেমের মধ্যে নির্দিষ্ট মুহূর্ত, গেম লুপ সম্পূর্ণ করা বা অগ্রগতির মাইলস্টোনকে বোঝায়।

  • ইভেন্টকে নির্দিষ্ট ইন-গেম মুহূর্ত, গেম লুপ সম্পূর্ণ করা বা অগ্রগতির মাইলস্টোন হিসেবে সংজ্ঞায়িত করুন:
    • গেম লুপ সম্পূর্ণ করা, যেমন, সম্পূর্ণ করা ম্যাচ বা রান।
    • অগ্রগতির মাইলস্টোন, যেমন সেভ করা এলাকা এক্সপ্লোর করার অগ্রগতি বা সম্পূর্ণ করা লেভেল।
    • যেহেতু পুনরাবৃত্তিমূলক পরিসংখ্যানের মাধ্যমে কোনও প্লেয়ারের পুনরাবৃত্তিযোগ্য অ্যাকশনকে সঠিকভাবে তুলে ধরা উচিত, তাই সংজ্ঞায়িত ইভেন্টগুলি মূল গেমপ্লের সাথে যুক্ত হতে হবে।
  • ইভেন্ট ও তার ফলাফল সম্পর্কে প্রাসঙ্গিক তথ্য দিতে প্রপার্টি যোগ করুন, যেমন লেভেল নম্বর, ম্যাচের ধরন, অস্ত্রের ধরন, অস্ত্রের সংখ্যা, হেডশট, সংগ্রহ করা কয়েন, ম্যাচের ফলাফল, ল্যাপ টাইম বা গাড়ির ধরন।
  • গেমপ্লে সেশনের মধ্যে ইভেন্ট পাঠান, যত তাড়াতাড়ি সেগুলি ঘটবে। যেমন, লুপ সম্পূর্ণ হওয়ার সাথে সাথেই গেম লুপ সম্পূর্ণ হওয়ার ইভেন্ট পাঠান।
উদাহরণ
গেমের ধরন ইভেন্টের লেবেল ইন-গেম মোমেন্ট / প্রগ্রেশন ইভেন্ট সম্পূর্ণ করা / গেম লুপ সম্পূর্ণ করা ফলাফল গুণাগুণ
লিনিয়ার প্রগ্রেশন ইন্ডি পাজল গেম chapter_completed প্রোগ্রেস ইভেন্ট সম্পূর্ণ করা N/A চ্যাপ্টার নম্বর, চ্যাপ্টারের নাম, কতবার চেষ্টা করা হয়েছে, স্ক্রিনের সংখ্যা, কতবার সরানো হয়েছে, চ্যাপ্টারের কন্টেন্ট
screen_completed প্রোগ্রেস ইভেন্ট সম্পূর্ণ করা চ্যাপ্টার নম্বর, চ্যাপ্টারের নাম, কতবার চেষ্টা করা হয়েছে, কতবার চাল দেওয়া হয়েছে, চ্যাপ্টারের কন্টেন্ট
3D এন্ডলেস রানার run_completed গেম লুপ সম্পূর্ণ করা সংগ্রহ করা কয়েন, স্কোর রান করার সময়সীমা, জেটপ্যাক থেকে সংগ্রহ করা কয়েন, রান শুরু করার সময় ব্যবহৃত বুস্টার, ব্যবহৃত সার্ফবোর্ড, ব্যবহৃত ম্যাগনেট, ব্যবহৃত জাম্পার, ব্যবহৃত জেটপ্যাক
ওপেন ওয়ার্ল্ড অ্যাকশন RPG areaExplorationProgress প্রোগ্রেস ইভেন্ট সম্পূর্ণ করা শত্রু পরাজিত, পোশন সংগ্রহ করা হয়েছে এলাকার নম্বর, এলাকার নাম, শতাংশের হিসেবে অগ্রগতি
questCompleted গেম লুপ সম্পূর্ণ করা N/A কোয়েস্টের নাম
weaponUnlocked ইন-গেম মোমেন্ট N/A অস্ত্রের নাম, অস্ত্রের লেভেল
chestUnlocked ইন-গেম মোমেন্ট উন্নত আকরিক সংগ্রহ করা হয়েছে
ডেকোরেটিভ মেটা সহ ক্যাজুয়াল পাজল puzzleCompleted গেম লুপ সম্পূর্ণ করা / প্রগ্রেশন ইভেন্ট সম্পূর্ণ করা কয়েন সংগ্রহ করা হয়েছে, বুস্টার সংগ্রহ করা হয়েছে মুভের সংখ্যা, বাটলারের গিফ্ট ব্যবহার করা হয়েছে?, লেভেলের ধরন, লেভেল নম্বর, ব্যবহৃত কালার বুস্টার, ব্যবহৃত ডিনামাইট
cardsCollected ইন-গেম মোমেন্ট ১ স্টার কার্ড, ২ স্টার কার্ড, ৩ স্টার কার্ড, মোট কার্ড অ্যালবাম নম্বর, অ্যালবামের নাম
আর্কেড রেসিং raceCompleted গেম লুপ সম্পূর্ণ করা র‍্যাঙ্ক, NOS ব্যবহার করা হয়েছে, race_time Type of race, rating, car_used
carUpgraded ইন-গেম মোমেন্ট গাড়ির যে বৈশিষ্ট্য আপগ্রেড করা হয়েছে, পুরনো লেভেল / ভ্যালু, নতুন লেভেল / ভ্যালু গাড়ির ধরন, বর্তমান গ্যারেজ লেভেল
থার্ড পার্সন ব্যাটেল রয়্যাল শুটার matchCompleted গেম লুপ সম্পূর্ণ করা এলিমিনেশন, হেডশট, অনার ভ্যালু ম্যাচের ধরন, বেঁচে থাকার সময়
eSports ম্যানেজমেন্ট সিমুলেশন matchCompleted গেম লুপ সম্পূর্ণ করা ফলাফল, গোল করেছে, গোল বিপক্ষ টিমের নাম, যে টিম খেলছে তার নাম
trainingCompleted ইন-গেম মোমেন্ট Drills done, teamplay_form_attack, teamplay_form_defense, teamplay_form_possession, teamplay_form_condition

progressUpdate ইভেন্ট

আপনার গেমে প্রাথমিক প্রগ্রেশন মেকানিক থাকলে, প্লেয়ারের বর্তমান প্রগ্রেস পাঠাতে এই ইভেন্ট ব্যবহার করুন। ইভেন্টে একটি আগে থেকে নির্ধারিত প্রপার্টি আছে, যাকে INT বা STRING ধরনের "currentProgress" বলা হয়। এই প্রপার্টি ব্যবহার করে আপনাকে প্রাথমিক প্রগ্রেশন মেকানিক্সে প্লেয়ারের প্রগ্রেসের বর্তমান ভ্যালু পাঠাতে হবে। আপনি এই ইভেন্ট ব্যবহার করলে, আগে থেকে নির্ধারিত প্রপার্টি "currentProgress" অবশ্যই উপস্থিত থাকতে হবে এবং এই প্রপার্টি ব্যবহার করে একটি প্রগ্রেস স্ট্যাটাস সংজ্ঞায়িত করতে হবে।

আপনি এই ইভেন্টের অন্যান্য প্রপার্টি হিসেবে আপনার গেমে অন্যান্য প্রগ্রেশন সিস্টেমের জন্য বর্তমান ভ্যালু পাঠাতে পারেন, যেমন lifetime highest score বা current coin balance।

যেহেতু প্লেয়াররা গেমের মধ্যে বর্তমান প্রোগ্রেস অনুযায়ী তাদের প্রোফাইল তুলনা করতে পারেন, তাই প্রথম ইন্টিগ্রেশনের পরে বর্তমান প্রোগ্রেস ভ্যালু পেতে যাতে দেরি না হয়, সেটি নিশ্চিত করা গুরুত্বপূর্ণ। প্লেয়ারদের কাছে বর্তমান প্রগ্রেস সঠিকভাবে তুলে ধরতে, প্রতিটি গেম সেশন শুরু হওয়ার সময় এবং বর্তমান প্রগ্রেস আপডেট হওয়ার সময় আপনাকে progressUpdate ইভেন্ট পাঠাতে হবে।

উদাহরণ
গেমের ধরন `progressUpdate` ইভেন্টের currentProgress প্রপার্টি
লিনিয়ার প্রগ্রেশন পাজল গেম বর্তমান চ্যাপ্টার নম্বর বা লেভেল নম্বর
3d এন্ডলেস রানার উচ্চ স্কোর, বর্তমান বুস্টার ব্যালেন্স
ক্যাজুয়াল পাজল বর্তমান লেভেল নম্বর, প্রথমবার চেষ্টা করে জেতার সংখ্যা, সম্পূর্ণ করা এলাকার সংখ্যা, সম্পূর্ণ করা সংগ্রহের সংখ্যা
আর্কেড রেসিং বর্তমান লেভেল নম্বর, কারেন্সি ব্যালেন্স
ওপেন ওয়ার্ল্ড অ্যাকশন RPG বর্তমান ক্যারেক্টার র‍্যাঙ্ক, বর্তমান লেভেল নম্বর
থার্ড পার্সন শুটার বর্তমান লেভেল নম্বর
ই-স্পোর্টস সিমুলেশন ম্যানেজার লেভেল নম্বর, ক্লাব লেভেল নম্বর

আপনার পরিসংখ্যান কনফিগার করুন

আপনাকে প্রতিটি পরিসংখ্যানের জন্য কম্পিউটেশন লজিক এবং ডিসপ্লে তথ্য সংজ্ঞায়িত করে আপনার পুনরাবৃত্তিমূলক এবং অগ্রগতি পরিসংখ্যান কনফিগার করতে হবে। বিভিন্ন গেমের ধরন থেকে পুনরাবৃত্তিমূলক পরিসংখ্যানের উদাহরণ নিচে অন্তর্ভুক্ত করা হয়েছে। পুনরাবৃত্তিমূলক পরিসংখ্যান সাধারণত এমন পরিসংখ্যান যা খুব কম (৩-৪) গেম সেশন জুড়ে যেকোনও প্লেয়ারের জন্য বারবার আপডেট হয় এবং মূল গেম লুপের সাথে যুক্ত থাকে।

SUM, COUNT বা MAX কখন ব্যবহার করতে হবে তা জানতে, সঠিক অ্যাগ্রিগেশন টাইপ বেছে নিন দেখুন।

গেমের নাম গেমের পরিসংখ্যানের ডিসপ্লে নাম ইভেন্ট প্রপার্টি হিসাব করার লজিক [এগ্রিগেশন] ফিল্টার
3D এন্ডলেস রানার রান সম্পূর্ণ হয়েছে run_completed ইভেন্টের যেকোনও প্রপার্টি সংখ্যা সব ভ্যালু [কোনও ফিল্টার নেই]
কয়েন সংগ্রহ করা হয়েছে run_completed ইভেন্টের coins_collected প্রপার্টি সমষ্টি N/A
সংগ্রহ করা কী run_completed ইভেন্টের keys_collected প্রপার্টি সমষ্টি N/A
সর্বোচ্চ রান স্কোর run_completed ইভেন্টের স্কোর প্রপার্টি সর্বাধিক N/A
বেশি কয়েন রান সম্পূর্ণ হয়েছে run_completed ইভেন্টের coins_collected প্রপার্টি সংখ্যা ভ্যালু > ৫০০০
লিনিয়ার প্রগ্রেশন পাজেল গেম চ্যাপ্টার সম্পূর্ণ হয়েছে chapter_completed ইভেন্টের যেকোনও প্রপার্টি সংখ্যা সব ভ্যালু [কোনও ফিল্টার নেই]
স্ক্রিন সম্পূর্ণ হয়েছে ইভেন্ট screen_completed-এর যেকোনও প্রপার্টি সংখ্যা সব ভ্যালু [কোনও ফিল্টার নেই]
প্রথম চেষ্টাতেই সম্পূর্ণ করা চ্যাপ্টার chapter_completed ইভেন্টের num_try প্রপার্টি সংখ্যা Num_try = 1
প্রথম চেষ্টাতেই স্ক্রিন সম্পূর্ণ হয়েছে screen_completed ইভেন্টের num_try প্রপার্টি সংখ্যা Num_try = 1
ওপেন ওয়ার্ল্ড অ্যাকশন RPG কোয়েস্ট সম্পূর্ণ হয়েছে quest_completed ইভেন্টের যেকোনও প্রপার্টি সংখ্যা সব ভ্যালু [কোনও ফিল্টার নেই]
এক্সপ্লোর করা এলাকা area_exploration_progress ইভেন্টের perc_progress প্রপার্টি সংখ্যা ভ্যালু = ১০০
Swords আনলক করা হয়েছে weapon_unlocked ইভেন্টের Weapon_type প্রপার্টি সংখ্যা "Value = "sword""
পরাস্ত করা শত্রুর সংখ্যা area_exploration_progress ইভেন্টের Enemies_defeated প্রপার্টি সমষ্টি N/A
হেল্থ পোশন সংগ্রহ করা হয়েছে Enhancement_ores property of the event chest_unlocked সমষ্টি N/A
ক্যাজুয়াল পাজল লেভেল সম্পূর্ণ হয়েছে level_completed ইভেন্টের যেকোনও প্রপার্টি সংখ্যা সব ভ্যালু [কোনও ফিল্টার নেই]
প্রথম চেষ্টাতেই সম্পূর্ণ করা লেভেল level_completed ইভেন্টের num_try প্রপার্টি সংখ্যা ভ্যালু = ১
কালার বুস্টার ব্যবহার করা হয়েছে level_completed ইভেন্টের color_booster_used প্রপার্টি সমষ্টি N/A
বোমা বুস্টার ব্যবহার করা হয়েছে level_completed ইভেন্টের Bomb_booster_used প্রপার্টি সমষ্টি N/A
কার্ড সংগ্রহ করা হয়েছে cards_collected ইভেন্টের total_cards প্রপার্টি সমষ্টি N/A
আর্কেড রেসিং দৌড়ে জিতেছেন race_completed ইভেন্টের র‍্যাঙ্ক প্রপার্টি সংখ্যা ভ্যালু = ১
দ্রুততম রেস race_completed ইভেন্টের race_time প্রপার্টি ন্যূনতম N/A
NOS ব্যবহার করা হয় race_completed ইভেন্টের NOS_used প্রপার্টি সমষ্টি N/A
Mustang-এর সাথে রেস শেষ হয়েছে race_completed ইভেন্টের car_type প্রপার্টি সংখ্যা "Mustang" = ভ্যালু
গাড়ি আপগ্রেড করা car_upgraded ইভেন্টের যেকোনও প্রপার্টি সংখ্যা সব ভ্যালু [কোনও ফিল্টার নেই]
থার্ড পার্সন ব্যাটেল রয়্যাল শুটার ম্যাচ জিতেছে match_completed ইভেন্টের যেকোনও প্রপার্টি সংখ্যা Match_result = TRUE
মোট এলিমিনেশন ইভেন্ট match_completed-এর এলিমিনেশন প্রপার্টি সমষ্টি N/A
সবচেয়ে বেশি সময় বেঁচে থাকা Survival_time property of the event match_completed সর্বাধিক N/A
মোট হেডশট ইভেন্ট match_completed-এর হেডশট প্রপার্টি সমষ্টি N/A
মোট স্কিল ভ্যালু match_completed ইভেন্টের skill_value প্রপার্টি সমষ্টি N/A
eSports ম্যানেজমেন্ট সিমুলেশন ম্যাচ জিতেছে ইভেন্ট match_completed-এর ফলাফল প্রপার্টি সংখ্যা Result = "Won"
মোট গোল করেছে ইভেন্ট match_completed-এর Goals_scored প্রপার্টি সমষ্টি N/A
কঠিন ম্যাচ জিতেছে hard_match_completed ইভেন্টের ফলাফল প্রপার্টি সংখ্যা Result = "Won"
সবচেয়ে বেশি গোলের ব্যবধানে জয় match_completed ইভেন্টের Goal_difference প্রপার্টি সর্বাধিক Result = "Won"
মোট ট্রেনিং ড্রিল training_completed ইভেন্টের Drills_done প্রপার্টি সমষ্টি N/A
সম্পূর্ণ করা মোট ট্রেনিংয়ের সংখ্যা training_completed ইভেন্টের যেকোনও প্রপার্টি সংখ্যা N/A

ইন্টিগ্রেশনের বিবরণ

এই বিভাগে দেখানো হয়েছে যে কীভাবে ইভেন্ট তৈরি করতে হয় এবং ক্লায়েন্ট সাইড ও সার্ভার সাইড ইন্টিগ্রেশন, উভয় ক্ষেত্রেই তা পাঠাতে হয়।

আপনাকে কখন ডেটা পাঠাতে হবে

প্লেয়ার ইভেন্ট গেম লুপ সম্পূর্ণ করা বা গেমের মধ্যে নির্দিষ্ট মুহূর্তের সাথে সম্পর্কিত ইন-গেম অ্যাকশনকে বোঝায়। এইসব ইভেন্ট ঘটার সাথে সাথেই জমা দিন। যেমন, লুপ সম্পূর্ণ হওয়ার সাথে সাথেই গেম লুপ সম্পূর্ণ হওয়ার ইভেন্ট জমা দিন।

progressUpdate ইভেন্ট প্লেয়ারের বর্তমান প্রগ্রেস লেভেল দেখায়। নিম্নলিখিত পরিস্থিতিতে এই ইভেন্ট ব্যবহার করে প্রোগ্রেস স্ট্যাটাস সংক্রান্ত ডেটা পাঠানো উচিত:

  1. বর্তমান অগ্রগতিতে কোনও আপডেট হলে, লেটেস্ট ভ্যালু অবিলম্বে পাঠান
  2. যখনই কোনও প্লেয়ার গেম চালু করেন, যাতে এই স্ট্যাটাস প্লেয়ারের জন্য সবসময় উপলভ্য থাকে।

ইন্টিগ্রেশন পাথ

ইন্টিগ্রেশনের দুটি পথ আছে - ক্লায়েন্ট এবং সার্ভার থেকে সার্ভার।

সার্ভার থেকে সার্ভার ইন্টিগ্রেশন

একটি পাবলিক API এন্ডপয়েন্ট আপনাকে নিম্নলিখিত কনফিগারেশন ব্যবহার করে অনুরোধের পেলোডে ইভেন্ট পাঠাতে দেয়:

HTTP অনুরোধ

POST https://games.googleapis.com/games/v1/players/{playerId}/gameStats: batchRecordEvents

পাথ প্যারামিটার
প্যারামিটার ডেটার ধরন বর্ণনা
playerId স্ট্রিং প্লেয়ারের PGS আইডি।

অনুমোদন ও যাচাইকরণ

সার্ভার-টু-সার্ভার API কল OAuth 2.0 ব্যবহার করে স্ট্যান্ডার্ড Play Games Services-এ সার্ভার-সাইড অ্যাক্সেস নির্দেশিকা অনুসরণ করে। অনুরোধে অবশ্যই https://www.googleapis.com/auth/games স্কোপের সাথে অনুমোদিত একটি বিয়ারার টোকেন অন্তর্ভুক্ত থাকতে হবে।

ইভেন্ট: অনুরোধের প্রধান অংশ

ব্যাকএন্ড API-এর কঠোর স্ট্রাকচারাল যাচাইকরণ সীমা আছে:

  • ব্যাচের সাইজ: প্রতিটি BatchRecordEventsRequest-এ সর্বাধিক ৩০টি ইভেন্ট।
  • প্রপার্টির সংখ্যা: প্রতিটি PlayerGameEvent-এ সর্বাধিক ২৫টি কাস্টম প্রপার্টি।
  • দৈর্ঘ্যের সীমা: ইভেন্টের নাম (সর্বাধিক ১০০টি অক্ষর), প্রপার্টি কী (সর্বাধিক ১০০টি অক্ষর) এবং প্রপার্টি স্ট্রিং ভ্যালু (সর্বাধিক ১০২৪টি অক্ষর)।
  • ইভেন্ট আইডি: অবশ্যই একটি সঠিক ৩৬-অক্ষরের UUID স্ট্রিং হতে হবে।
  • আবার চেষ্টা করা ও ক্যাশিং: API কাজ না করলে, স্থানীয়ভাবে ক্যাশিং বা অত্যধিক ইভেন্ট জমা করা এড়িয়ে চলুন, কারণ ৩০টির বেশি ইভেন্ট ব্যাচ আবার চেষ্টা করলে তা বাতিল করা হবে। ব্যাচ সাইজের সীমা মেনে চলার জন্য সবসময় চাঙ্ক রিট্রাই করুন।

BatchRecordEventsRequest

BatchRecordEventsRequest দেখুন।

{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ]
}

PlayerGameEvent

{
  "eventId": string,
  "eventName": string,
  "eventProperties": {
    // keys (e.g., "matchId", "score")
    "": {
       object (PropertyValue)
    }
  },
  "eventTime": string // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z").
}

PropertyValue

// ONE of the following fields will be present:
{
// 64-bit integer formatted as a string to prevent data loss
"intValue": "string",
// Double-precision floating point number.
"doubleValue": number,
// Standard UTF-8 text string.
"stringValue": "string",
// Boolean value (true or false).
"boolValue": boolean,
// Duration in seconds suffixed with 's' (e.g., "240s" or "3.5s").
"durationValue": "string"
}

progressUpdate ইভেন্ট: অনুরোধের প্রধান অংশ

BatchRecordEventsRequest

{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ]
}

PlayerGameEvent - progressUpdate

{
  "eventId": string,
  "eventName": "progressUpdate",
  "eventProperties": {
    "": {
       object (PropertyValue)
// Must have at least one property "currentProgress"  of  type  INT  or  STRING
    }
  },
  "eventTime": string // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z")
}

রেসপন্স বডি

সফল হলে, খালি JSON অবজেক্ট সহ HTTP 200 OK স্ট্যাটাস রিটার্ন করে।

অনুরোধের প্রধান অংশের উদাহরণ

ইভেন্ট: PlayerGameEvent

{
  "packageName": "com.example.awesomegame",//Your package name
  "requestTime": "2026-05-09T00:44:44Z",
  "events": [
    {
      "eventId": "123e1234-e29b-41d4-a123-446655440000", // UUID for deduplication and idempotency
      "eventName": "matchCompleted",
      "eventTime": "2026-05-09T01:44:44Z", // RFC 3339 formatted timestamp string (e.g., "2026-05-09T01:44:44Z").
      "eventProperties": {
        "matchId": {
          "stringValue": "Match_A"
        },
        "gameMode": {
          "stringValue": "Battle_B"
        },
        "locationId": {
          "stringValue": "Location_XYZ"
        },
        "playerElimination": {
          "intValue": 2
        },
        "isWinner": {
          "boolValue": true
        }
      }
    }
  ]
}

progressUpdate ইভেন্ট

{
  "packageName": "com.example.awesomegame",//Your package name
  "requestTime": "2026-05-09T00:44:44Z",
  "events": [
    {
      "eventId": "123e1234-e29b-41d4-a123-446655440000", // UUID
      "eventName": "progressUpdate",
      "eventTime": "2026-05-09T01:44:44Z", // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z").
      "eventProperties": {
        "currentProgress": {
          "intValue": 52
        },
//Add more properties as per your requirement
      }
    }
  ]
}

ক্লায়েন্ট প্রয়োগ

আপনার প্ল্যাটফর্মের জন্য গেমের পরিসংখ্যান ক্লায়েন্ট ইমপ্লিমেন্টেশন সম্পর্কে জানতে, নিম্নলিখিত রিসোর্স দেখুন:

মাইলস্টোন

তারিখ গেমের পরিসংখ্যান API ইন্টিগ্রেশন গেমের পরিসংখ্যান কনফিগারেশন
সেপ্টেম্বর ২০২৬ N/A প্লেয়াররা তাদের গেমার প্রোফাইলে গেমের পরিসংখ্যান দেখতে শুরু করেন।