Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Tài liệu hướng dẫn này trình bày cách thu thập dữ liệu người chơi trong quá trình phân tích trò chơi bằng các API sự kiện do Dịch vụ trò chơi của Google Play cung cấp. Bạn có thể tìm thấy các API trong các gói com.google.android.gms.games.event và com.google.android.gms.games.
Để có thể sử dụng API sự kiện, trước tiên, trò chơi của bạn phải có được một đối tượng
EventsClient. Bạn có thể thực hiện việc này bằng cách gọi phương thức PlayGames.getEventsClient() và truyền vào hoạt động.
Gửi sự kiện
Bạn có thể thêm mã trong trò chơi để thông báo cho Dịch vụ trò chơi của Play bất cứ khi nào có sự kiện mà trò chơi quan tâm.
Để gửi bản cập nhật sự kiện, hãy gọi EventsClient.increment() với giá trị eventId và số nguyên incrementAmount bằng hoặc lớn hơn 0.
eventId được tạo bởi Dịch vụ trò chơi của Play khi bạn xác định sự kiện lần đầu trong Google Play Console, ngoài ra còn được dùng để nhận dạng riêng sự kiện này trong trò chơi của bạn.
Bạn có thể sử dụng dữ liệu đầu vào incrementAmount để chỉ định quá trình định lượng của người chơi nhằm hoàn thành một số mục tiêu cụ thể trong trò chơi. Ví dụ: nếu sự kiện mà trò chơi muốn theo dõi là "Đánh bại 500 quái vật mắt ốc nhồi", thì giá trị incrementAmount có thể là số lượng quái vật mà người chơi đã giết trong một trận chiến duy nhất.
Dưới đây là ví dụ về cách gửi một sự kiện với số lượng tăng dần là 1:
public void submitEvent(String eventId) {
PlayGames.getEventsClient(this)
.increment(eventId, 1);
}
Truy xuất sự kiện
Bạn có thể truy xuất mọi dữ liệu sự kiện lưu trữ trong máy chủ của Google cho trò chơi bằng cách gọi EventsClient.load().
Trong lệnh gọi phương thức, hãy truyền một giá trị boolean để cho biết liệu Dịch vụ trò chơi của Play có nên xoá dữ liệu được lưu vào bộ nhớ đệm trên thiết bị của người dùng hay không.
Để truy xuất dữ liệu cho các sự kiện cụ thể mà bạn đã xác định trong Google Play Console, hãy gọi EventsClient.loadByIds() và truyền một mảng mã sự kiện vào tham số đầu vào.
Đoạn mã sau đây cho biết cách bạn có thể truy vấn Dịch vụ trò chơi của Play để xem danh sách tất cả sự kiện cho trò chơi của bạn:
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-26 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-26 UTC."],[],[],null,["# Events for Android games\n\n| **Note:** This guide is for the Play Games Services v2 SDK. For information on the previous version of this SDK, see the [Play Games Services v1\n| documentation](/games/pgs/v1/android/events).\n\nThis guide shows you how to collect player gameplay data for game analytics\nusing the events APIs provided by Google Play Games Services. The APIs can be found in the\n[`com.google.android.gms.games.event`](https://developers.google.com/android/reference/com/google/android/gms/games/event/package-summary)\nand [`com.google.android.gms.games`](https://developers.google.com/android/reference/com/google/android/gms/games/package-summary)\npackages.\n\nBefore you begin\n----------------\n\nIf you haven't already done so, you might find it helpful to review the [events\ngame concepts](/games/pgs/events).\n\nBefore you start to code using the events APIs:\n\n- Define the events for your game in the\n [Google Play Console](https://play.google.com/apps/publish/).\n\n- Follow the [sign-in checklist recommendations](/games/pgs/quality#sign-in).\n\nGet the events client\n---------------------\n\nTo start using the events APIs, your game must first obtain an\n[`EventsClient`](https://developers.google.com/android/reference/com/google/android/gms/games/EventsClient)\nobject. You can do this by calling the [`PlayGames.getEventsClient()`](https://developers.google.com/android/reference/com/google/android/gms/games/PlayGames#public-static-eventsclient-geteventsclient-activity-activity)\nmethod and passing in the activity.\n| **Note:** The [`EventsClient`](https://developers.google.com/android/reference/com/google/android/gms/games/EventsClient) class makes use of the Google Play services [`Task`](https://developers.google.com/android/reference/com/google/android/gms/tasks/Task) class to return results asynchronously. To learn more about using tasks to manage threaded work, see the [Tasks API developer\n| guide](https://developers.google.com/android/guides/tasks).\n\nSubmit events\n-------------\n\nYou can add code in your game to notify Play Games Services whenever an event of\ninterest to your game occurs.\n\nTo send an event update, call\n[`EventsClient.increment()`](https://developers.google.com/android/reference/com/google/android/gms/games/EventsClient#increment)\nwith the `eventId` value and an integer `incrementAmount` that is equal to or\ngreater than 0.\n\n- The `eventId` is generated by Play Games Services when you first define the\n event in the Google Play Console and is used to uniquely identify this\n event in your game.\n\n- You can use the `incrementAmount` input to specify the player's quantitative\n progress towards completing some game-specific goal. For example, if the\n event your game wants to track is *'Defeat 500 bug-eyed monsters'* , the\n `incrementAmount` value can be the number of monsters that the player killed\n in a single battle.\n\nHere's an example of how to submit an event with an increment amount of 1: \n\n```text\npublic void submitEvent(String eventId) {\n PlayGames.getEventsClient(this)\n .increment(eventId, 1);\n}\n```\n\nRetrieve events\n---------------\n\nYou can retrieve all events data stored in Google's servers for your game, by\ncalling\n[`EventsClient.load()`](https://developers.google.com/android/reference/com/google/android/gms/games/EventsClient#load(boolean)).\nIn the method call, pass in a boolean value to indicate if Play Games Services\nshould clear the locally cached data on the user's device.\n\nTo retrieve data for specific events that you defined in the\nGoogle Play Console, call\n[`EventsClient.loadByIds()`](https://developers.google.com/android/reference/com/google/android/gms/games/EventsClient#loadByIds)\nand pass in an array of event IDs in the input parameters.\n\nThe following snippet shows how you can query Play Games Services for the list of\nall events for your game: \n\n```gdscript\npublic void loadEvents() {\n PlayGames.getEventsClient(this)\n .load(true)\n .addOnCompleteListener(new OnCompleteListener\u003cAnnotatedData\u003cEventBuffer\u003e\u003e() {\n @Override\n public void onComplete(@NonNull Task\u003cAnnotatedData\u003cEventBuffer\u003e\u003e task) {\n if (task.isSuccessful()) {\n // Process all the events.\n for (Event event : task.getResult().get()) {\n Log.d(TAG, \"loaded event \" + event.getName());\n }\n } else {\n // Handle Error\n Exception exception = task.getException();\n int statusCode = CommonStatusCodes.DEVELOPER_ERROR;\n if (exception instanceof ApiException) {\n ApiException apiException = (ApiException) exception;\n statusCode = apiException.getStatusCode();\n }\n showError(statusCode);\n }\n }\n });\n}\n```"]]