গেম স্ট্যাটস হলো আপনার গেম সম্পর্কিত সামগ্রিক পরিসংখ্যান, যা খেলোয়াড়রা তাদের গেমার প্রোফাইলে দেখতে পারে। এই পরিসংখ্যান খেলোয়াড়দেরকে তাদের আজীবনের অগ্রগতি ট্র্যাক করতে, সেরা মুহূর্তগুলো দেখতে এবং অন্যান্য খেলোয়াড়দের সাথে তুলনা করতে সাহায্য করে। এছাড়াও, ভবিষ্যতে এই পরিসংখ্যানগুলোই গুগল প্লে-এর কোয়েস্ট, সোশ্যাল চ্যালেঞ্জ এবং আরও অনেক ফিচারকে শক্তি জোগাবে।
- কোনো ক্রয়ের (যেমন, জেমস কেনা) প্রয়োজন হবে না, অর্থাৎ কোনো IAP ক্রয়ের ফলে এগুলি আপডেট হবে না।
- বিজ্ঞাপন দেখার প্রয়োজন হবে না, অর্থাৎ বিজ্ঞাপন দেখার ফলে সেগুলোর আপডেট হওয়া উচিত নয়।
- গেমটির সাধারণ ব্যবহার করা যাবে না (যেমন, গেমটি খোলা; সেটিংস ব্যবহার করা)।
- প্লে পলিসি অনুযায়ী সংজ্ঞায়িত ব্যক্তিগত এবং সংবেদনশীল ব্যবহারকারীর ডেটা, যেমন ইউজার আইডি, পাসওয়ার্ড, সঠিক অবস্থান বা স্বাস্থ্য সম্পর্কিত ডেটা, অথবা কোনো আপত্তিকর, অশ্লীল, যৌনতাপূর্ণ, হিংসাত্মক বা ঘৃণামূলক বিষয়বস্তু অন্তর্ভুক্ত করা যাবে না।
- সকল ব্যবহারকারীর জন্য উপলব্ধ হতে হবে (উদাহরণস্বরূপ, এটি কোনো দল-ভিত্তিক কাজ হবে না, বা শুধুমাত্র একটি নির্দিষ্ট স্তরের ব্যবহারকারীদের জন্য উপলব্ধ হবে না, বা সীমিত সময়ের লাইভঅপস-এ সীমাবদ্ধ থাকবে না ইত্যাদি)।
একীকরণ পদক্ষেপ
পুনরাবৃত্তিমূলক পরিসংখ্যানের জন্য নমনীয় প্লেয়ার ইভেন্ট হিসেবে এবং অগ্রগতির পরিসংখ্যানের জন্য একটি পূর্বনির্ধারিত ইভেন্ট ' progressUpdate ব্যবহার করে গেম স্ট্যাটস এপিআই (Game Stats API) দিয়ে ডেটা পাঠান। এছাড়াও, গেমার প্রোফাইলে যে পরিসংখ্যানগুলো প্রদর্শিত হবে, সেগুলোর গণনার লজিক এবং প্রদর্শনের তথ্যও আপনাকে কনফিগার করতে হবে।
প্লেয়ার ইভেন্টগুলো হলো গেমের স্বতন্ত্র মুহূর্ত, গেম লুপের সমাপ্তি, বা অগ্রগতির মাইলফলক।
একটি প্লেয়ার ইভেন্টকে নিম্নরূপে সংজ্ঞায়িত ও মডেল করা হয়:
- খেলোয়াড়ের নেওয়া কোনো নির্দিষ্ট কাজকে একটি ইভেন্ট হিসেবে গণ্য করা হয়, যেমন—একটি ম্যাচ সম্পূর্ণ করা, একটি রান শেষ করা, একটি চেস্ট আনলক করা, বা কোনো এলাকায় অগ্রগতি সংরক্ষণ করা।
- প্রতিটি ক্রিয়ার ফলে নির্দিষ্ট কিছু ফলাফল পাওয়া যায় অথবা সেই ক্রিয়াটির কিছু নির্দিষ্ট বৈশিষ্ট্য থাকে। এগুলোকে ইভেন্টের বৈশিষ্ট্য হিসেবে মডেল করা হয়, যা ইভেন্টটি এবং এর নির্দিষ্ট ফলাফলগুলো সম্পর্কে প্রেক্ষাপট প্রদান করে (উদাহরণস্বরূপ, ম্যাচের ধরন, সেই রান চলাকালীন সংগৃহীত কয়েন, ম্যাচের ফলাফল, বা হেডশটের সংখ্যা)।
একত্রীকরণ প্রক্রিয়াটিতে নিম্নলিখিত ধাপগুলো অন্তর্ভুক্ত রয়েছে:
- র ডেটা স্কিমা ঘোষণা করুন: প্লে কনসোলে একটি CSV আপলোড ব্যবহার করে প্লেয়ার ইভেন্টগুলি সংজ্ঞায়িত করুন। ইভেন্ট তৈরি করুন দেখুন।
- গেম স্ট্যাটস এপিআই-এর সাথে ইন্টিগ্রেট করুন: ফ্লেক্সিবল প্লেয়ার ইভেন্ট এবং
progressUpdateইভেন্টের জন্য ঘোষিত ফরম্যাটে প্লেয়ারের মূল ডেটা পাঠান।- ক্লায়েন্ট সাইড বা সার্ভার সাইড ইন্টিগ্রেশন ব্যবহার করে সমস্ত সংজ্ঞায়িত ইভেন্ট পাঠান। আরও তথ্যের জন্য, প্লেয়ার ইভেন্ট এবং
progressUpdateইভেন্টের উদাহরণ দেখুন।
- ক্লায়েন্ট সাইড বা সার্ভার সাইড ইন্টিগ্রেশন ব্যবহার করে সমস্ত সংজ্ঞায়িত ইভেন্ট পাঠান। আরও তথ্যের জন্য, প্লেয়ার ইভেন্ট এবং
- একটি ZIP ফাইল আপলোড করুন: ৫টি পুনরাবৃত্তিমূলক পরিসংখ্যান এবং ১টি প্লেয়ার অগ্রগতি স্তর নির্ধারণকারী ৩টি CSV ফাইল এবং সমস্ত আইকন ইমেজ ফাইল প্রদান করুন। আরও তথ্যের জন্য, ZIP ফাইল নির্দেশিকা দেখুন। নিম্নলিখিত বিবরণগুলো অন্তর্ভুক্ত করুন:
- পুনরাবৃত্তিমূলক পরিসংখ্যানের জন্য CSV ফাইল:
- পরিসংখ্যানটির জন্য একটি অনন্য আইডি।
- পরিসংখ্যান গণনার জন্য ব্যবহৃত ইভেন্ট লেবেলটি নির্দিষ্ট করুন। আপনি এখানে
progressUpdateইভেন্ট লেবেলটি ব্যবহার করতে পারবেন না।- পরিসংখ্যান গণনার জন্য ব্যবহৃত প্রপার্টি লেবেলটি নির্দিষ্ট করুন। এটি অবশ্যই নির্দিষ্ট ইভেন্টের একটি প্রপার্টি হতে হবে।
- নির্বাচিত প্রপার্টি লেবেলে পরিসংখ্যানটি কীভাবে গণনা করা হবে তা নির্ধারণ করতে অ্যাগ্রিগেশন টাইপ (SUM, MAX, MIN, বা COUNT) নির্দিষ্ট করুন।
- শুধুমাত্র শর্ত পূরণ হলেই লজিকটি গণনা করার জন্য একটি ঐচ্ছিক ফিল্টার শর্ত নির্দিষ্ট করুন। প্রপার্টি এবং ইভেন্ট লেবেল, অপারেটর (=, <, <=, >=, বা >), এবং থ্রেশহোল্ড মান নির্ধারণ করুন।
- পরিসংখ্যানটি প্রতিযোগিতামূলক বৈশিষ্ট্যের জন্য ব্যবহার করা যাবে কিনা তা নির্দেশ করতে একটি বুলিয়ান ফ্ল্যাগ অন্তর্ভুক্ত করুন।
- যদি ফিচারটি প্রতিযোগিতামূলক কার্যক্রমে ব্যবহার করা যায়, তাহলে একজন প্রকৃত খেলোয়াড়ের জন্য সর্বনিম্ন ও সর্বোচ্চ ঘণ্টাভিত্তিক সীমা নির্ধারণ করতে হবে। লিগ এবং সোশ্যাল চ্যালেঞ্জের মতো কার্যক্রমে অংশগ্রহণের সময় কারা অপব্যবহার করছে, তা শনাক্ত করতে এটি আমাদের কাজে লাগবে।
- খেলোয়াড়রা যে পরিসংখ্যানটি দেখতে পায়, তার জন্য একটি অনন্য প্রদর্শন নাম দিন।
- স্ট্যাটটি বর্ণনা করে একটি স্বতন্ত্র টেক্সট দিন। এই বর্ণনায় খেলোয়াড় কীভাবে এটি অর্জন করে তার বিশদ বিবরণ থাকবে এবং এটি খেলোয়াড়দের গেমার প্রোফাইল UI-তে দেখানো হবে।
- CSV ফাইলে আইকনের সঠিক ফাইলের নাম লিখে পরিসংখ্যানটির প্রতিনিধিত্বকারী একটি অনন্য আইকন প্রদান করুন।
- খেলোয়াড়ের জন্য ক্রমবর্ধমান নাকি হ্রাসমান মান ভালো, তা একটি ঐচ্ছিক ইনপুটের মাধ্যমে জানান। এই ইনপুটটি খেলোয়াড়ের মুভমেন্ট উদযাপনের জন্য ব্যবহৃত হবে।
- পরিসংখ্যানটির জন্য একটি ঐচ্ছিক পরিমাপের একক প্রদান করুন, যেমন কিলোমিটার, মাইল এবং সেকেন্ড।
- খেলোয়াড়ের অগ্রগতি পরিসংখ্যানের জন্য CSV ফাইল:
- খেলোয়াড়দের দেখা অগ্রগতির জন্য একটি অনন্য প্রদর্শন নাম প্রদান করুন।
- পরিসংখ্যানটির প্রতিনিধিত্ব করার জন্য একটি অনন্য আইকন প্রদান করুন।
- অগ্রগতি পরিসংখ্যানটির একটি বিবরণ দিন।
- খেলোয়াড়ের জন্য ক্রমবর্ধমান নাকি হ্রাসমান মান উপযুক্ত, তা জানানোর জন্য একটি ঐচ্ছিক ইনপুট প্রদান করুন। এই ইনপুটটি শুধুমাত্র তখনই খেলোয়াড়ের চাল উদযাপনের জন্য ব্যবহৃত হবে, যখন
currentProgressপ্রপার্টির টাইপ হবে INT। - পরিসংখ্যানটির জন্য একটি ঐচ্ছিক পরিমাপের একক প্রদান করুন, যেমন কিলোমিটার, মাইল, সেকেন্ড।
- স্থানীয়করণের জন্য CSV ফাইল: সমস্ত পরিসংখ্যানের জন্য স্থানীয় ভাষায় প্রদর্শিত নাম প্রদান করুন।
- প্রতিটি স্থানীয়করণের জন্য একটি করে সারি যোগ করুন।
- যে পরিসংখ্যানের জন্য স্থানীয়করণ যোগ করা হচ্ছে, সেটিকে অনন্যভাবে শনাক্ত করতে পূর্ববর্তী CSV-তে যোগ করা পরিসংখ্যান প্রদর্শনের নামের স্ট্রিংটি ব্যবহার করুন।
- ভাষা কোডের তালিকা থেকে ভাষাটি নির্দিষ্ট করুন।
- নির্দিষ্ট ভাষায় প্রদর্শিত নামের স্থানীয়করণ যোগ করুন।
- নির্দিষ্ট ভাষায় পরিসংখ্যানের বিবরণে স্থানীয়করণ যোগ করুন।
- পুনরাবৃত্তিমূলক পরিসংখ্যানের জন্য CSV ফাইল:
পরিকল্পনাটি তৈরি করুন
আপনি গেম স্ট্যাটস এপিআই ব্যবহার করে দুই ধরনের ডেটা পাঠাতে পারেন: প্লেয়ার ইভেন্ট এবং প্লেয়ারের অগ্রগতি পরিসংখ্যানের জন্য একটি পূর্বনির্ধারিত ইভেন্ট।
নিম্নলিখিত উদাহরণগুলি দেখায় যে বিভিন্ন ধরণের গেমে প্লেয়ার ইভেন্টগুলি কেমন দেখায়:
খেলোয়াড়দের ইভেন্ট
প্লেয়ার ইভেন্টগুলিকে গেমের স্বতন্ত্র মুহূর্ত, গেম লুপের সমাপ্তি, বা অগ্রগতির মাইলফলক দ্বারা সংজ্ঞায়িত করা হয়।
- ইভেন্টগুলিকে গেমের নির্দিষ্ট মুহূর্ত, গেম লুপের সমাপ্তি, বা অগ্রগতির মাইলফলক হিসাবে সংজ্ঞায়িত করুন :
- গেম লুপের সমাপ্তি, যেমন একটি সম্পূর্ণ ম্যাচ বা রান।
- অগ্রগতির মাইলফলক, যেমন সংরক্ষিত এলাকা অনুসন্ধানের অগ্রগতি বা একটি সম্পূর্ণ স্তর।
- যেহেতু পুনরাবৃত্তিমূলক পরিসংখ্যানগুলো একজন খেলোয়াড়ের দ্বারা বারবার করা যায় এমন কাজগুলোকে সঠিকভাবে উপস্থাপন করে, তাই সংজ্ঞায়িত ঘটনাগুলোকে মূল গেমপ্লের সাথে যুক্ত করা উচিত।
- ইভেন্ট এবং এর ফলাফল সম্পর্কে প্রাসঙ্গিক তথ্য দেওয়ার জন্য প্রপার্টি যোগ করুন , যেমন লেভেল নম্বর, ম্যাচের ধরণ, অস্ত্রের ধরণ, অস্ত্রের সংখ্যা, হেডশট, সংগৃহীত কয়েন, ম্যাচের ফলাফল, ল্যাপ টাইম বা গাড়ির ধরণ।
- গেমপ্লে সেশনের মধ্যে ইভেন্টগুলো ঘটার সাথে সাথেই পাঠিয়ে দিন । উদাহরণস্বরূপ, একটি গেম লুপ সম্পূর্ণ হওয়ার সাথে সাথেই লুপ সমাপ্তির ইভেন্টটি পাঠিয়ে দিন।
উদাহরণ
| খেলার ধরণ | ইভেন্ট লেবেল | গেমের মধ্যবর্তী মুহূর্ত / অগ্রগতিমূলক ঘটনা সম্পন্নকরণ / গেম লুপ সম্পন্নকরণ | ফলাফল | বৈশিষ্ট্য |
|---|---|---|---|---|
| রৈখিক অগ্রগতি ইন্ডি পাজল গেম | অধ্যায়_সম্পূর্ণ | অগ্রগতি ইভেন্টের সমাপ্তি | প্রযোজ্য নয় | অধ্যায় সংখ্যা, অধ্যায়ের নাম, চেষ্টার সংখ্যা, স্ক্রিনের সংখ্যা, চালের সংখ্যা, অধ্যায়ের বিষয়বস্তু |
| স্ক্রিন_সম্পূর্ণ | অগ্রগতি ইভেন্টের সমাপ্তি | অধ্যায় নম্বর, অধ্যায়ের নাম, চেষ্টার সংখ্যা, চালের সংখ্যা, অধ্যায়ের বিষয়বস্তু | ||
| 3D এন্ডলেস রানার | রান সম্পন্ন হয়েছে | গেম লুপ সমাপ্তি | সংগৃহীত মুদ্রা, স্কোর | দৌড়ের সময়কাল, জেটপ্যাক থেকে সংগৃহীত মুদ্রা, দৌড়ের শুরুতে ব্যবহৃত বুস্টার, ব্যবহৃত সার্ফবোর্ড, ব্যবহৃত চুম্বক, ব্যবহৃত জাম্পার, ব্যবহৃত জেটপ্যাক |
| ওপেন ওয়ার্ল্ড অ্যাকশন আরপিজি | এলাকা অন্বেষণ অগ্রগতি | অগ্রগতি ইভেন্টের সমাপ্তি | শত্রুরা পরাজিত, ঔষধ সংগ্রহ করা হয়েছে | এলাকা নম্বর, এলাকার নাম, শতকরা অগ্রগতি |
| অনুসন্ধান সম্পন্ন হয়েছে | গেম লুপ সমাপ্তি | প্রযোজ্য নয় | অনুসন্ধানের নাম | |
| অস্ত্র আনলক করা হয়েছে | খেলার মুহূর্ত | প্রযোজ্য নয় | অস্ত্রের নাম, অস্ত্রের স্তর | |
| বুক খোলা | খেলার মুহূর্ত | বর্ধিত আকরিক সংগ্রহ করা হয়েছে | ||
| আলংকারিক মেটা সহ সাধারণ ধাঁধা | ধাঁধাটি সম্পূর্ণ হয়েছে | গেম লুপ সমাপ্তি / অগ্রগতি ইভেন্ট সমাপ্তি | সংগৃহীত কয়েন, সংগৃহীত বুস্টার | চালের সংখ্যা, বাটলারের উপহার ব্যবহৃত হয়েছে কি?, লেভেলের ধরণ, লেভেল নম্বর, রঙিন বুস্টার ব্যবহৃত হয়েছে কি?, ডিনামাইট ব্যবহৃত হয়েছে কি? |
| কার্ড সংগ্রহ করা হয়েছে | খেলার মুহূর্ত | ১ স্টার কার্ড, ২ স্টার কার্ড, ৩ স্টার কার্ড, মোট কার্ড | অ্যালবাম নম্বর, অ্যালবামের নাম | |
| আর্কেড রেসিং | দৌড় সম্পন্ন হয়েছে | গেম লুপ সমাপ্তি | র্যাঙ্ক, ব্যবহৃত NOS, রেসের সময় | রেসের ধরণ, রেটিং, ব্যবহৃত গাড়ি |
| গাড়ি আপগ্রেড করা হয়েছে | খেলার মুহূর্ত | গাড়ির যে বৈশিষ্ট্যটি আপগ্রেড করা হয়েছে, পুরোনো স্তর / মান, নতুন স্তর / মান | গাড়ির ধরণ, বর্তমান গ্যারেজের স্তর | |
| তৃতীয় ব্যক্তি ব্যাটল রয়্যাল শুটার | ম্যাচ সম্পন্ন হয়েছে | গেম লুপ সমাপ্তি | এলিমিনেশন, হেডশট, অনার ভ্যালু | ম্যাচের ধরণ, টিকে থাকার সময় |
| ই-স্পোর্টস ম্যানেজমেন্ট সিমুলেশন | ম্যাচ সম্পন্ন হয়েছে | গেম লুপ সমাপ্তি | ফলাফল, গোল সংখ্যা, গোল | প্রতিপক্ষ দলের নাম, খেলার দলের নাম |
| প্রশিক্ষণ সম্পন্ন হয়েছে | খেলার মুহূর্ত | অনুশীলন সম্পন্ন, দলীয় খেলার ধরন আক্রমণ, দলীয় খেলার ধরন প্রতিরক্ষা, দলীয় খেলার ধরন বল দখল, দলীয় খেলার ধরন অবস্থা |
progressUpdate ইভেন্ট
আপনার গেমে যদি একটি প্রধান অগ্রগতি কৌশল থাকে, তাহলে প্লেয়ারের বর্তমান অগ্রগতি পাঠানোর জন্য এই ইভেন্টটি ব্যবহার করুন। এই ইভেন্টের “currentProgress” নামে একটি পূর্বনির্ধারিত প্রপার্টি আছে, যার টাইপ হলো INT বা STRING । এই প্রপার্টি ব্যবহার করে আপনাকে প্রধান অগ্রগতি কৌশলের প্লেয়ারের অগ্রগতির বর্তমান মান পাঠাতে হবে। আপনি যদি এই ইভেন্টটি ব্যবহার করেন, তাহলে "currentProgress" নামক পূর্বনির্ধারিত প্রপার্টিটি অবশ্যই উপস্থিত থাকতে হবে এবং এই প্রপার্টি ব্যবহার করে একটি অগ্রগতি পরিসংখ্যান সংজ্ঞায়িত করতে হবে।
এই ইভেন্টের অন্যান্য বৈশিষ্ট্য হিসেবে আপনি আপনার গেমের অন্যান্য অগ্রগতি সিস্টেমের বর্তমান মান, যেমন lifetime highest score বা current coin balance পাঠাতে পারেন।
যেহেতু খেলোয়াড়রা গেমের মধ্যে বর্তমান অগ্রগতির মাধ্যমে তাদের প্রোফাইল তুলনা করতে পারে, তাই প্রথম ইন্টিগ্রেশনের পর বর্তমান অগ্রগতির মান পেতে যেন কোনো বিলম্ব না হয়, তা নিশ্চিত করা গুরুত্বপূর্ণ। খেলোয়াড়দের কাছে সঠিক বর্তমান অগ্রগতি তুলে ধরার জন্য, প্রতিটি গেম সেশনের শুরুতে এবং যখনই বর্তমান অগ্রগতিতে কোনো আপডেট আসবে, তখন progressUpdate ইভেন্টটি পাঠানো উচিত।
উদাহরণ
| খেলার ধরণ | `progressUpdate` ইভেন্টের `currentProgress` প্রপার্টি |
|---|---|
| রৈখিক অগ্রগতি ধাঁধা খেলা | বর্তমান অধ্যায় নম্বর বা স্তর নম্বর |
| ৩ডি এন্ডলেস রানার | সর্বোচ্চ স্কোর, বর্তমান বুস্টারগুলির ভারসাম্য |
| ক্যাজুয়াল পাজল | বর্তমান লেভেল নম্বর, প্রথম চেষ্টায় জয়ের সংখ্যা, সম্পন্ন করা এলাকার সংখ্যা, সম্পন্ন করা সংগ্রহের সংখ্যা |
| আর্কেড রেসিং | বর্তমান লেভেল নম্বর, মুদ্রার ব্যালেন্স |
| ওপেন ওয়ার্ল্ড অ্যাকশন আরপিজি | বর্তমান চরিত্রের র্যাঙ্ক, বর্তমান লেভেল নম্বর |
| তৃতীয় ব্যক্তি শুটার | বর্তমান স্তর নম্বর |
| ইস্পোর্টস সিমুলেশন | ম্যানেজার লেভেল নম্বর, ক্লাব লেভেল নম্বর |
আপনার পরিসংখ্যান কনফিগার করুন
আপনাকে প্রতিটি স্ট্যাটের গণনার যুক্তি এবং প্রদর্শনের তথ্য নির্ধারণ করে আপনার পুনরাবৃত্তিমূলক এবং অগ্রগতিমূলক স্ট্যাটগুলো কনফিগার করতে হবে। বিভিন্ন গেম জনরা থেকে পুনরাবৃত্তিমূলক স্ট্যাটের উদাহরণ নিচে দেওয়া হলো। পুনরাবৃত্তিমূলক স্ট্যাট হলো সাধারণত সেইসব স্ট্যাট যা যেকোনো খেলোয়াড়ের জন্য খুব অল্প কয়েকটি (৩-৪) গেম সেশন জুড়ে বারবার আপডেট হয় এবং যা মূল গেম লুপের সাথে সম্পর্কিত।
| খেলার নাম | গেমের পরিসংখ্যান প্রদর্শনের নাম | ইভেন্টের সম্পত্তি | গণনার যুক্তি [সমষ্টি] | ফিল্টার |
|---|---|---|---|---|
| ৩ডি এন্ডলেস রানার | রান সম্পন্ন হয়েছে | run_completed ইভেন্টের যেকোনো প্রপার্টি | গণনা | সমস্ত মান [কোনো ফিল্টার নেই] |
| সংগৃহীত মুদ্রা | run_completed ইভেন্টের Coins_collected প্রপার্টি | যোগফল | না | |
| চাবি সংগ্রহ করা হয়েছে | run_completed ইভেন্টের Keys_collected প্রপার্টি | যোগফল | প্রযোজ্য নয় | |
| সর্বোচ্চ রান স্কোর | run_completed ইভেন্টের স্কোর বৈশিষ্ট্য | ম্যাক্স | প্রযোজ্য নয় | |
| উচ্চ মুদ্রা রান সম্পন্ন হয়েছে | run_completed ইভেন্টের Coins_collected প্রপার্টি | গণনা | মান > ৫০০০ | |
| রৈখিক অগ্রগতি ধাঁধা খেলা | অধ্যায় সম্পন্ন হয়েছে | chapter_completed ইভেন্টের যেকোনো বৈশিষ্ট্য | গণনা | সমস্ত মান [কোনো ফিল্টার নেই] |
| স্ক্রিনগুলি সম্পন্ন হয়েছে | screen_completed ইভেন্টের যেকোনো প্রপার্টি | গণনা | সমস্ত মান [কোনো ফিল্টার নেই] | |
| প্রথম চেষ্টাতেই অধ্যায়গুলো সম্পন্ন করা হয়েছে। | chapter_completed ইভেন্টের Num_try প্রপার্টি | গণনা | চেষ্টার সংখ্যা = ১ | |
| প্রথম চেষ্টাতেই স্ক্রিনগুলো সম্পন্ন হয়েছে। | screen_completed ইভেন্টের Num_try প্রপার্টি | গণনা | চেষ্টার সংখ্যা = ১ | |
| ওপেন ওয়ার্ল্ড অ্যাকশন আরপিজি | সম্পন্ন হওয়া অনুসন্ধানগুলি | quest_completed ইভেন্টের যেকোনো বৈশিষ্ট্য | গণনা | সমস্ত মান [কোনো ফিল্টার নেই] |
| অন্বেষণ করা এলাকা | area_exploration_progress ইভেন্টের Perc_progress প্রপার্টি | গণনা | মান = ১০০ | |
| তরবারি উন্মোচিত | weapon_unlocked ইভেন্টের Weapon_type প্রপার্টি | গণনা | মান = “তরবারি” | |
| শত্রুরা পরাজিত | area_exploration_progress ইভেন্টের Enemies_defeated প্রপার্টি। | যোগফল | প্রযোজ্য নয় | সংগৃহীত স্বাস্থ্য পানীয় | chest_unlocked ইভেন্টের Enhancement_ores প্রপার্টি | যোগফল | না |
| ক্যাজুয়াল পাজল | সম্পন্ন স্তর | ইভেন্ট level_completed-এর যেকোনো বৈশিষ্ট্য | গণনা | সমস্ত মান [কোনো ফিল্টার নেই] |
| প্রথম চেষ্টাতেই লেভেলগুলো সম্পন্ন করা হয়েছে। | level_completed ইভেন্টের Num_try প্রপার্টি | গণনা | মান = ১ | |
| ব্যবহৃত রঙ বুস্টার | level_completed ইভেন্টের Color_booster_used প্রপার্টি | যোগফল | না | |
| বোমা বুস্টার ব্যবহৃত | level_completed ইভেন্টের Bomb_booster_used প্রপার্টি | যোগফল | না | |
| সংগৃহীত কার্ড | `cards_collected` ইভেন্টের `Total_cards` প্রপার্টি | যোগফল | না | |
| আর্কেড রেসিং | দৌড়ে জয়ী | race_completed ইভেন্টের র্যাঙ্ক বৈশিষ্ট্য | গণনা | মান = ১ |
| দ্রুততম দৌড় | race_completed ইভেন্টের race_time প্রপার্টি | মিনিট | প্রযোজ্য নয় | |
| NOS ব্যবহৃত | race_completed ইভেন্টের NOS_used প্রপার্টি | যোগফল | না | |
| রেসগুলো মুস্ট্যাং দিয়ে শেষ হয়েছে | race_completed ইভেন্টের Car_type প্রপার্টি | গণনা | মান = “মুস্ট্যাং” | |
| গাড়ির আপগ্রেড | car_upgraded ইভেন্টের যেকোনো বৈশিষ্ট্য | গণনা | সমস্ত মান [কোনো ফিল্টার নেই] | |
| তৃতীয় ব্যক্তি ব্যাটল রয়্যাল শুটার | ম্যাচ জয় | match_completed ইভেন্টের যেকোনো বৈশিষ্ট্য | গণনা | ম্যাচের ফলাফল = সত্য |
| মোট নির্মূল | match_completed ইভেন্টের এলিমিনেশন বৈশিষ্ট্য | যোগফল | প্রযোজ্য নয় | |
| সর্বোচ্চ বেঁচে থাকার সময় | match_completed ইভেন্টের Survival_time প্রপার্টি | ম্যাক্স | প্রযোজ্য নয় | |
| মোট হেডশট | ম্যাচ_কমপ্লিটেড ইভেন্টের হেডশট প্রপার্টি | যোগফল | প্রযোজ্য নয় | |
| মোট দক্ষতার মান | match_completed ইভেন্টের skill_value প্রপার্টি | যোগফল | প্রযোজ্য নয় | |
| ই-স্পোর্টস ম্যানেজমেন্ট সিমুলেশন | ম্যাচ জয় | match_completed ইভেন্টের Result প্রপার্টি | গণনা | ফলাফল = “জয়ী” |
| মোট গোল সংখ্যা | match_completed ইভেন্টের Goals_scored প্রপার্টি | যোগফল | প্রযোজ্য নয় | |
| কঠিন ম্যাচ জিতেছি | hard_match_completed ইভেন্টের Result প্রপার্টি | গণনা | ফলাফল = “জয়ী” | |
| সর্বোচ্চ গোল পার্থক্যে জয় | match_completed ইভেন্টের Goal_difference প্রপার্টি | ম্যাক্স | ফলাফল = “জয়ী” | |
| মোট প্রশিক্ষণ ড্রিল | training_completed ইভেন্টের Drills_done প্রপার্টি | যোগফল | প্রযোজ্য নয় | |
| মোট সম্পন্ন প্রশিক্ষণ | training_completed ইভেন্টের যেকোনো বৈশিষ্ট্য | গণনা | প্রযোজ্য নয় |
একীকরণের বিবরণ
এপিআই এন্ডপয়েন্ট এবং এসডিকে প্রাথমিক মতামতের জন্য উপলব্ধ আছে এবং আগস্ট ২০২৬ থেকে সর্বসাধারণের জন্য উপলব্ধ (GA) হবে। সময়রেখা দেখুন।
এই অংশে দেখানো হয়েছে কীভাবে ক্লায়েন্ট সাইড এবং সার্ভার সাইড উভয় ইন্টিগ্রেশনে ইভেন্ট তৈরি ও প্রেরণ করতে হয়।
কখন ডেটা পাঠানো উচিত
প্লেয়ার ইভেন্টগুলো হলো গেম লুপ সম্পন্ন হওয়া বা গেমের নির্দিষ্ট মুহূর্তের সাথে সম্পর্কিত ইন-গেম অ্যাকশন। এই ইভেন্টগুলো ঘটার সাথে সাথেই সাবমিট করুন। উদাহরণস্বরূপ, লুপটি সম্পন্ন হওয়ার সাথে সাথেই গেম লুপ কমপ্লিশন ইভেন্টটি সাবমিট করুন।
progressUpdate ইভেন্টটি একজন খেলোয়াড়ের বর্তমান অগ্রগতির স্তর নির্দেশ করে। নিম্নলিখিত পরিস্থিতিগুলিতে এই ইভেন্টটি ব্যবহার করে অগ্রগতির পরিসংখ্যানের ডেটা পাঠানো উচিত:
- যখনই বর্তমান অগ্রগতিতে কোনো আপডেট আসবে, সর্বশেষ মানটি অবিলম্বে পাঠিয়ে দিন।
- যখনই কোনো খেলোয়াড় গেমটি চালু করে, তখন এই পরিসংখ্যানটি তার জন্য সর্বদা উপস্থিত থাকা নিশ্চিত করা হয়।
একীকরণ পথ
ইন্টিগ্রেশনের দুটি পথ রয়েছে - ক্লায়েন্ট এবং সার্ভার থেকে সার্ভার।
সার্ভার থেকে সার্ভার ইন্টিগ্রেশন
একটি পাবলিক এপিআই এন্ডপয়েন্ট আপনাকে নিম্নলিখিত কনফিগারেশনগুলি ব্যবহার করে রিকোয়েস্ট পেলোডে ইভেন্ট পাঠাতে দেয়:
পথের পরামিতি
| প্যারামিটার | ডেটা টাইপ | বর্ণনা |
|---|---|---|
| প্লেয়ার আইডি | স্ট্রিং | খেলোয়াড়ের পিজিএস আইডি। |
অনুমোদন এবং প্রমাণীকরণ
OAuth 2.0 ব্যবহার করে প্লে গেমস সার্ভিসেস-এ সার্ভার-সাইড অ্যাক্সেসের সাধারণ নির্দেশিকা অনুসরণ করে সার্ভার-টু-সার্ভার এপিআই কল করা হয়। অনুরোধের সাথে অবশ্যই https://www.googleapis.com/auth/games স্কোপ দ্বারা অনুমোদিত একটি বেয়ারার টোকেন অন্তর্ভুক্ত থাকতে হবে।
নমনীয় ইভেন্ট: অনুরোধের মূল অংশ
ব্যাকএন্ড এপিআই-এর কঠোর কাঠামোগত বৈধতার সীমাবদ্ধতা রয়েছে:
- ব্যাচ সাইজ: প্রতি
BatchRecordEventsRequestএ সর্বোচ্চ ৩০টি ইভেন্ট । - প্রপার্টির সংখ্যা: প্রতিটি
PlayerGameEventজন্য সর্বাধিক ২৫টি কাস্টম প্রপার্টি । - দৈর্ঘ্যের সীমা: ইভেন্টের নাম (সর্বোচ্চ ১০০ অক্ষর), প্রপার্টি কী (সর্বোচ্চ ১০০ অক্ষর), এবং প্রপার্টি স্ট্রিং ভ্যালু (সর্বোচ্চ ১০২৪ অক্ষর)।
- ইভেন্ট আইডি: অবশ্যই একটি বৈধ ৩৬-অক্ষরের UUID স্ট্রিং হতে হবে।
- পুনরায় চেষ্টা এবং ক্যাশিং: এপিআই ব্যর্থ হলে স্থানীয়ভাবে অতিরিক্ত ইভেন্ট ক্যাশ করা বা জমা করা এড়িয়ে চলুন, কারণ ৩০টির বেশি ইভেন্টের ব্যাচ পুনরায় চেষ্টা বাতিল হয়ে যাবে। ব্যাচ সাইজের সীমা মেনে চলার জন্য সর্বদা পুনরায় চেষ্টাগুলোকে খণ্ডে খণ্ডে ভাগ করুন।
ব্যাচরেকর্ডইভেন্টসঅনুরোধ
BatchRecordEventsRequest দেখুন।
{ "packageName": string, "requestTime": string, "events": [ { object (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"). }
সম্পত্তির মূল্য
// 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 ইভেন্ট: অনুরোধের মূল অংশ
ব্যাচরেকর্ডইভেন্টসঅনুরোধ
{ "packageName": string, "requestTime": string, "events": [ { object (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 স্ট্যাটাস ফেরত দেয়।
অনুরোধের বডির উদাহরণ
ইভেন্ট: প্লেয়ারগেমইভেন্ট
{ "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 } } ] }
ক্লায়েন্ট বাস্তবায়ন
আপনার প্ল্যাটফর্মের জন্য গেম স্ট্যাটস ক্লায়েন্ট বাস্তবায়ন সম্পর্কে জানতে, নিম্নলিখিত রিসোর্সগুলো দেখুন:
মাইলফলক
| তারিখ | গেম পরিসংখ্যান এপিআই ইন্টিগ্রেশন | গেম পরিসংখ্যান কনফিগারেশন |
| সেপ্টেম্বর ২০২৬ | প্রযোজ্য নয় |
|