Gameplay Analytics

While monitoring the release of my game, I really wanted to know what the churn of each level was. That's analytics speak for the amount of people that abandoned the game while or after playing a certain level.

I imagine an api like

playdate.analytics.registerEvent(string eventName)
playdate.analytics.registerEvent(table event)

example:

playdate.analytics.registerEvent("level1_started")
playdate.analytics.registerEvent({ name = "get_key", levelNum=1, keyColor="blue" time=204 })

These events would be stored in memory until the gameWillPause event is triggered (when the menu button is pressed). At that moment, the events will be written to disk.
Whether a non-personal-identifiable-device-id game-install-id is included is up for discussion. This would allow developers to group events per user, without learning any privacy sensitive data of the user. Might be best to use a different id per game so users cannot be tracked accross games. Privacy / GDPR in general should be considered.

On every wifi sync (nightly) these events are sent to Panic's server. Developers can download a csv with these events from their play.date account. In case the event is a table, all table keys are columns in the csv

6 Likes

Since the playdate’s mic and accelerometer can be accessed without permission from the user (which I think is good for non-networked games), what’s to stop someone from putting mic or accelerometer data (or something potentially private derived from those, like the type of environment they’re in, whether they’re in a moving vehicle, maybe their age/sex as determined from the frequencies in their voice) into their game’s analytics data?

I agree that this would be useful though. Maybe the answer is to only allow analytics for games that don’t use the mic or accelerometer? Or show a warning for games that use both analytics and mic/accel? Only support predefined events, not arbitrary values?

I suppose another way to accomplish this (sort of – only some players would do it) would be to prompt players to “take our survey” which would have the game generate a QR code of their stats which they could choose to submit. That way it’s more explicitly opt-in. I know BRAAINS Trivia already does this for high scores.

I'd love to see this too.

One of those things that is probably far more complicated than I can imagine.

Addition to limit the possibility of abuse: max event size and frequency.

Enforcement should be done during the nightly sync instead of taking cpu away from the game.

I don't like it when the devices I own phone home with information about me or how I use the device. That said, I think if the Playdate had a device-wide or per game opt-in/opt-out, I think it would be okay. Players should have that option.

As a developer you should have to convince players that you are actually providing value to them by tracking their every move in the game/application. It's their device and their time you are using. They are doing a service to you by allowing you to gain insights--don't think you are entitled to make their device spy on them.

I don't expect you personally would do anything malicious, but as soon as one person can do it, anyone can, which means someone might. Whereas right now, it's not possible, so no one could.

1 Like