The only true way to analyze web traffic on your site is to look at the actual log files on your web server with something like WebTrends, SmarterStats, AWStats, etc.
It's always bothered me too that Google Analytics doesn't track file downloads out-of-the-box. One would think this is a common scenario...
I had the same issue and Googled around. Learned two things. First, make sure you're using the newer Asynchronous Google Analytics. The asynchronous GA will make your website load faster. Finally, track file downloads automatically. The manual recommendation made by Google gets tiring quickly - especially if you have a lot of file downloads like me.
To track file downloads automatically, I use an extension to Google Analytics called Entourage.js:
The developer has a really good installation guide and an explanation of his thought process while developing the extension. Check it out!
For me it was as easy as installing Entourage.js into my scripts directory like so:
Followed by my GA code afterwards.
Google Analytics can't analyse your log files, for that you'd need the paid version called Urchin. What you can do though is track clicks/interactions on links to files. You can track clicks in two ways, as virtual page views or as events. Generally speaking, event tracking would be the recommended way to track downloads.
I'm going to add another answer here too. Based on the Google Analytics documentation for their iOS and Android SDN, it's possible to send traffic events from non-webpages. Some people have figured out how to use this API to send traffic directly from your server-side server-side application code, so now you can use the Google Analytics API to send traffic events manually from your download handler. Here's a link to the relevant libraries depending on your framework of choice:
- (PHP) php-ga: http://code.google.com/p/php-ga/
- (.NET) google-gdata: http://code.google.com/p/google-gdata/
Update: The Google Analytics Measurement Protocol Developer Guide has instructions for issuing your own REST-style API calls to track whatever data you wish. This can include things like file downloads, calls to an API endpoint, or anything else.
May be common sense and so no one posted but I'll suggest it anyways.
You can create a confirmation page [auto download] that directs a download visitor to after the file has been clicked.It works for us because we only have a handful of files so might not work for all.
Example: Page to download application file is actually just a link to another page. This page has an action to automatically download file when page is fully loaded. We create an action in GA if a visitor reaches this page because visiting this page always auto downloads the file. We use wordpress and there are several free extensions that provide this functional and can be set up in under 5 minutes.
One item on our wish list is to be able and link the website download visitor to the GA installed within the application so we could see such metrics for installed or not.