آمار بازیکنان در بازی های اندروید

پس از منسوخ شدن رابط برنامه‌نویسی کاربردی ورود گوگل (Google Sign-In API)، ما در سال ۲۰۲۶ کیت توسعه نرم‌افزاری بازی‌ها نسخه ۱ (games v1 SDK) را حذف خواهیم کرد. پس از فوریه ۲۰۲۵، شما قادر به انتشار عناوینی که به تازگی با کیت توسعه نرم‌افزاری بازی‌ها نسخه ۱ (games v1 SDK) ادغام شده‌اند، در گوگل پلی نخواهید بود. توصیه می‌کنیم به جای آن از کیت توسعه نرم‌افزاری بازی‌ها نسخه ۲ (games v2 SDK) استفاده کنید.
در حالی که عناوین موجود با بازی‌های قبلی نسخه ۱ ادغام‌شده تا چند سال دیگر به کار خود ادامه می‌دهند، توصیه می‌شود از ژوئن ۲۰۲۵ به نسخه ۲ مهاجرت کنید .
این راهنما برای استفاده از SDK نسخه ۱ سرویس بازی‌های Play Games Services است. برای اطلاعات بیشتر در مورد آخرین نسخه SDK، به مستندات نسخه ۲ مراجعه کنید.

API آمار بازیکن به شما امکان می‌دهد تجربیات بازی را برای بخش‌های خاصی از بازیکنان و مراحل مختلف چرخه عمر بازیکن تنظیم کنید. می‌توانید بر اساس نحوه پیشرفت، هزینه کردن و تعامل بازیکنان، تجربیات سفارشی برای هر بخش از بازیکنان بسازید. به عنوان مثال، می‌توانید از این API برای انجام اقدامات پیشگیرانه برای تشویق یک بازیکن کمتر فعال به تعامل مجدد با بازی خود استفاده کنید، مانند نمایش و تبلیغ موارد جدید درون بازی هنگام ورود بازیکن.

این راهنما به شما نشان می‌دهد که چگونه از API آمار بازیکن در بازی‌ها با استفاده از سرویس‌های بازی‌های گوگل پلی استفاده کنید. این APIها را می‌توانید در بسته‌های com.google.android.gms.games.stats و com.google.android.gms.games پیدا کنید.

قبل از اینکه شروع کنی

قبل از شروع استفاده از API آمار بازیکن:

دریافت کلاینت آمار بازیکن

برای شروع استفاده از API آمار بازیکن، بازی شما ابتدا باید یک شیء PlayerStatsClient دریافت کند. می‌توانید این کار را با فراخوانی متد Games.getPlayerStatsClient() و ارسال activity و GoogleSignInAccount برای بازیکن فعلی انجام دهید. برای یادگیری نحوه بازیابی اطلاعات حساب بازیکن، به بخش ورود به سیستم در بازی‌های اندروید مراجعه کنید.

اصول اولیه آمار بازیکن

شما می‌توانید از API آمار بازیکن برای بازیابی اطلاعات مربوط به فعالیت درون بازی یک بازیکن استفاده کنید. انواع داده‌های بازیکن که می‌توانید بازیابی کنید عبارتند از:

  • میانگین مدت زمان هر جلسه : میانگین مدت زمان هر جلسه بازیکن به دقیقه. مدت زمان هر جلسه با توجه به زمانی که بازیکن وارد سرویس‌های بازی‌های گوگل پلی می‌شود، تعیین می‌شود.

  • تعداد روزهای سپری شده از آخرین بازی : تعداد تقریبی روزهای سپری شده از آخرین بازی بازیکن.

  • تعداد خریدها : تعداد تقریبی خریدهای درون برنامه‌ای برای بازیکن.

  • تعداد جلسات : تعداد تقریبی جلسات بازیکن. جلسات با تعداد دفعاتی که یک بازیکن وارد سرویس‌های بازی‌های گوگل پلی می‌شود، تعیین می‌شود.

  • درصد جلسات : تقریب درصد جلسات برای بازیکن، که به صورت یک مقدار اعشاری بین ۰ تا ۱ ارائه می‌شود. این مقدار نشان می‌دهد که بازیکن فعلی در مقایسه با بقیه بازیکنان این بازی، چند جلسه بازی کرده است. اعداد بالاتر نشان می‌دهد که این بازیکن جلسات بیشتری بازی کرده است.

  • درصد هزینه : درصد تقریبی هزینه بازیکن، که به صورت یک مقدار اعشاری بین ۰ تا ۱ ارائه می‌شود. این مقدار نشان می‌دهد که بازیکن فعلی در مقایسه با بقیه بازیکنان این بازی چقدر هزینه کرده است. اعداد بالاتر نشان می‌دهد که این بازیکن بیشتر هزینه کرده است.

انواع داده‌های بازیکن زیر منسوخ شده‌اند و همیشه یک ثابت مقدار تنظیم نشده را برمی‌گردانند:

  • احتمال ریزش : پیش‌بینی اینکه آیا یک بازیکن در روز بعد ریزش خواهد کرد یا خیر، که به صورت یک مقدار اعشاری بین ۰ (احتمال ریزش کم) تا ۱ (احتمال ریزش زیاد) ارائه می‌شود. ریزش به صورت ۷ روز عدم فعالیت تعریف می‌شود.
  • احتمال خرج کردن : احتمال تقریبی انتخاب خرج کردن توسط بازیکن در این بازی، که به صورت یک مقدار اعشاری بین ۰ (احتمال کم خرج کردن) تا ۱ (احتمال زیاد خرج کردن) ارائه می‌شود.
  • کل هزینه‌های ۲۸ روز آینده : کل هزینه‌های تقریبی مورد انتظار بازیکن در ۲۸ روز آینده در این بازی.
  • احتمال ولخرجی زیاد : احتمال تقریبی اینکه یک بازیکن طی ۲۸ روز آینده مبلغی را خرج کند که در صدک ۹۵ یا بالاتر از پایگاه بازیکنان این بازی باشد. این مقدار به صورت یک مقدار اعشاری بین ۰ (احتمال کم ولخرجی زیاد) تا ۱ (احتمال زیاد ولخرجی زیاد) ارائه می‌شود.

بازیابی اطلاعات آمار بازیکن

برای بازیابی اطلاعات آمار بازیکنی که در حال حاضر وارد سیستم شده است، این مراحل را دنبال کنید:

  1. متد PlayerStatsClient.loadPlayerStats() را فراخوانی کنید.
  2. اگر فراخوانی موفقیت‌آمیز باشد، سرویس‌های بازی‌های گوگل پلی یک شیء Task را برمی‌گردانند که به صورت ناهمگام یک شیء PlayerStats را بارگذاری می‌کند. از متدهای این شیء برای بازیابی داده‌های مربوط به فعالیت‌های بازیکن وارد شده در برنامه خود استفاده کنید.

در اینجا یک مثال آورده شده است:

public void checkPlayerStats() {
  Games.getPlayerStatsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .loadPlayerStats(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<PlayerStats>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<PlayerStats>> task) {
          if (task.isSuccessful()) {
            // Check for cached data.
            if (task.getResult().isStale()) {
              Log.d(TAG, "using cached data");
            }
            PlayerStats stats = task.getResult().get();
            if (stats != null) {
              Log.d(TAG, "Player stats loaded");
              if (stats.getDaysSinceLastPlayed() > 7) {
                Log.d(TAG, "It's been longer than a week");
              }
              if (stats.getNumberOfSessions() > 1000) {
                Log.d(TAG, "Veteran player");
              }
              if (stats.getChurnProbability() == 1) {
                Log.d(TAG, "Player is at high risk of churn");
              }
            }
          } else {
            int status = CommonStatusCodes.DEVELOPER_ERROR;
            if (task.getException() instanceof ApiException) {
              status = ((ApiException) task.getException()).getStatusCode();
            }
            Log.d(TAG, "Failed to fetch Stats Data status: "
                + status + ": " + task.getException());
          }
        }
      });
}

نکاتی برای استفاده از داده‌های آمار بازیکن

API آمار بازی به شما امکان می‌دهد به راحتی انواع مختلف بازیکنان را بر اساس میزان تعامل و رفتار خرید آنها شناسایی کنید و استراتژی‌های مناسبی را برای بهبود تجربه بازی آنها به کار بگیرید.

جدول زیر برخی از بخش‌های نمونه بازیکنان و استراتژی‌های تعامل پیشنهادی را فهرست می‌کند:

بخش پخش کننده استراتژی تعامل
بازیکنانی که مرتباً بازی می‌کنند و تعداد جلسات بالایی دارند و درصد خرج خوبی دارند، اما در هفته گذشته یا بیشتر بازی نکرده‌اند.
  • در مورد تخفیف یا جایزه ویژه‌ای که پس از بازگشت آنها به بازی در دسترس است، اعلانی ارسال کنید.
  • یک پیام خوشامدگویی که دستاوردهای چشمگیر را تصدیق می‌کند، نمایش دهید و یک نشان طراحی شده برای تشویق به بازی مجدد اهدا کنید.
بازیکنانی با تعامل بالا در درصدی از بازار که هزینه کمی صرف می‌کنند.
  • برای تشویق آنها به دعوت از دوستانشان برای نصب و پیوستن به بازی شما، پاداش‌هایی را در نظر بگیرید. این رویکرد بر اساس لذتی که بازیکن از بازی نشان می‌دهد، برای جذب بازیکنان جدید عمل می‌کند.
بازیکنان پرخرج نشانه‌هایی از اوج گرفتن و کاهش تعداد دفعات بازی را نشان می‌دهند.
  • برای جلب توجه آنها، پاداش‌های ویژه‌ای در نظر بگیرید، مثلاً با ارائه ابزارها، سلاح‌ها یا تخفیف‌های با ارزش بالا و کوتاه‌مدت.
  • دفعه‌ی بعدی که بازیکن وارد سیستم می‌شود، ویدیویی به او نشان دهید که او را به سمت ویژگی‌های انجمن، مانند حملات قبیله‌ای، هدایت کند که باعث تعامل بیشتر و طولانی‌تر می‌شود.
بازیکنانی با احتمال خرج کردن بسیار بالا یا بسیار پایین.
  • بعید است که خرج کنید: گزینه تماشای ویدیوی تبلیغاتی را ارائه دهید. اقلام ارزان‌تر را برای خرید نمایش دهید.
  • احتمال خرج کردن: آنها را زودتر به فروشگاه درون بازی هدایت کنید و برای ترغیب آنها به خرید، تخفیف‌های ویژه‌ای ارائه دهید.