1. A method of providing analytics data for an application comprising: generating, by a processor, metrics regarding use of the application on a device, the metrics including data indicative of a plurality of states of the application and transitions between the states during execution of the application; comparing the metrics to a usage model for the application that indicates an expected set of states of the application and transitions between the states during execution of the application; determining that a difference between the metrics and the expected states and transitions indicated by the usage model exceeds a predetermined threshold; and providing the difference between the generated metrics and the expected states and transitions indicated by the usage model as analytics data.