เราจะนำ SDK เวอร์ชัน 1 ของเกมออกในปี 2026 ตามการเลิกใช้งาน Google Sign-In API หลังจากเดือนกุมภาพันธ์ 2025 คุณจะไม่สามารถเผยแพร่เกมที่ผสานรวมกับ SDK เวอร์ชัน 1 ของเกมใหม่ใน Google Play เราขอแนะนําให้ใช้ SDK ของ Google Play Games v2 แทน
แม้ว่าเกมที่มีอยู่ซึ่งผสานรวมกับเกมเวอร์ชัน 1 ก่อนหน้านี้จะยังคงใช้งานได้อีก 2-3 ปี แต่เราขอแนะนำให้คุณย้ายข้อมูลไปยัง v2 ตั้งแต่วันที่ 1 มิถุนายน 2025 เป็นต้นไป
คู่มือนี้มีไว้สำหรับการใช้ SDK บริการเกมของ Play เวอร์ชัน 1 ดูข้อมูลเกี่ยวกับ SDK เวอร์ชันล่าสุดได้ที่เอกสารประกอบ v2
คู่มือนี้จะแสดงวิธีรวบรวมข้อมูลเกมเพลย์ของผู้เล่นสําหรับข้อมูลวิเคราะห์เกมโดยใช้ Events API ที่ Google Play Games Services มีให้ ดู API ได้ใน com.google.android.gms.games.event
และ com.google.android.gms.games
ก่อนเริ่มต้น
คุณอาจต้องอ่านแนวคิดเกมกิจกรรม หากยังไม่ได้ดำเนินการ
ก่อนเริ่มเขียนโค้ดโดยใช้ Events API
- กําหนดเหตุการณ์สําหรับเกมใน Google Play Console
- ทำตามคําแนะนําในรายการตรวจสอบการลงชื่อเข้าใช้
รับไคลเอ็นต์เหตุการณ์
หากต้องการเริ่มใช้ Events API เกมของคุณจะต้องได้รับออบเจ็กต์ EventsClient
ก่อน ซึ่งทำได้โดยการเรียกใช้เมธอด Games.getEventsClient()
และส่งกิจกรรมและ GoogleSignInAccount
ของเพลเยอร์ปัจจุบัน ดูวิธีเรียกข้อมูลบัญชีผู้เล่นได้ที่การลงชื่อเข้าใช้ใน Android Games
ส่งกิจกรรม
คุณสามารถเพิ่มโค้ดในเกมเพื่อแจ้งบริการ Google Play Games ทุกครั้งที่มีเหตุการณ์ที่น่าสนใจเกิดขึ้นในเกม
หากต้องการส่งการอัปเดตเหตุการณ์ ให้เรียกใช้ EventsClient.increment()
พร้อมค่า eventId
และจํานวนเต็ม incrementAmount
ที่เท่ากับหรือมากกว่า 0
eventId
สร้างขึ้นโดยบริการ Google Play Games เมื่อคุณกำหนดเหตุการณ์ใน Google Play Console เป็นครั้งแรก และจะใช้เพื่อระบุเหตุการณ์นี้ในเกมของคุณโดยไม่ซ้ำกัน- คุณสามารถใช้อินพุต
incrementAmount
เพื่อระบุความคืบหน้าเชิงปริมาณของผู้เล่นในการบรรลุเป้าหมายบางอย่างที่เฉพาะเจาะจงของเกม ตัวอย่างเช่น หากเหตุการณ์ที่เกมต้องการติดตามคือ 'เอาชนะมอนสเตอร์ตาโป่ง 500 ตัว' ค่าincrementAmount
อาจเป็นจํานวนมอนสเตอร์ที่ผู้เล่นฆ่าในการต่อสู้ครั้งเดียว
ต่อไปนี้คือตัวอย่างวิธีส่งเหตุการณ์ที่มีจำนวนที่เพิ่มขึ้น 1
public void submitEvent(String eventId) { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(eventId, 1); }
เรียกข้อมูลเหตุการณ์
คุณสามารถเรียกข้อมูลเหตุการณ์ทั้งหมดที่เก็บไว้ในเซิร์ฟเวอร์ของ Google สําหรับเกมของคุณได้โดยการเรียกใช้ EventsClient.load()
ในการเรียกใช้เมธอด ให้ส่งค่าบูลีนเพื่อระบุว่าบริการเกมของ Google Play ควรล้างข้อมูลที่แคชไว้ในพื้นที่ในอุปกรณ์ของผู้ใช้หรือไม่
หากต้องการเรียกข้อมูลสําหรับเหตุการณ์ที่เฉพาะเจาะจงซึ่งคุณกําหนดไว้ใน Google Play Console ให้เรียกใช้ EventsClient.loadByIds()
และส่งอาร์เรย์รหัสเหตุการณ์ในพารามิเตอร์อินพุต
ข้อมูลโค้ดต่อไปนี้แสดงวิธีค้นหาบริการเกมของ Google Play เพื่อดูรายการเหตุการณ์ทั้งหมดของเกม
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); } } }); }