Skip to content

Add test fdroid metrics aka "popularity contest"

In #396 (closed), we sketched out what a good metrics system for F-Droid would be. It should never include any Personally Identifiable Information (PII) like telephone numbers, IP Addresses, MAC, SSID, IMSI, IMEI, user accounts, etc. It is opt-in, currently it must be enabled by first enabling "Expert Mode", then "Keep Install History", then "Send to F-Droid Metrics". There is a report viewer in the "Install History" viewer.

I developed this in conjunction with Guardian Project's Clean Insights project for private, ethical metrics. At its core, it gathers information from the previous week (e.g. the most recent completed week), and puts that into a JSON report. That JSON is then submitted to https://metrics.cleaninsights.org which is a server run by Guardian Project which contains two key pieces:

The CIMP is there to filter out things that should not be gathered, like IP addresses. It then submits the sanitized data to Matomo, which generates views on the data.

@TheLastProject @uniqx @n8fr8 @k3b @sorenstoutner @cde @danuker @licaon-kter @ByteHamster @pserwylo

Here's a real report:

{
  "events" : [ {
    "action" : "isPrivilegedInstallerEnabled",
    "category" : "device",
    "name" : "true",
    "period_end" : 1613001600,
    "period_start" : 1612396800,
    "times" : 1
  }, {
    "action" : "Build.VERSION.SDK_INT",
    "category" : "device",
    "name" : "30",
    "period_end" : 1613001600,
    "period_start" : 1612396800,
    "times" : 1
  }, {
    "action" : "Build.SUPPORTED_ABIS",
    "category" : "device",
    "name" : "[arm64-v8a, armeabi-v7a, armeabi]",
    "period_end" : 1613001600,
    "period_start" : 1612396800,
    "times" : 1
  }, {
    "action" : "PackageInfo.firstInstall",
    "category" : "APK",
    "name" : "at.atrust.tanapp",
    "period_end" : 1613001600,
    "period_start" : 1612396800,
    "times" : 1,
    "value" : "71"
  }, {
    "action" : "org.fdroid.fdroid.privileged",
    "category" : "getInstallerPackageName",
    "name" : "at.atrust.tanapp",
    "period_end" : 1613001600,
    "period_start" : 1612396800,
    "times" : 1
  }, {
    "action" : "org.fdroid.fdroid.privileged",
    "category" : "getInstallerPackageName",
    "name" : "com.jarsilio.android.scrambledeggsif",
    "period_end" : 1613606400,
    "period_start" : 1613001600,
    "times" : 1
  }, {
    "action" : "org.fdroid.fdroid.privileged",
    "category" : "getInstallerPackageName",
    "name" : "de.schildbach.oeffi",
    "period_end" : 1613606400,
    "period_start" : 1613001600,
    "times" : 1
  }, {
    "action" : "org.fdroid.fdroid.privileged",
    "category" : "getInstallerPackageName",
    "name" : "im.vector.app",
    "period_end" : 1613001600,
    "period_start" : 1612396800,
    "times" : 1
  }, {
    "action" : "org.fdroid.fdroid.privileged",
    "category" : "getInstallerPackageName",
    "name" : "net.osmand.plus",
    "period_end" : 1613606400,
    "period_start" : 1613001600,
    "times" : 1
  }, {
    "action" : "org.fdroid.fdroid.privileged",
    "category" : "getInstallerPackageName",
    "name" : "org.fdroid.fdroid",
    "period_end" : 1613001600,
    "period_start" : 1612396800,
    "times" : 1
  }, {
    "action" : "org.fdroid.fdroid.privileged",
    "category" : "getInstallerPackageName",
    "name" : "org.jitsi.meet",
    "period_end" : 1613001600,
    "period_start" : 1612396800,
    "times" : 1
  }, {
    "action" : "org.fdroid.fdroid.privileged",
    "category" : "getInstallerPackageName",
    "name" : "org.mozilla.klar",
    "period_end" : 1613606400,
    "period_start" : 1613001600,
    "times" : 1
  } ],
  "idsite" : 3,
  "lang" : "de",
  "ua" : "F-Droid 1.12-alpha0-94-g3a27f37a8-debug"
}

Merge request reports