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