অ্যান্ড্রয়েড গেমের ইভেন্ট

Google সাইন-ইন API বন্ধ করার পর, আমরা ২০২৬ সালে গেমস v1 SDK সরিয়ে ফেলছি। ২০২৫ সালের ফেব্রুয়ারির পর, আপনি Google Play তে গেমস v1 SDK-এর সাথে নতুনভাবে সংহত করা শিরোনাম প্রকাশ করতে পারবেন না। আমরা আপনাকে এর পরিবর্তে গেমস v2 SDK ব্যবহার করার পরামর্শ দিচ্ছি।
পূর্ববর্তী গেম v1 ইন্টিগ্রেশন সহ বিদ্যমান শিরোনামগুলি কয়েক বছর ধরে কাজ করলেও, আপনাকে জুন 2025 থেকে v2 তে স্থানান্তরিত হতে উৎসাহিত করা হচ্ছে।
এই নির্দেশিকাটি Play Games Services v1 SDK ব্যবহারের জন্য। সর্বশেষ SDK সংস্করণ সম্পর্কে তথ্যের জন্য, v2 ডকুমেন্টেশন দেখুন।

এই নির্দেশিকাটি আপনাকে দেখায় কিভাবে গুগল প্লে গেমস সার্ভিসেস দ্বারা প্রদত্ত ইভেন্ট API ব্যবহার করে গেম বিশ্লেষণের জন্য প্লেয়ার গেমপ্লে ডেটা সংগ্রহ করতে হয়। API গুলি com.google.android.gms.games.event এবং com.google.android.gms.games এ পাওয়া যাবে।

শুরু করার আগে

যদি আপনি ইতিমধ্যেই এটি না করে থাকেন, তাহলে ইভেন্ট গেমের ধারণাগুলি পর্যালোচনা করা আপনার জন্য সহায়ক হতে পারে।

ইভেন্ট এপিআই ব্যবহার করে কোডিং শুরু করার আগে:

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

ইভেন্ট API ব্যবহার শুরু করতে, আপনার গেমটিকে প্রথমে একটি EventsClient অবজেক্ট পেতে হবে। আপনি Games.getEventsClient() পদ্ধতিতে কল করে এবং বর্তমান প্লেয়ারের জন্য কার্যকলাপ এবং GoogleSignInAccount পাস করে এটি করতে পারেন। প্লেয়ার অ্যাকাউন্টের তথ্য কীভাবে পুনরুদ্ধার করবেন তা জানতে, Android Games-এ সাইন-ইন দেখুন।

ইভেন্ট জমা দিন

আপনার গেমের প্রতি আগ্রহের কোনও ঘটনা ঘটলে Google Play Games Services-কে জানানোর জন্য আপনি আপনার গেমে কোড যোগ করতে পারেন।

একটি ইভেন্ট আপডেট পাঠাতে, EventsClient.increment() কল করুন eventId মান এবং একটি পূর্ণসংখ্যা incrementAmount যা 0 এর সমান বা তার বেশি।

  • Google Play Console-এ ইভেন্টটি প্রথমবার সংজ্ঞায়িত করার সময় Google Play Games Services দ্বারা eventId তৈরি করা হয় এবং আপনার গেমে এই ইভেন্টটিকে অনন্যভাবে শনাক্ত করতে এটি ব্যবহার করা হয়।
  • আপনি incrementAmount ইনপুট ব্যবহার করে খেলোয়াড়ের খেলা-নির্দিষ্ট লক্ষ্য পূরণের পরিমাণগত অগ্রগতি নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, যদি আপনার খেলাটি যে ইভেন্টটি ট্র্যাক করতে চায় তা হল '500 বাগ-আইড দানবকে পরাজিত করুন' , তাহলে incrementAmount মান হতে পারে খেলোয়াড় একক যুদ্ধে কত দানবকে হত্যা করেছে তার সংখ্যা।

১ এর ইনক্রিমেন্ট অ্যামাউন্ট সহ একটি ইভেন্ট কীভাবে জমা দিতে হয় তার একটি উদাহরণ এখানে দেওয়া হল:

public void submitEvent(String eventId) {
  Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .increment(eventId, 1);
}

ইভেন্টগুলি পুনরুদ্ধার করুন

EventsClient.load() কল করে আপনি আপনার গেমের জন্য Google এর সার্ভারে সংরক্ষিত সমস্ত ইভেন্ট ডেটা পুনরুদ্ধার করতে পারেন। মেথড কলে, ব্যবহারকারীর ডিভাইসে স্থানীয়ভাবে ক্যাশ করা ডেটা Google Play Games Services সাফ করবে কিনা তা নির্দেশ করার জন্য একটি বুলিয়ান মান পাস করুন।

Google Play Console-এ আপনার দ্বারা সংজ্ঞায়িত নির্দিষ্ট ইভেন্টের ডেটা পুনরুদ্ধার করতে, EventsClient.loadByIds() কল করুন এবং ইনপুট প্যারামিটারে ইভেন্ট আইডিগুলির একটি অ্যারে পাস করুন।

আপনার গেমের সমস্ত ইভেন্টের তালিকার জন্য আপনি কীভাবে Google Play Games Services-কে জিজ্ঞাসা করতে পারেন তা নিম্নলিখিত স্নিপেটে দেখানো হয়েছে:

public void loadEvents() {
  Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .load(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) {
          if (task.isSuccessful()) {
            // Process all the events.
            for (Event event : task.getResult().get()) {
              Log.d(TAG, "loaded event " + event.getName());
            }
          } else {
            // Handle Error
            Exception exception = task.getException();
            int statusCode = CommonStatusCodes.DEVELOPER_ERROR;
            if (exception instanceof ApiException) {
              ApiException apiException = (ApiException) exception;
              statusCode = apiException.getStatusCode();
            }
            showError(statusCode);
          }
        }
      });
}