ankidroid / Anki-Android

AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
GNU General Public License v3.0
8.41k stars 2.19k forks source link

Tag desired events in analytics #5041

Closed mikehardy closed 4 years ago

mikehardy commented 5 years ago

I'll wait to implement these until we have a good list, but here's the place to put your "I wish I knew xxx about usage..." requests.

Starting out:

I'll collect more, please add your own in comments below

mikehardy commented 5 years ago

I'd love to compare package names and see who is using parallel builds

mikehardy commented 5 years ago

API usage - would be great to know if / when people are using it

mikehardy commented 5 years ago

ACRA crash handler is coming through as an "event" instead of a crash or exception, for some reason?

mikehardy commented 5 years ago

The user-agent override is important and we can use it to tag device info, right now it's all coming from "desktop" but if we do it right we can know tablet vs mobile, and screen dimensions etc - would be nice to know what percent of users were using the fragmented tablet display vs the smaller phone display

mikehardy commented 5 years ago

Would be great to know collection sizes, and the size of the unbounded data where that's possible (e.g., how many people actually stuffing huge JS bundles into the Anki system? how big are they?)

mikehardy commented 5 years ago

It is apparently possible to crash a WebView if you feed it source data that is huge, and force it to resize, and the crash probability varies based on decoders etc. Would be interesting to tag who is using custom CSS (as this would change our view of whether our own CSS was a statistically reliable predictor of how things rendered), and how big individual images were

https://bugs.chromium.org/p/chromium/issues/detail?id=916779#c15

david-allison commented 4 years ago

I'll edit this post as I think of more. I love metrics.

Code

Speed

Count

Size

Features

User Awareness

mikehardy commented 4 years ago

Removing from milestones as I don't think this is really actionable it is more of an umbrella I imagine a lot of PRs will link to.

I just added some fresh information #6492 so you can see the pattern on how to add dimensions to every hit.

Adding some timing hit infrastructure and then doing some timing hits as mentioned above would be interesting, especially in combination with a custom dimension on collection size

Analytics has some support for "ecommerce hits", like purchase of certain items, it could be interesting to consider the use of any feature, awareness of anything or participation in anything (like the list above) to be an "item purchase" and log it like so as an async hit on startup.

david-allison commented 4 years ago

I normally write my timing tests in Closables, as it abstracts away the timing aspect (which makes it pretty much 0-cost and bug-free)

I'm not sure if this is possible in Android (try with resources works, but I previously got an API warning if trying to implement closable), I'll need to look into this later

github-actions[bot] commented 4 years ago

Hello 👋, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically