คู่มือนี้จะแสดงวิธีรวบรวมข้อมูลการเล่นเกมของผู้เล่นเพื่อการวิเคราะห์เกม
โดยใช้ Events API ที่ให้บริการโดยบริการเกมของ Google Play คุณจะพบ API ได้ในแพ็กเกจ
com.google.android.gms.games.event
และ com.google.android.gms.games
ก่อนเริ่มต้น
หากยังไม่ได้ดำเนินการ คุณอาจต้องดูแนวคิดเกี่ยวกับกิจกรรม เกม
ก่อนเริ่มเขียนโค้ดโดยใช้ Events API ให้ทำดังนี้
กำหนดเหตุการณ์สำหรับเกมใน Google Play Console
รับไคลเอ็นต์เหตุการณ์
หากต้องการเริ่มใช้ Events API เกมของคุณต้องได้รับออบเจ็กต์ EventsClient ก่อน คุณทำได้โดยการเรียกใช้เมธอด PlayGames.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); } } }); }