Số liệu thống kê về trò chơi là số liệu thống kê tích luỹ về trò chơi của bạn mà người chơi có thể xem trên Hồ sơ người chơi của họ. Những số liệu thống kê này cho phép người chơi theo dõi tiến trình trong suốt vòng đời, xem các khoảnh khắc nổi bật và so sánh với những người chơi khác, đồng thời hỗ trợ các tính năng của Google Play như Nhiệm vụ, Thử thách xã hội và nhiều tính năng khác trong tương lai.
Các bước tích hợp
Gửi dữ liệu bằng Game Stats API dưới dạng các sự kiện linh hoạt của người chơi cho số liệu thống kê lặp lại và một sự kiện được xác định trước progressUpdate cho số liệu thống kê về tiến trình. Bạn cũng cần định cấu hình logic để tính toán số liệu thống kê sẽ xuất hiện trên hồ sơ người chơi và thông tin hiển thị của họ.
Sự kiện của người chơi thể hiện những khoảnh khắc riêng biệt trong trò chơi, các lần hoàn thành vòng lặp trò chơi hoặc các mốc tiến trình.
Sự kiện người chơi được xác định và mô hình hoá như sau:
- Sự kiện được thể hiện bằng một hành động cụ thể của người chơi, chẳng hạn như hoàn thành một trận đấu, kết thúc một lượt chạy, mở khoá một rương hoặc lưu tiến trình ở một khu vực.
- Mỗi hành động đều dẫn đến một số kết quả nhất định hoặc có một số đặc điểm nhất định xác định hành động đó. Đây là những thuộc tính sự kiện được mô hình hoá để cung cấp bối cảnh về sự kiện và kết quả cụ thể của sự kiện (ví dụ: loại trận đấu, số xu thu thập được trong lần chạy đó, kết quả trận đấu hoặc số lần bắn trúng đầu).
Quy trình tích hợp bao gồm các bước sau:
- Khai báo giản đồ dữ liệu thô: Xác định các sự kiện của người chơi bằng cách tải tệp CSV lên trong Play Console. Xem Nguyên tắc về tệp CSV.
- Tích hợp với Game Stats API: Gửi dữ liệu thô của người chơi ở định dạng đã khai báo cho các sự kiện linh hoạt của người chơi và sự kiện
progressUpdate.- Gửi tất cả sự kiện đã xác định bằng cách sử dụng chế độ tích hợp phía máy khách hoặc phía máy chủ.
Để biết thêm thông tin, hãy xem ví dụ về Sự kiện linh hoạt và sự kiện
progressUpdate.
- Gửi tất cả sự kiện đã xác định bằng cách sử dụng chế độ tích hợp phía máy khách hoặc phía máy chủ.
Để biết thêm thông tin, hãy xem ví dụ về Sự kiện linh hoạt và sự kiện
- Tải tệp ZIP lên: Cung cấp 3 tệp CSV và tất cả tệp hình ảnh biểu tượng xác định 5 số liệu thống kê lặp lại và 1 cấp độ tiến trình của người chơi.
Để biết thêm thông tin, hãy xem Nguyên tắc đối với tệp ZIP.
Cung cấp các thông tin chi tiết sau:
- Tệp CSV cho số liệu thống kê định kỳ:
- Mã nhận dạng duy nhất của số liệu thống kê.
- Chỉ định nhãn sự kiện sẽ được dùng để tính toán số liệu thống kê. Bạn không thể sử dụng nhãn sự kiện
progressUpdatetại đây.- Chỉ định nhãn thuộc tính sẽ dùng để tính toán số liệu thống kê. Đây phải là một thuộc tính của sự kiện được chỉ định.
- Chỉ định loại tổng hợp (SUM, MAX, MIN hoặc COUNT) để xác định cách tính số liệu thống kê trên nhãn thuộc tính đã chọn.
- Chỉ định một điều kiện lọc không bắt buộc để tính toán logic chỉ khi điều kiện được đáp ứng. Xác định thuộc tính và nhãn sự kiện, toán tử (=, < hoặc >) và giá trị ngưỡng.
- Thêm một cờ boolean để cho biết liệu chỉ số này có thể dùng cho các tính năng cạnh tranh hay không.
- Nếu tính năng này có thể được dùng cho các tính năng cạnh tranh, thì giới hạn tối thiểu và tối đa theo giờ đối với người chơi chân chính. Thông tin này sẽ được dùng để xác định những người chơi có thể đang sử dụng sai cách khi tham gia các tính năng như giải đấu và thử thách xã hội.
- Đặt một tên hiển thị riêng biệt cho chỉ số mà người chơi nhìn thấy.
- Cung cấp văn bản riêng biệt mô tả chỉ số. Nội dung mô tả này phải cung cấp thông tin chi tiết về cách người chơi đạt được chỉ số đó.
- Cung cấp một biểu tượng riêng biệt đại diện cho số liệu thống kê bằng cách nhập tên tệp biểu tượng chính xác vào tệp CSV.
- Cung cấp một thứ tự tuần tự để chỉ định thứ tự mà người chơi sẽ thấy số liệu thống kê trong Hồ sơ người chơi của họ
- Cung cấp một thông tin đầu vào không bắt buộc về việc giá trị tăng hay giảm là tốt cho người chơi. Đầu vào này sẽ được dùng để ăn mừng các chuyển động của người chơi.
- Cung cấp một đơn vị đo lường không bắt buộc cho số liệu thống kê, chẳng hạn như km, dặm và giây.
- Tệp CSV cho số liệu thống kê về tiến trình của người chơi:
- Đặt một tên hiển thị riêng biệt cho tiến trình của người chơi mà người chơi sẽ thấy.
- Cung cấp một biểu tượng riêng biệt đại diện cho chỉ số.
- Cung cấp nội dung mô tả cho chỉ số tiến trình.
- Cung cấp một thông tin đầu vào không bắt buộc về việc giá trị tăng hay giảm có tốt cho người chơi hay không. Đầu vào này sẽ chỉ được dùng để ghi nhận các chuyển động của người chơi khi thuộc tính
currentProgresscó kiểu INT. - Cung cấp đơn vị đo lường không bắt buộc cho số liệu thống kê, chẳng hạn như km, dặm, giây.
- Tệp CSV để bản địa hoá: Cung cấp tên hiển thị đã bản địa hoá cho tất cả các số liệu thống kê.
- Thêm một hàng cho mỗi ngôn ngữ.
- Sử dụng chuỗi tên hiển thị của chỉ số như đã thêm trong tệp CSV trước đó để xác định duy nhất chỉ số mà bạn đang thêm nội dung bản địa hoá.
- Chỉ định ngôn ngữ trong danh sách mã ngôn ngữ.
- Thêm thông tin bản địa hoá cho tên hiển thị bằng ngôn ngữ được chỉ định.
- Thêm nội dung bản địa hoá cho phần mô tả chỉ số bằng ngôn ngữ đã chỉ định.
- Tệp CSV cho số liệu thống kê định kỳ:
Nguyên tắc về tệp CSV cho sự kiện
Bạn có thể nhập sự kiện bằng tệp PlayerGameEvent.csv.
| Tên tệp | Bắt buộc hoặc không bắt buộc |
| PlayerGameEvent.csv | Bắt buộc |
Định dạng PlayerGameEvent.csv
Tệp csv chứa sự kiện đã khai báo và các thuộc tính của sự kiện đó dưới dạng giá trị được phân tách bằng dấu phẩy theo thứ tự sau:
Event Name,Property Name,Property Type
Nếu bạn gửi sự kiện progressUpdate cho progressionStat, hãy thêm một hàng cho sự kiện này. Sự kiện này phải chứa ít nhất một thuộc tính currentProgress thuộc loại INT hoặc STRING, cùng với mọi thuộc tính khác mà bạn muốn gửi.
Bảng ví dụ
| Tên sự kiện | Tên thuộc tính | Loại bất động sản |
|---|---|---|
| matchCompleted | thời lượng | DOUBLE |
| matchCompleted | mạng giết được | SLC |
| matchCompleted | isWinner | BOOLEAN |
| matchCompleted | matchType | STRING (UTF-8) |
| itemCollected | coinsAmount | SLC |
| itemCollected | weaponType | STRING (UTF-8) |
| progressUpdate | currentProgress | SLC |
Nguyên tắc đối với tệp ZIP chứa số liệu thống kê
Bạn có thể nhập số liệu thống kê cùng lúc bằng tệp ZIP. Hãy tham khảo bảng để biết tên tệp chính xác cần sử dụng trong tệp ZIP:
| Tên tệp | Bắt buộc hoặc tuỳ chọn | Các giá trị được chấp nhận |
|---|---|---|
RepetitiveStatsConfig.csv
|
Bắt buộc | Siêu dữ liệu cho nhiều sự kiện. |
ProgressionStatConfig.csv
|
Bắt buộc | Sự kiện đã khai báo và các thuộc tính của sự kiện đó. |
StatLocalizations.csv
|
Không bắt buộc | Cung cấp bản dịch cho tên và nội dung mô tả thành tích. |
| Tệp biểu tượng | Bắt buộc | Biểu tượng ở định dạng PNG, JPEG hoặc JPG có kích thước 512 x 512. |
Định dạng RepetitiveStatsConfig.csv
Tệp csv chứa sự kiện đã khai báo và các thuộc tính của sự kiện đó dưới dạng giá trị được phân tách bằng dấu phẩy theo thứ tự sau:
Stat ID, Event Name, Property Name, Aggregation, Stat Display Name, Stat Description, Filter Property, Filter Operator, Filter Value, Is Competitive, minLimit, maxLimit, Icon File Name, Sequence Number, Good value direction, unit
Trong trường hợp bạn không muốn sử dụng điều kiện lọc, hãy để trống ô.
Bảng ví dụ
| Mã thống kê | Tên sự kiện | Tên thuộc tính | Tổng hợp | Tên hiển thị của chỉ số | Nội dung mô tả về chỉ số | Lọc tài sản (không bắt buộc) | Toán tử lọc (không bắt buộc) | Giá trị bộ lọc (không bắt buộc) | Có tính cạnh tranh | minLimit | maxLimit | Tên tệp biểu tượng | Số thứ tự | Hướng giá trị tốt | đơn vị |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | matchCompleted | thời lượng | TỐI ĐA | Longest Match Survival | Đây là thời gian sống sót của người chơi trong bất kỳ trận đấu nào | isWinner | = | TRUE | TRUE | 0 | 50 | stat1.png | 1 | Giảm đi | giây |
| 2 | matchCompleted | isWinner | COUNT | Số trận thắng | Chỉ số này cho biết số trận đấu mà một người chơi đã thắng | isWinner | = | TRUE | TRUE | 0 | 50 | stat3.png | 2 | Tăng lên | |
| 3 | matchCompleted | mạng giết được | SUM | Số mạng giết được trong trận đấu 1 đấu 1 | Số mạng hạ gục trong các trận đấu 1 vs 1 | matchType | = | "1-on-1" | FALSE | stat4.png | 4 | Tăng lên | |||
| 4 | itemCollected | coinsAmount | SUM | Tổng số vàng đã thu thập | Người chơi thu thập xu khi chơi trong một trận đấu | weaponType | = | "sword" | FALSE | stat2.png | 3 | Tăng lên |
Định dạng ProgressionStatConfig.csv
Tệp csv chứa sự kiện đã khai báo và các thuộc tính của sự kiện đó dưới dạng giá trị được phân tách bằng dấu phẩy theo thứ tự sau:
Stat ID, Stat Display Name, Stat Description, Icon File Name, Good value direction, unit
Số liệu thống kê về tiến trình sẽ là số liệu thống kê đầu tiên mà người chơi nhìn thấy trong Hồ sơ người chơi.
Bảng ví dụ
| Stat ID | Tên hiển thị của số liệu thống kê | Nội dung mô tả chỉ số | Tên tệp biểu tượng | Hướng đi có giá trị |
| 5 | Cấp độ | Người chơi tích luỹ điểm kinh nghiệm bằng cách chơi các trận đấu và lên cấp. | Level.png | tăng lên |
Định dạng StatLocalizations.csv
Tệp csv chứa sự kiện đã khai báo và các thuộc tính của sự kiện đó dưới dạng giá trị được phân tách bằng dấu phẩy theo thứ tự sau:
Stat ID, Stat Display Name, Language Code, Localized Stat Name, Localized Stat Description
Bảng ví dụ
| Stat ID | Tên hiển thị của số liệu thống kê | Mã ngôn ngữ | Tên chỉ số theo ngôn ngữ địa phương (UTF-8) | Nội dung mô tả chỉ số theo ngôn ngữ địa phương (UTF-8) | 1 | Longest Match Survival | es | Supervivencia más larga en partidos | Esto denota el tiempo de supervivencia de una jugadora en cualquier partido. | 1 | Longest Match Survival | fr | Survie du match le plus long | Cela indique la durée de survie d'un joueur dans n'importe quel match. | 4 | Tổng số vàng đã thu thập | es | Oro total recolectado | La jugadora recoge monedas mientras juega en un partido | 4 | Tổng số vàng đã thu thập | fr | Hoặc tổng số tiền đã thu | Le joueur collecte des pièces en jouant un match |
Lập kế hoạch cho giản đồ
Bạn có thể gửi 2 loại dữ liệu bằng Game Stats API: sự kiện linh hoạt của người chơi và sự kiện được xác định trước cho số liệu thống kê về tiến trình của người chơi. Các ví dụ sau đây minh hoạ cách các sự kiện linh hoạt xuất hiện trên nhiều loại trò chơi.
Sự kiện linh hoạt của trình phát
Sự kiện của người chơi được xác định bằng những khoảnh khắc riêng biệt trong trò chơi, các lần hoàn thành vòng lặp trò chơi hoặc các mốc tiến trình.
- Xác định sự kiện là những khoảnh khắc cụ thể trong trò chơi, hoàn thành vòng lặp trò chơi hoặc các cột mốc tiến trình:
- Hoàn tất vòng lặp trò chơi, chẳng hạn như hoàn tất một trận đấu hoặc lượt chạy.
- Các mốc tiến trình, chẳng hạn như tiến trình khám phá khu vực đã lưu hoặc một cấp độ đã hoàn thành.
- Thêm thuộc tính để cung cấp bối cảnh về sự kiện và kết quả của sự kiện đó, chẳng hạn như số cấp độ, loại trận đấu, loại vũ khí, số lượng vũ khí, số lần bắn trúng đầu, số xu thu thập được, kết quả trận đấu, thời gian hoàn thành vòng đua hoặc loại xe.
- Gửi sự kiện trong phiên chơi ngay khi sự kiện xảy ra. Ví dụ: gửi sự kiện hoàn tất vòng lặp trò chơi ngay sau khi vòng lặp hoàn tất.
Ví dụ
| Loại trò chơi | Nhãn sự kiện | Khoảnh khắc trong trò chơi / Hoàn tất sự kiện tiến trình / Hoàn tất vòng lặp trò chơi | Kết quả | Đặc điểm |
|---|---|---|---|---|
| Trò chơi giải đố độc lập có tiến trình tuyến tính | chapter_completed | Hoàn tất sự kiện tăng tốc | Không áp dụng | Số chương, Tên chương, Số lần thử, số màn hình, số lượt di chuyển, nội dung chương |
| screen_completed | Hoàn tất sự kiện tăng tốc | Số chương, Tên chương, Số lần thử, số nước đi, nội dung chương | ||
| Trò chơi chạy vô tận 3D | run_completed | Hoàn thành vòng lặp trò chơi | Số xu đã thu thập, điểm số | Thời gian chạy, số xu thu thập được từ jetpack, số lượng bộ tăng tốc được dùng khi bắt đầu chạy, số lượng ván lướt sóng được dùng, số lượng nam châm được dùng, số lượng thiết bị nhảy được dùng, số lượng jetpack được dùng |
| Game nhập vai hành động thế giới mở | areaExplorationProgress | Hoàn tất sự kiện tăng tốc | Số kẻ thù bị đánh bại, số bình thuốc đã thu thập | Số khu vực, Tên khu vực, Tỷ lệ phần trăm tiến độ |
| questCompleted | Hoàn tất vòng lặp trò chơi | Không áp dụng | Tên nhiệm vụ | |
| weaponUnlocked | Khoảnh khắc trong trò chơi | Không áp dụng | Tên vũ khí, Cấp độ vũ khí | |
| chestUnlocked | Khoảnh khắc trong trò chơi | Quặng tăng cường đã thu thập | ||
| Câu đố thông thường có siêu dữ liệu trang trí | puzzleCompleted | Hoàn tất vòng lặp trò chơi / Hoàn tất sự kiện tiến trình | Số xu đã thu thập, Số vật phẩm hỗ trợ đã thu thập | Số nước đi, Butler's gift used?, Loại cấp độ, Số cấp độ, số lượng tên lửa màu đã dùng, số lượng thuốc nổ đã dùng |
| cardsCollected | Khoảnh khắc trong trò chơi | Thẻ 1 sao, thẻ 2 sao, thẻ 3 sao, tổng số thẻ | Số thứ tự đĩa nhạc, Tên đĩa nhạc | |
| Đua xe trong khu trò chơi arcade | raceCompleted | Hoàn tất vòng lặp trò chơi | Hạng, NOS đã dùng, race_time | Loại cuộc đua, điểm xếp hạng, car_used |
| carUpgraded | Khoảnh khắc trong trò chơi | Đặc điểm của xe được nâng cấp, cấp độ / giá trị cũ, cấp độ / giá trị mới | Loại xe, cấp độ gara hiện tại | |
| Trò chơi bắn súng góc nhìn thứ ba trong chế độ Battle Royale | matchCompleted | Hoàn tất vòng lặp trò chơi | Số lần loại bỏ, Số lần bắn trúng đầu, Giá trị danh dự | Loại trận đấu, thời gian sinh tồn |
| Trò chơi mô phỏng quản lý thể thao điện tử | matchCompleted | Hoàn tất vòng lặp trò chơi | Kết quả, số bàn thắng, bàn thắng | Tên đội đối thủ, tên đội chơi |
| trainingCompleted | Khoảnh khắc trong trò chơi | Bài tập đã hoàn thành, teamplay_form_attack, teamplay_form_defense, teamplay_form_possession, teamplay_form_condition |
progressUpdate Sự kiện
Nếu trò chơi của bạn có cơ chế tiến trình chính, hãy sử dụng sự kiện này để gửi tiến trình hiện tại của người chơi. Sự kiện này có một thuộc tính được xác định trước có tên là "currentProgress" thuộc loại INT hoặc STRING. Gửi giá trị tiến trình hiện tại bằng thuộc tính này, vì đây là giá trị duy nhất xuất hiện trong giao diện người dùng Thống kê trò chơi của Hồ sơ người chơi.
Vì người chơi có thể so sánh hồ sơ của họ theo tiến trình hiện tại trong trò chơi, nên điều quan trọng là không được có độ trễ khi nhận giá trị tiến trình hiện tại sau lần tích hợp đầu tiên. Để thể hiện chính xác tiến trình hiện tại cho người chơi, bạn nên gửi sự kiện progressUpdate khi bắt đầu mỗi phiên trò chơi cũng như bất cứ khi nào có thông tin cập nhật về tiến trình hiện tại.
Ví dụ
| Loại trò chơi | thuộc tính currentProgress của sự kiện `progressUpdate` |
|---|---|
| Trò chơi giải đố theo tiến trình tuyến tính | Số chương hoặc số cấp hiện tại |
| 3d Endless Runner | Điểm cao, Số lượng bộ tăng tốc hiện tại |
| Câu đố thông thường | Số cấp độ hiện tại, Số lần thắng ngay lần thử đầu tiên, Số khu vực đã hoàn thành, Số bộ sưu tập đã hoàn thành |
| Đua xe trong khu trò chơi arcade | Số cấp hiện tại, Số dư tiền tệ |
| Game nhập vai hành động thế giới mở | Thứ hạng nhân vật hiện tại, Số cấp độ hiện tại |
| Bắn súng góc nhìn thứ ba | Số cấp độ hiện tại |
| Mô phỏng thể thao điện tử | Số cấp người quản lý, số cấp câu lạc bộ |
Thông tin chi tiết về nội dung tích hợp
Các điểm cuối API và SDK sẽ được cung cấp để thu thập ý kiến phản hồi sớm và sẽ được cung cấp rộng rãi (GA) kể từ tháng 7 năm 2026. Xem dòng thời gian
Phần này hướng dẫn cách tạo sự kiện và gửi sự kiện trong cả quá trình tích hợp phía máy khách và phía máy chủ.
Khi nào bạn nên gửi dữ liệu
Sự kiện linh hoạt thể hiện các hành động trong trò chơi liên quan đến việc hoàn thành vòng lặp trò chơi hoặc các khoảnh khắc cụ thể trong trò chơi. Hãy gửi những sự kiện này ngay khi chúng xảy ra. Ví dụ: hãy gửi sự kiện hoàn tất vòng lặp trò chơi ngay khi vòng lặp hoàn tất.
progressUpdateEvent (Sự kiện) biểu thị cấp độ tiến trình hiện tại của người chơi.
Bạn nên gửi dữ liệu cho chỉ số tiến trình bằng sự kiện này trong những trường hợp sau:
- Bất cứ khi nào có bản cập nhật về tiến trình hiện tại, hãy gửi ngay giá trị mới nhất
- Bất cứ khi nào người chơi khởi chạy trò chơi để đảm bảo luôn có chỉ số này cho người chơi.
Các cách tích hợp
Có 2 cách tích hợp: máy khách và máy chủ đến máy chủ.
Tích hợp máy chủ đến máy chủ
Điểm cuối API công khai cho phép bạn gửi các sự kiện trong tải trọng yêu cầu bằng cách sử dụng các cấu hình sau:
Tham số đường dẫn
| Tham số | Loại dữ liệu | Mô tả |
|---|---|---|
| playerId | Chuỗi | Mã nhận dạng PGS của người chơi. |
Uỷ quyền và xác thực
Các lệnh gọi API từ máy chủ đến máy chủ tuân theo các nguyên tắc tiêu chuẩn về Quyền truy cập phía máy chủ vào Dịch vụ trò chơi của Play bằng cách sử dụng OAuth 2.0. Yêu cầu phải có mã thông báo Bearer được uỷ quyền bằng phạm vi https://www.googleapis.com/auth/games.
Sự kiện linh hoạt: Nội dung yêu cầu
BatchRecordEventsRequest
{ "packageName": string, "requestTime": string, "events": [ { object (PlayerGameEvent) } ] }
PlayerGameEvent
{ "eventId": string, "eventName": string, "eventProperties": { // keys (e.g., "matchId", "score") "" : { object (PropertyValue) } }, "eventTime": string }
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, // RFC 3339 formatted timestamp string (e.g., "2026-01-01T18:00:00Z"). "timestampValue": "string", // Duration in seconds suffixed with 's' (e.g., "240s" or "3.5s"). "durationValue": "string" }
Sự kiện progressUpdate: Nội dung yêu cầu
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 }
Nội dung phản hồi
Nếu thành công, sẽ trả về trạng thái HTTP 200 OK với một đối tượng JSON trống.
Nội dung yêu cầu mẫu
Sự kiện linh hoạt: PlayerGameEvent
{ "packageName": "com.example.awesomegame",//Your package name "requestTime": "2026-01-01T18:00:00Z", "events": [ { "eventId": "123e1234-e29b-41d4-a123-446655440000", // UUID for deduplication //and idempotency "eventName": "matchCompleted", "eventTime": "2026-01-01T17:00:00Z", "eventProperties": { "matchId": { "stringValue": "Match_A" }, "gameMode": { "stringValue": "Battle_B" }, "locationId": { "stringValue": "Location_XYZ" }, "playerElimination": { "intValue": 2 }, "survivalTimeSeconds": { "durationValue": "240s" }, "isWinner": { "boolValue": true } } } ] }
Sự kiện progressUpdate
{ "packageName": "com.example.awesomegame",//Your package name "requestTime": "2026-01-01T18:00:00Z", "events": [ { "eventId": "123e1234-e29b-41d4-a123-446655440000", // UUID "eventName": "progressUpdate", "eventTime": "2026-01-01T17:00:00Z", "eventProperties": { "currentProgress": { "intValue": 52 }, //Add more properties as per your requirement } } ] }
Tích hợp phía ứng dụng
Tính năng tích hợp phía ứng dụng sẽ được cung cấp bằng cách sử dụng các SDK Unity, Java và C++.
Việc tích hợp phía ứng dụng cho PlayerGameEvent sẽ liên quan đến việc bạn tạo đối tượng sự kiện bằng Java hoặc Csharp, tuỳ thuộc vào SDK, tại các điểm kích hoạt và gửi chúng bằng các hàm tải lên do SDK cung cấp.
Tương tự, đối với sự kiện progressUpdate, hãy ghi lại tiến trình đã cập nhật bằng cách sử dụng thuộc tính currentProgress cùng với các thuộc tính được xác định bổ sung và gửi các thuộc tính đó bằng cách sử dụng các hàm tải lên do SDK cung cấp.
Sự kiện
Các ứng dụng tích hợp phía ứng dụng cho PlayerGameEvent là:
Tạo sự kiện linh hoạt trong trò chơi của người chơi
Java
// Build the PlayerGameEvent
PlayerGameEvent event = new PlayerGameEvent.Builder("matchCompleted")
.addProperty("matchId", "Match_A")
.addProperty("gameMode", "Battle_B")
.addProperty("mapId", "Location_XYZ")
.addProperty("isWinner", true)
.addProperty("survivalTimeSeconds", "240s")
.addProperty("playerElimination", 2)
.build();
List events = new ArrayList<>();
// ... populate list ...
Unity
// Build the PlayerGameEvent
var playerEvent = new PlayerGameEvent.Builder("matchCompleted")
.AddProperty("matchId", "Match_A")
.AddProperty("gameMode", "Battle_B")
.AddProperty("mapId", "Location_XYZ")
.AddProperty("isWinner", true)
.AddProperty("survivalTimeSeconds", "240s")
.AddProperty("playerElimination", 2)
.Build();
var events = new List();
// ... populate list ...
C++
// Build the PlayerGameEvent
PgsPlayerGameEvent* player_event = PgsPlayerGameEvent_create("matchCompleted");
if (player_event != nullptr) {
PgsPlayerGameEvent_putString(player_event, "matchId", "Match_A");
PgsPlayerGameEvent_putString(player_event, "gameMode", "Battle_B");
PgsPlayerGameEvent_putString(player_event, "mapId", "Location_XYZ");
PgsPlayerGameEvent_putBoolean(player_event, "isWinner", true);
PgsPlayerGameEvent_putString(player_event, "survivalTimeSeconds", "240s");
PgsPlayerGameEvent_putLong(player_event, "playerElimination", 2);
}
Tạo progressUpdate Sự kiện trong trò chơi của người chơi
Java
// Build the PlayerGameEvent
PlayerGameEvent event = new PlayerGameEvent.Builder("progressUpdate")
.addProperty("currentProgress", 52)
// Add other properties if needed
.build();
List events = new ArrayList<>();
// ... populate list ...
Unity
// Build the PlayerGameEvent
var progressEvent = new PlayerGameEvent.Builder("progressUpdate")
.AddProperty("currentProgress", 52)
// Add other properties if needed
.Build();
var events = new List();
// ... populate list ...
C++
PgsPlayerGameEvent* progress_event = PgsPlayerGameEvent_create("progressUpdate");
if (progress_event != nullptr) {
PgsPlayerGameEvent_putLong(progress_event, "currentProgress", 52);
}
Ghi lại sự kiện và tải lên
Java
// Buffers the event locally.
client.recordEvent(event);
// Buffers the events locally, (List version)
client.recordEvents(events);
// This submits the events to PGS
client.requestEventsUpload();
Unity
// Buffers the event locally.
PlayGamesPlatform.Instance.RecordEvent(playerEvent);
// Buffers the events locally, (List version)
PlayGamesPlatform.Instance.RecordEvents(events);
// This submits the events to PGS
PlayGamesPlatform.Instance.RequestEventsUpload();
C++
// Record the event
PgsGameStatsClient_recordEvent(client, player_event);
// This submits the events to PGS
PgsGameStatsClient_requestEventsUpload(client);
// Clean up handle to avoid leaks
PgsPlayerGameEvent_destroy(player_event);
// Clean up client handle when PGS operations are finished
PgsGameStatsClient_destroy(client);
Dòng thời gian
| Ngày | Tích hợp Game Stats API | Cấu hình Số liệu thống kê về trò chơi |
| Tháng 6/2026 |
|
Không có |
| Tháng 7 năm 2026 |
|
|
| Tháng 8 năm 2026 | Không áp dụng |
|
| Tháng 9 năm 2026 | Không áp dụng |
|