Skip to content

feat: collect app download statistics#634

Merged
mcdurdin merged 1 commit intomasterfrom
feat/app-download-stats
Jan 13, 2026
Merged

feat: collect app download statistics#634
mcdurdin merged 1 commit intomasterfrom
feat/app-download-stats

Conversation

@mcdurdin
Copy link
Member

This adds download statistics collection for Keyman apps hosted on downloads.keyman.com - specifically Keyman for Windows, Keyman for Mac, and Keyman Developer. Other platforms are distributed through stores or other mechanisms, so will not generally be visible here.

For now we collect app, version, and tier data, by day. This can be expanded as needed in the future.

This is the frontend change; see keymanapp/api.keyman.com#321 for the api backend and database changes.

This is implemented as a passthrough redirect on keyman.com. Online updates will not currently appear in these statistics, so the stats against downloads.keyman.com hits will differ.

Relates-to: keymanapp/api.keyman.com#321
Test-bot: skip

This adds download statistics collection for Keyman apps hosted on
downloads.keyman.com - specifically Keyman for Windows, Keyman for Mac,
and Keyman Developer. Other platforms are distributed through stores or
other mechanisms, so will not generally be visible here.

For now we collect app, version, and tier data, by day. This can be
expanded as needed in the future.

This is the frontend change; see keymanapp/api.keyman.com#321 for the
api backend and database changes.

This is implemented as a passthrough redirect on keyman.com. Online
updates will not currently appear in these statistics, so the stats
against downloads.keyman.com hits will differ.

Relates-to: keymanapp/api.keyman.com#321
Test-bot: skip
@keymanapp-test-bot
Copy link

User Test Results

Test specification and instructions

User tests are not required

@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S20 milestone Jan 12, 2026
@github-actions github-actions bot added the feat label Jan 12, 2026
@github-project-automation github-project-automation bot moved this to Todo in Keyman Jan 12, 2026
# go/app/download
#

# download-app?url=...
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# download-app?url=...
# go/app/download/<product>/<version>/<tier>?url=https://downloads.keyman.com/...

* @param bool $trim
* @return string
*/
function GUIDv4 ($trim = true)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function was unused, just noticed when cloning into go/app/download.php

#

# download-app?url=...
RewriteRule "^app/download/([^/?]+)/([^/?]+)/(.*)" "app/download.php?product=$1&version=$2&tier=$3" [END,QSA]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a url parameter? (download.php l.19)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QSA means url (and any other query params) will be passed to the rewritten script

Copy link
Contributor

@darcywong00 darcywong00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Contributor

@darcywong00 darcywong00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mcdurdin mcdurdin merged commit 14b3d66 into master Jan 13, 2026
6 checks passed
@mcdurdin mcdurdin deleted the feat/app-download-stats branch January 13, 2026 03:14
@github-project-automation github-project-automation bot moved this from Todo to Done in Keyman Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants