Model traversing based compressed serialization of user interaction data and communication from a client-side application

US9779069B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9779069-B2
Application numberUS-201414170377-A
CountryUS
Kind codeB2
Filing dateJan 31, 2014
Priority dateJan 31, 2014
Publication dateOct 3, 2017
Grant dateOct 3, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system can effectively compress instrumentation data related to a page view on a client-side application thread (such as a web browser thread) and communicate the compressed data over the Internet to a server (such as an analytics server). Leading up to the compression, the system can include data scanning, code building, code encoding, and code serialization. The compression can run on a background thread of the client-side application, so that it does not interfere with other processes run by the client-side application. For example, a web worker can implement the code compression described herein.

First claim

Opening claim text (preview).

The invention claimed is: 1. A system comprising: a code scanner stored in a non-transitory medium executable by a processor, the code scanner configured to: run on a shared thread of a client-side application; scan a first document object model (DOM) of first content of a first page view and a second DOM of second content of a second page view, the second page view being an update to the first page view; and identify first instrumentation data within the scanned first DOM and second instrumentation data within the scanned second DOM; a data serialization device stored in the non-transitory medium and communicatively coupled to the code scanner, the data serialization device configured to: run on a first dedicated thread or the shared thread of the client-side application; and serialize the first instrumentation data and the second instrumentation data to generate first serialized instrumentation data and second serialized instrumentation data; a code compressor stored in the non-transitory medium and configured to: run on second dedicated thread of the client-side application; and compress the first serialized data and the second serialized data to generate first compressed serialized data and second compressed serialized data, respectively; and a cache configured to receive the second content from a content server and cache the second content before user interaction data associated with display of the second content is tracked, and wherein the cache is configured to receive and cache the second content simultaneously with at least one of: the code scanner scanning the first DOM, the data serialization device serializing the first instrumentation data, or the code compressor compressing the first serialized instrumentation data. 2. The system of claim 1 , wherein the shared thread is a first shared thread and wherein the system further comprises: a user interaction tracker communicatively coupled to the data serialization device, the user interaction tracker configured to: run on a second shared thread of the client-side application; track user interactions with user interface elements of the first content and the second content; derive the user interaction data from the tracked user interactions; and add the user interaction data to the instrumentation data. 3. The system of claim 1 , wherein the shared thread is a first shared thread and wherein the system further comprises: a code builder communicatively coupled to the code scanner and the data serialization device, the code builder configured to: run on a second shared thread of the client-side application; and build hierarchical representations of the first content and the second content according to the first DOM and the second DOM, respectively; and a communication interface communicatively coupled to the code compressor, the communication interface configured to: run on a third shared thread of the client-side application; and communicate the first compressed serialized data and the second compressed serialized data to an analytics server. 4. The system of claim 1 , wherein the instrumentation data includes one or more of the content data, page view data, user interaction data, and client-side application data. 5. The system of claim 1 , wherein the code compressor is configured to: compress the first serialized data and the second serialized data so that the compressed first serialized data and the second compressed serialized data are compatible with operations of a cached model layer and data layer associated with the page view, at least parts of the cached model layer and the data layer are hosted at the page view source. 6. The system of claim 1 , wherein the code scanner is configured to receive an indication of one or more sections of the first content to be tracked. 7. The system of claim 2 , wherein the user interactions include one or more of link views, page views, clicks on aspects of the page, and dwell times. 8. The system of claim 2 , wherein each shared thread of the client-side application is a foreground thread. 9. The system of claim 8 , wherein each dedicated thread of the client-side application is a background thread. 10. The system of claim 2 , wherein the shared threads are one thread, and wherein the dedicated threads are one thread. 11. The system of claim 1 , wherein at least one of the code scanner, the code builder, the data serialization device, the code compressor, and the communication interface is implemented with an interpreted computer programming language. 12. The system of claim 1 , wherein serialization is implemented with a format for serialization using human-readable text to transmit data objects including attribute-value pairs. 13. The system of claim 12 , wherein the format for serialization is JAVASCRIPT OBJECT NOTATION (JSON). 14. The system of claim 1 , wherein the code compressor is implemented through a web worker. 15. A method, comprising: on a first thread of a client-side application, scanning a first document object model (DOM) of first content of a first page view, resulting in first scanned instrumentation data; serializing the first scanned instrumentation data; on a second thread of the client-side application, compressing the serialized instrumentation data; caching second content received from a content server in a cache before user interaction data associated with display of the second content is tracked and simultaneously with at least one of: scanning the first DOM, serializing the first scanned instrumentation data, or compressing the serialized instrumentation data; and on the first thread of the client-side application, scanning a second DOM of the second content after caching the second content, resulting in second scanned instrumentation data. 16. The method of claim 15 , further comprising: identifying one or more anchors within the first scanned instrumentation data; building a hierarchical representation of the first content prior to the serializing, wherein the hierarchical representation includes the one or more anchors, and wherein the serialization includes serialization of the built hierarchical representation of the first content. 17. The method of claim 15 , further comprising: tracking user interactions with user interface elements within the first content; deriving user interaction data from the tracked user interactions; and adding the user interaction data to the first scanned instrumentation data. 18. The method of claim 15 , further comprising receiving an indication of one or more sections of the first page view to be tracked. 19. The method of claim 15 , further comprising communicating the compressed data to an analytics server. 20. A system, comprising: a means for scanning a first document object model (DOM) of first content of a first page view and a second DOM of a second content of a second page view, resulting in first scanned instrumentation data and second scanned instrumentation data, the means for scanning running on a first thread of a client-side application; a means for serializing the first scanned instrumentation data and the second scanned instrumentation data to generate first serialized instrumentation data and second serialized instrumentation data, respectively; a means for compressing the first serialized instrumentation data and the second serialized instrumentation, the means for compressing running on a second thread of the client-side application; and means for caching the second content received fro

Assignees

Inventors

Classifications

  • monitoring of user actions (tracking the activity of the user H04L67/535) · CPC title

  • Monitoring of systems including the internet · CPC title

  • wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data · CPC title

  • G06F40/146Primary

    Coding or compression of tree-structured data · CPC title

  • Event-based monitoring · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9779069B2 cover?
A system can effectively compress instrumentation data related to a page view on a client-side application thread (such as a web browser thread) and communicate the compressed data over the Internet to a server (such as an analytics server). Leading up to the compression, the system can include data scanning, code building, code encoding, and code serialization. The compression can run on a bac…
Who is the assignee on this patent?
Yahoo Holdings Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3438. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 03 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).