A link to a file was followed. A count, and not a proxy.
| Field | Value |
|---|---|
| Name | file_download |
| Severity | 9 (INFO) |
| Written by | Browser tag. |
| Turned off by | data-auto-outbound="false", the same switch as outbound_click. |
On a click on an anchor whose path ends in one of a fixed list: pdf, zip, dmg, exe, msi, pkg, deb, rpm, appimage, csv, xlsx, doc, docx, mp3, mp4.
A fixed list rather than anything with a dot in it, because /v1.4/setup is a page and /pricing.html is not a download.
A link that is both off-site and a file is a download only. What is interesting is that somebody took the file, not that the file happened to live on a CDN.
firstrun is not in the way of the file. No href is rewritten, no redirect is inserted and nothing is proxied. The download starts exactly as it would have if the tag had never loaded, and it still works when we are down.
| Attribute | Type | What it holds |
|---|---|---|
| url.full | string | The href of the file. |
| firstrun.file.ext | string | The lower-cased extension that made it a file link. What a breakdown by platform usually groups on. |
Every entry also carries the resource its client sends once per batch: session.id, user.id once you have called user(), and the rest of the list on the overview. Anything you pass yourself lands in the same map, and your key wins on a collision.
Whether the download finished, how large the file was, or how long it took. This is a click on a link and does not claim to be anything else.
It is not an install. Nothing here is joined to a later app_install, and no such join exists anywhere in the product: two sources in one project are two separate anonymous id spaces, deliberately. If you want installs, report app_install from the application itself.
A widget is a filter, a group by, an aggregate, a time bucket and a limit. These are those five parts written out, and every one of them is something you can build yourself.
| Question | The query |
|---|---|
| What people download | Name is file_download . group by url.full . count of entries |
| Which platform they take | Name is file_download . group by firstrun.file.ext . count of entries |
| Downloads over time | Name is file_download . count of entries . bucket by day |
| Downloads from a campaign | Name is file_download . firstrun.utm.source is set . count of entries |