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 a first portion of the metrics for which a difference between the first portion of the metrics and the expected states and transitions indicated by the usage model exceeds a predetermined threshold and a second portion of the metrics for which a difference between the second portion of the metrics and the expected states and transitions indicated by the usage model is within the predetermined threshold; choosing the first portion of the metrics to be reported to an external device responsive to determining the difference between the first portion of the metrics and the expected states and transitions indicated by the usage model exceeds the predetermined threshold; and transmitting to the external device the first portion of the metrics in response to a determination that the generated metrics correspond to at least a predetermined length of time.