I was going to use Google Analytics, but it's driven by page views, and there is only 1 page in my app. Everything else is dynamic.<p>Is there another solution?
Using something like Mixpanel, you should be able to track anything that happens in your JavaScript code. However, it's not just a insert-a-script-and-sit-back solution; you have to be diligent about the actions you want to track and actually add code to track them as they happen.
Google Analytics might meet your needs if you script Events into your app.<p><a href="https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide" rel="nofollow">https://developers.google.com/analytics/devguides/collection...</a>
This is a hard question to answer in the abstract. What are the top 2-3 questions you want to answer?<p>If it's about understanding the users of your app and what they look like, GA probably wouldn't be a good choice even if you didn't have a single page app because it's tailored for tracking activity across all users, not activity broken down by user. (For instance, it's good at answering the question, "Which feature gets the most usage?" not, "Which feature is used by the most people?" and that's an important difference.)<p>Many analytical tools claim they can answer the latter question, but look for example use cases to make sure they're answering the right question. A little research up front can save you the time of integrating a service only to find it doesn't answer the questions you want answered.
"Is there another solution?"
You could definitely start building some simple analytic functions into your product (even writing text files on your backend when some user behavior happen will work). Be flexible and focus on priority. It might be helpful to learn some linux commands like awk to quickly analyze your data. But this question depends much on your exact needs.