Voorbereiding Analytics Systeem¶
Doelstelling¶
Wij willen analytics over onze spelers verzamelen zodat wij een beter begrip kunnen krijgen van hoe zij het spel spelen, en daarmee hoe wij het spel kunnen verbeteren.
Ook zal het analytics systeem los van het spel zelf zijn. Dus er mogen niet grote verschillen tussen nieuwe versies van de server en client zijn, anders zou bijvoorbeeld een oudere versie van het spel niet analytics kunnen versturen.
API Best Practices¶
JSON¶
Het is belangrijk om één gestandaardiseerde vorm van communicatie te hebben. Anders word het verwarrend en kan het gebeuren dat oude clients niet werken met de nieuwste server.
Http Methods¶
In plaats van veel losse pagina’s te hebben voor elke actie is het beter om voor een deel van het pad http methoden gebruiken. Zoals is gestandaardiseerd op het web. Daardoor begrijpen andere systemen, en de libraries gebruikt voor de analytics, beter wat je wilt doen.
Hiermee volgt dan dat de pagina pad een resource moet zijn zoals /orders
,
in plaats van een actie zoals /get-orders
.
Error Handling¶
Het is belangrijk om errors op de server gracieus op te vangen, zodat de client niet een onverwachte antwoord ontvangt met mogelijk informatie dat de client niet mag weten. Ook als de client foutieve informatie stuurt moet niet de gehele server plat vallen. Hiermee moeten ook gestandaardiseerde http status codes gebruikt worden, zodat elke onderdeel in de communicatie begrijpt waar het over gaat.
Versioning¶
Het is beter om de apis achter versie nummers te zetten. Dan als je een nieuwere endpoint wilt maken, die compleet anders in elkaar zit, kunnen de oude endpoints nog gebruikt worden door oudere clients.
Dit is dan in de vorm van /v#/*/*
.
Requirements Analytics Systeem¶
Welke informatie wij willen verzamelen over ons spel.
Categorieën¶
Het is belangrijk om niet informatie te veel samen te groeperen, want dan gaat informatie verloren in de som ervan. Als je de informatie los opslaat kan je altijd nog achteraf het optellen om alsnog het totaal te kunnen vergelijken.
Voor ons spel hebben wij deze categorieën:
Naam | Beschrijving | Reden |
---|---|---|
Spel | Elk potje gespeeld in het spel | Zodat wij kunnen zien hoe goed een speler het spel speelt en waar hij/zij tegen aanloopt |
Sessie | Elke periode dat het spel gespeeld word | Zodat wij kunnen zien hoe goed het spel de spelers aandacht houd |
Speler | Elke installatie | Zodat wij kunnen zien of een speler terugkomt |
Wij hoeven de belangrijkste datapunten alleen per gespeeld spel op te slaan, want vanaf daar kunnen wij alles opsommen. Alleen kan het wel handig zijn om informatie ook daarbuiten op te tellen. Daarmee zouden wij bijvoorbeeld de tijd dat een speler in de menu’s doorbrengt ook kunnen bijhouden.
Datapunten¶
Algemeen¶
Informatie buiten het spel om, bijvoorbeeld of spelers het spel überhaupt spelen.
Naam | Beschrijving |
---|---|
Installatie ratio | aantal spelers vergeleken met aantal downloads |
Download ratio | aantal downloads vergeleken met pagina views |
DAU/MAU | aantal spelers die per dag/maand spelen |
Aantal spelers | in totaal |
Nieuwe spelers | aantal per tijdseenheid |
Systeem¶
Informatie over het systeem van de speler, waarop wij kunnen groeperen.
Naam | Beschrijving | Reden |
---|---|---|
Spel versie | Omdat oudere versies de problemen nog hebben die in nieuwe versies al opgelost zijn | |
Platform | Waarop het spel gespeeld word | Want sommige problemen kunnen op alleen bepaalde platformen voorkomen |
Locatie | Waar de speler het spel speelt | Zodat wij kunnen zien waar ons spel gespeeld word |
Speler¶
Informatie over de speler zelf, op basis van de andere beschikbare informatie.
Naam | Beschrijving |
---|---|
Gespeelde spellen | |
Speeltijd | in totaal |
Aantal sessies | |
Sessie lengte | |
Gewonnen spellen per sessie | |
Tijd tussen sessies | |
Aantal spellen | |
Spel lengte |
Gespeelde spellen¶
Informatie over gespeelde spellen zelf, bijvoorbeeld wat erin gebeurde.
Naam | Beschrijving |
---|---|
Lengte | in tijd |
Datum | wanneer het spel was gespeeld |
Gewonnen | |
Behaalde waves | |
Speler level | |
Enemies verslagen | |
Health verloren | in totaal |
Damage gedaan | in totaal |
Meest gebruikte wapen |
Bronnen¶
- Au-Yeung, J. (2020, maart). Best practices for REST API design. stackoverflow.blog.
Geraadpleegd op 15 mei 2024, van https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/ - RESTful web API design (z.d.) learn.microsoft.com.
Geraadpleegd op 15 mei 2024, van https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design - Hubka, T. (2024, 13 februari). 22 metrics all game developers should know by heart. gameanalytics.com.
Geraadpleegd op 15 mei 2024, van https://gameanalytics.com/blog/metrics-all-game-developers-should-know/
Gecreëerd: May 16, 2024