Does F-Droid provide any sort of stats?

I’m going to guess the answer is “No” but I thought I’d as anyway, does F-Droid provide any sort of stats such as the number of downloads an app has had or anything like that?

You’ve guessed already :slight_smile:

Much time ago F-Droid published the download statistics of apps but quickly went away from doing so because they were really unreliable. E.g. the downloads of single files from the web server were counted while the web server wasn’t facing the public directly but was proxied by other servers. Therefore, there were potentially a lot more downloads for an app because the proxy server cached the request while other apps’ statistics were more correct because of the proxy server not caching those so much.

Nevertheless, there is quite some interest in getting some statistics whilst respecting users’ privacy. Issues to mention are:

3 Likes

I think something like a download counter would be good, but the download would only count if the app is still installed after 48 hours. This way you don’t need to collect any user information as it’s just a download counter and the check to make sure it’s installed 48 hours later should mitigate abuse at least somewhat. You could extend this to 5 days or something too if 48 hours is too short. Personally, not too bothered about other telemetry such as crashes and honestly download figures are a bit of a frill feature for me but nice to get a ball park estimate nonetheless.

1 Like

So track the user downloading, track the user installing, track the user launching the app, track the user keeping the app…

Wait a minute…

F-Droid respects your privacy. We don’t track you, or your device. We don’t track what you install. You don’t need an account to use the client, and it sends no additional identifying data when talking to our web server other than its version number. We don’t even allow you to install other applications from the repository that track you, unless you first enable ‘Tracking’ in the AntiFeatures section of preferences. Any personal data you decide to give us (e.g. your email address when registering for an account to post on the forum) goes no further than us, and will not be used for anything other than allowing you to maintain your account.

@ About | F-Droid - Free and Open Source Android App Repository

Did you see this one maybe: https://is.gd/yQKK4Q ? Look like it’s what you want/need.

2 Likes

I didn’t say that. You track downloads, not link it to a particular user. I never said you’d track app launches. The only time you track the user keeping the app is once after 48 hours since install just to make sure it’s not someone spamming the download button to influence the stats. When I’m imaging all this btw, I’m just literally imagining a hit counter that iterates 48 hours after install if the app is still installed, not identifying users or collecting system information etc. Think the hit counter on circa 2006 Freewebs sites lol, just a tad more accurate with the 48 hour window.

How do you link download to install to use to keeping exactly? Each action can be done at random times seemingly unrelated, both in client and via the website.

Like it even matters anyway since you want to track download & install & keep lol

1 Like

Fair point, I have no idea how you’d implement it :stuck_out_tongue:

Just to gives an idea i have in my head and have some place in my queue.
In Cubapk.com i trackthe download count with a counter on each GET request.
When i update the .json that f-droid read i could add a field with the information on each app and show it somewhere in the client.
it is not a read time update of the donwload statistics, but kind a approach.

In order to protect user’s privacy AND have a way to link install / keeping / uninstall events of an application, I would assign some unique “application-download-id” to each installed application of every user (installed via F-Droid app) and store that ID in the F-Droid client app. So the F-Droid client could inform a server about these events, tagged with the unique id. There will be no relation (stored on a server) between IDs of different apps and with a user.
Keeping these id-s may be opted out by a User…

As a Developer, who distributes my app ( AndStatus ) both via F-Droid and via Google Play I need to say that these stats are very interesting for me: this is sort of feedback to my efforts to make my application better… So I think that users of Open Source apps will understand that allowing F-Droid to keep that numbers is their help to developers.

By the way, we may add a boolean property to application’s metadata “track installs” which will turn on this tracking for an application. This way the tracking will be done only if a developer decided that he/she needs this plus if a User agrees with this…

?!

Yes make it off by default, common users (your target?) never enable it. Great right?

1 Like

@Licaon_Kter This means that the “anonymous installs tracking” option should be on by default. Just because it is justifiably useful for developers.
Why not? E.g. this forum asks for login/pass for anything but reading :wink:

F-Droid respects your privacy. We don’t track you, or your device. We don’t track what you install. You don’t need an account to use the client, and it sends no additional identifying data when talking to our web server other than its version number. We don’t even allow you to install other applications from the repository that track you, unless you first enable ‘Tracking’ in the AntiFeatures section of preferences. Any personal data you decide to give us (e.g. your email address when registering for an account to post on the forum) goes no further than us, and will not be used for anything other than allowing you to maintain your account.

@ About | F-Droid - Free and Open Source Android App Repository

So, yeah how about no?

3 Likes

@Licaon_Kter What do mean by “no” here?

Regarding your quote of F-Droid privacy policy. “Anonymous installs tracking” as I described above is not a user or their device tracking, because no data, identifying a user or a device is stored. This is anonymous application installs tracking.

So words “We don’t track you, or your device. We don’t track what you install…” are still true.
The only phrase that needs amendment is “and it sends no additional identifying data when talking to our web server other than its version number”
to e.g. “and it sends no additional identifying data when talking to our web server other than its version number and identifiers of applications, installed from the repository”.

So how do you filter abuse?

“Anonymous installs tracking” in the simplest implementation won’t give us install/upgrade/uninstall “events” - we will have only “evidences” that each concrete installation of the concrete application version was present on some unknown device at some point(s) of time. The more points of the same installation we have, the more accurate result we can get, I think :slight_smile:
The beauty is that if we have this raw data, we don’t need to define any statistic metrics calculation algorithm strictly defined beforehand and unchanged. Moreover, different developers or other researchers may apply different algorithms to build e.g. “Active installs timeline” for an application as a whole or for any concrete version of an application…
I mean that if possible abusers don’t know exact algorithm that will be applied to current data tomorrow, then they won’t be able to fool it reliably. Looking at Google Play I see that Google not only keeps its statistics gathering algorithms in secret, but it changes them periodically. We can do this also, if we feel that current algorithm gives stats that we cannot trust…

As to concrete ways to clean fake/unreliable data, I would start with:

  • count points of the same installation that occured during one day, as one point only.
  • count only installations that have at least two (three…) evidences.
  • for “Installs on active devices report” count only installs that have at least one (two…) evidences during the last 30 days…

I’d argue, that its not worth taking all that effort and that F-Droid should better stick to true non-tracking :slight_smile:

5 Likes

@vanitasvitae I suppose that you are a developer having your application(s) published via F-Droid repository. And you don’t like that you or other developers will be able to have statistics of their applications.
If yes, what are your arguments?

BTW, all people and systems “track” many things. So “true” non-tracking is not possible anyway… but this is not a subject of this discussion.

Yes

Not necessarily. I can understand developers who’d like to know, how well their app does. It can be a motivating factor to see how many users are benefitting from your work.

On the other hand, so what? What would you change if you know that 100 people use your app vs. that 1000 people use it? You can already get feedback via issue trackers or other kinds of manual feedback. I got some mails of thankful users, that are waaay more precious to me than any tracking data would ever be. (Hint to all pleased users to thank their developers once in a while ;D)

And lastly, I’m also a user who really likes the FDroid philosophy of non-tracking. For me its part of what makes FDroid FDroid.

6 Likes

@vanitasvitae I see. As you don’t see a value in your application statistics, you will say that the feature doesn’t worth efforts :slight_smile:
From a User’s point of view (as I’m an F-Droid user also) I would say that I’m not against any “tracking” - this is pointless, - I’m against personified tracking (the proposed here feature doesn’t track persons and their devices),
and I’m for the tracking transparency. I mean that I want to know, what and how is tracked in order to be able to make an informed decision, if I will use the service.

Saying “no tracking” without any details is a lie.

Regarding a value of applications stats that may be obtained with the proposed tracking:
these stats are valuable not only for developers, but for sustainability of the F-Droid service also. Having these stats, one can present to stakeholders (sponsors) way more interesting and impressive data about the project performance than just “number of downloads” or “number of applications hosted” without violation of users’ privacy…