A computer implemented method for evaluating interactions with a user interface of a native application running on a user device comprising: receiving from the user device a plurality of frame bundles for a user session with the native application, wherein each frame bundle comprises, for each of one or more frames representing a respective state of the user interface of the native application at a respective point in time, data specifying i) a layout of presentation objects used by the native application to generate the user interface of the native application at the respective point in time, wherein the layout of the presentation objects specifies a location of each presentation object, each presentation object being an object that generates a visual representation of itself within a portion of the user interface, and ii) for one or more of the presentation objects, one or more drawing operations performed to generate the visual representation of the one or more presentation objects; and generating, based on the data specified by the plurality of frame bundles, playback data that presents visual changes of the user interface corresponding to the drawing operations performed to generate the visual representation of each presentation object, wherein generating the playback data comprises redrawing the frames included in the frame bundles for the user session using the data specifying i) the layout of presentation objects in the frame and ii) the drawing operations used to generate each presentation object in the frame such the playback data represents a real-time playback of the user session, the redrawing comprising, for each frame, i) identifying each presentation object for the frame and ii) rendering each presentation object at a respective location in a canvas based on drawing operations used to generate each presentation object as specified by the data in the frame bundle for the frame. receiving from the user device a plurality of frame bundles for a user session with the native application, wherein each frame bundle comprises, for each of one or more frames representing a respective state of the user interface of the native application at a respective point in time, data specifying i) a layout of presentation objects used by the native application to generate the user interface of the native application at the respective point in time, wherein the layout of the presentation objects specifies a location of each presentation object, each presentation object being an object that generates a visual representation of itself within a portion of the user interface, and ii) for one or more of the presentation objects, one or more drawing operations performed to generate the visual representation of the one or more presentation objects; and i) a layout of presentation objects used by the native application to generate the user interface of the native application at the respective point in time, wherein the layout of the presentation objects specifies a location of each presentation object, each presentation object being an object that generates a visual representation of itself within a portion of the user interface, and ii) for one or more of the presentation objects, one or more drawing operations performed to generate the visual representation of the one or more presentation objects; and generating, based on the data specified by the plurality of frame bundles, playback data that presents visual changes of the user interface corresponding to the drawing operations performed to generate the visual representation of each presentation object, wherein generating the playback data comprises redrawing the frames included in the frame bundles for the user session using the data specifying i) the layout of presentation objects in the frame and ii) the drawing operations used to generate each presentation object in the frame such the playback data represents a real-time playback of the user session, the redrawing comprising, for each frame, i) identifying each presentation object for the frame and ii) rendering each presentation object at a respective location in a canvas based on drawing operations used to generate each presentation object as specified by the data in the frame bundle for the frame. i) identifying each presentation object for the frame and ii) rendering each presentation object at a respective location in a canvas based on drawing operations used to generate each presentation object as specified by the data in the frame bundle for the frame.