# Patent

## Title
Aggregating user web browsing data

## Abstract

A system for aggregating a user's web browsing data which may include cookies placed on a user's computing device from various websites. The system receives authorization from a user to retrieve cookie and other data associated with the user. The system then accesses cookie data and personal data associated with the user. In some embodiments, the aggregation system communicates with websites that placed the cookie data on the user's computer to determine one or more characteristics of the user based on the cookie data (which may be understandable only by the placing website). The system may then provide the user's aggregated data or a portion thereof to requesting entities. The user may have access to a user interface which provides information about the user's aggregated data and allows the user to determine how much information to share with requesting entities.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority as a non-provisional application to U.S. Prov. Pat. App. No. 61/725,287, filed Nov. 12, 2012, which is hereby incorporated by reference in its entireties as if set forth herein.


BACKGROUND
A user on the Internet today may generate a significant amount of data through his browsing history and online activity. This data can be very valuable for data mining to determine, for example targeted advertising, product development strategies, and behavioral research. However, much of this data is distributed across multiple systems. For example, individual websites use cookies to track user activity online. However, due to the “Same Origin Policy” websites may not be permitted to retrieve cookies of unrelated websites, thus shielding cookie data of a user for one website from another website.
Additionally, some websites split data such that cookie data is stored on the user's computing device, whereas data associated with the cookie is stored at the website server. Thus, in addition to the cookie data stored at the user's device, a user's Internet use may result in a wide distribution of his information throughout the Internet, resulting in a large data footprint. For example, social networking sites, online retailers, and blogs or micro-blogs authored are a few sites that may also contain information about the user.
SUMMARY
One embodiment may comprise a computing system comprising one or more hardware computer processors and one or more storage devices. The storage devices configured to store software instructions configured to cause one or more hardware computer processors perform a number of operations. These operations may include receiving authorization from a user to retrieve a plurality of cookie data associated with the user and/or retrieving the plurality of cookie data stored on one or more computing devices associated with user. Each of the cookie data is associated with one or more websites visited by the user. Another operation may include determining one or more characteristics of the user based on each of the plurality of retrieved cookie data. The processors may also associate each of the determined one or more characteristics of the user with an identity of the user. In response to requests for information regarding the user, the processors may provide at least some of the one or more characteristics of the user or the plurality of cookie data to a requesting entity.
These and other features and advantages of embodiments will become apparent from the following description of embodiments. Neither this summary nor the following detailed description purports to define the invention.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows one embodiment of supercookie aggregation by a cookie data aggregation system in a networked environment.
FIG. 2A shows one embodiment of supercookie distribution by a cookie data aggregation system in a networked environment.
FIG. 2B shows another embodiment of supercookie distribution by a cookie data aggregation system in a networked environment.
FIG. 2C shows another embodiment of supercookie distribution by a cookie data aggregation system in a networked environment.
FIG. 3 is a block diagram illustrating example components of one embodiment of a cookie data aggregation system.
FIG. 4 is a diagram showing one embodiment of a supercookie data structure.
FIG. 5 illustrates a flowchart of one embodiment of a process for retrieving cookie data.
FIG. 6A illustrates an example of a user interface for managing a supercookie.
FIG. 6B illustrates another example of a user interface for managing a supercookie.
FIG. 6C illustrates another example of a user interface for managing a supercookie.
FIG. 7 illustrates another example of a mobile user interface for managing a supercookie.
FIG. 8 illustrates a flowchart of one embodiment of a process for generating, analyzing, and using a supercookie.



DESCRIPTION OF EMBODIMENTS
Embodiments of the disclosure will now be described with reference to accompanying figures. The terminology used in the description presented herein is not intended to be interpreted in any limited or restrictive manner, simply because it is being utilized in conjunction with a detailed description of certain specific embodiments of the disclosure. Furthermore, embodiments of the disclosure may include several novel features, no single one of which is solely responsible for its desirable attributes or which is essential to practicing the embodiments of the disclosure herein described.
Overview
A cookie data aggregation system, as discussed herein, comprises a computer system, such as a server, that implements methods of aggregating a user's web browsing data in a networked environment. The cookie data aggregation system can aggregate the cookies of the user, cookie data from various websites, personal data, and/or other data to create a “supercookie.” The supercookie can then be used by websites to tailor a customized website experience for the user. Because of the “Same Origin Policy”, a website may not have access to cookies from different websites about a user. However, the supercookie can provide this data to a website, thus allowing a better tailored, customized website experience for the user. For example, the user may be able to authorize use of his supercookie (and or portions of his supercookie) by particular websites in order to provide potentially valuable information to the websites that may not otherwise be available to the websites (and/or may require additional effort to obtain by the websites).
As a user browses the web and visits various websites, each website may generate a cookie and store it on the user's computing device, possibly as part of the website data. The cookie may allow the website to track a user's activity at the website. By tracking this activity, a website can better customize its webpages for a user. For example, a website can determine whether or not a user is “authenticated” or “logged in”, thus informing the website whether or not to provide webpages with sensitive information to the user. Additionally, the website can determine what advertisements to display to the user while he browses the website based on the cookie.
The cookie data aggregation system may access these cookies on one or more of the user's computing devices. The system may install cookie tracking software on a user device for this purpose. The software may then send cookies (or information regarding the cookies) from the user to a cookie data aggregation system (or the cookie data aggregation may occur on one of the user devices). Alternatively, a user could upload his cookies to the cookie data aggregation system. The cookie data aggregation system may also retrieve additional cookie data from the websites that generated the cookies retrieved by the system. For example, information in cookies may be coded by the website that placed the cookie, such that the coded data is useful only to the website that placed the cookie and has the key to decode the data. Thus, the cookie data aggregation system may obtain information associated with coded data in cookies from the cookie originator and/or some other entity that is configured to decode the cookie data. Further, the cookie data aggregation system may also retrieve personal data from the user via a user interface. The cookie data aggregation system may then combine the retrieved user cookies, the retrieved website data, and the personal data about the user to create a supercookie.
The supercookie can provide several benefits. First, the supercookie can associate the user with cookies that were previously made anonymous. Second, the supercookie can be used to create a user profile. Third, the supercookie may be used by various websites to better customize and tailor a website experience for the user. Fourth, the supercookie may be used to associate a user profile with access information from multiple devices.
Additionally, the multiple cookies may also be useful for tailoring a website experience for a user. The supercookie may also contain a user ID. This may allow anonymous cookies to now be associated with the user. In some embodiments, the supercookie data structure may include additional items. In other embodiments, the supercookie data structure may not include all of the above-mentioned items.
The cookie data aggregation system may push the generated supercookie back to the user. Now, when the user visits a website, the website may retrieve the supercookie from the user to better customize the website experience for the user. Alternatively, the generated supercookie may be stored at the cookie data aggregation system. In this case, a website may access the supercookie at the cookie data aggregation system to better customize a website experience for the user. The cookie data aggregation system and/or the website may request authentication from the user to store and/or access the supercookie for the user.
The cookie data aggregation system may provide a user interface to allow the user to view, modify, control usage rights, and perform other management functions associated with his supercookie. For example, the user may be able to view the personal information about him stored in the supercookie. This information may include the user's name, age, gender, music preferences, interests, hobbies, and/or other relevant personal information. The user may also be able to configure what type of information stored in the supercookie can be made available to various websites. For example, a supercookie may store personal, financial, and online retail website browsing information about the user. The user may be able to configure which of these types of information is available to different websites. These websites could include social media websites, financial websites, and online retail websites. For example, a user may want his financial information to be available to financial websites. However, the user may configure his supercookie such that his financial information cannot be seen by a social media website. Additionally, a user may configure his supercookie to make his personal information available to all websites.
System and Network Architecture
FIG. 1 shows one embodiment of a cookie data aggregation system 100 in a networked environment. In this embodiment, the cookie data aggregation system 100 may communicate with a user 110 over the network 120. User 110 discussed herein may refer to a computing device and/or an operator of the computing device. The actions performed by a user 110 may be performed automatically by a computing device without input from an operator, or may be performed based on input from an operator.
The cookie data aggregation system 100 may also communicate with one or more websites 140 (including 140A, 140B, and 140N) each with associated cookie data 135 (including 135A, 135B, and 135N). In this embodiment, the cookie data aggregation system 100 also has access to personal data 160 of the user 110, which the system 100 may use to create or supplement a supercookie 165 for the user 110. The business entity 170 may engage with the cookie data aggregation system 100 and can provide data and/or access the supercookies 165. In some embodiments, the cookie data aggregation system 100 may communicate with more devices and/or use more data to create supercookies 165 than what is shown in FIG. 1. In some embodiments, the cookie data aggregation system 100 does not communicate with all of the devices shown in FIG. 1. In some embodiments, the cookie data aggregation system 100 does not use all of the data shown in FIG. 1 to create supercookies 165.
In FIG. 1, the cookie data aggregation system 100 may be a server. Alternatively, the cookie data aggregation system 100 may be multiple computing devices working together to create a cookie data aggregation system 100.
Supercookie Generation
As shown in action 1 of FIG. 1, the cookie data aggregation system 100 may communicate with the user 110, such as to obtain authorization to access cookies on the user's computing device(s) and to create the supercookie 165. In some embodiments, the cookie data aggregation system may provide software to the user 110. This software may then track the cookies of the user 110 and transmit them to the cookie data aggregation system 100. In some embodiments, the cookie data aggregation system 100 downloads the user's cookies from the user 110. In some embodiments, the user 110 uploads his cookies to the cookie data aggregation system 100. In some embodiments, the user's cookies may be stored on a user device. In some embodiments, the user device may be a phone, PDA, laptop, desktop, tablet, and/or some other computing device. In some embodiments, the cookie data aggregation system 100 retrieves the user's cookies from the user's computing device.
In the embodiment of FIG. 1, the cookie data aggregation system 100 also may communicate with one or more websites to obtain cookie data, as shown in action 2. For example, the cookie data aggregation system 100 may communicate with website 140A to obtain cookie data 135 associated with the user 110. The cookies retrieved from user 110 may indicate that the cookie was generated by particular websites 140. As a result, the cookie data aggregation system 100 may communicate with corresponding websites 140 to retrieve further cookie data 135. For example, to decode information regarding information stored in a cookie placed on one of the user 110 devices by the website 140A. In this way the cookie data aggregation system 100 can detail what the cookie actually means. The cookie data 135 may include information not available in the cookie retrieved from the user 110. For example, the cookie data 135 may include information about the users activity and/or interactions with website 140, such as the number of times the user 110 visited the website 140, the amount of time or time spent on the website 140 during each visit and cumulatively, the trends and/or preferences noted about the user 110 when visiting website 140, the trends and/or preferences noted about visitors of website 140, website browsing or activity information or analysis related to website 140, and/or other useful information.
In some embodiments, the cookie data aggregation system 100 combines the personal data 160 with the retrieved cookies from the user 110 and the retrieved cookie data, for example cookie data 135A, 135B, and 135N as part of the supercookie 165 for user 110. The personal data 160 may include information about the user 110 that is not available in the retrieved cookies from the user 110 or the retrieved cookie data from the one or more websites. The personal data 160 may include user ID, date of birth, gender, occupation, education, and/or other relevant personal data. In some embodiments, the cookie data aggregation system 100 retrieves the personal data 160 from the user 110. In some embodiments, the user 110 inputs the personal data 160 to the cookie data aggregation system 100. In some embodiments, the cookie data aggregation system 100 stores the personal data 160 at the cookie data aggregation system 100. In some embodiments, the cookie data aggregation system 100 accesses the personal data 160 from a remote device.
The cookie data aggregation system 100 may communicate with the business entity 170, such as to obtain data to help generate a supercookie 165 about a user 110. The data obtained may include personal information about the user 110, web browsing information about the user 110, web browsing information about various websites, and/or web browsing information in general.
In the embodiment of FIG. 1, the cookie data aggregation system 100 may generate supercookie 165 based on retrieved cookies from the user 110, retrieved cookie data 135 from one or more websites 140, personal data 160, and/or data obtained from business entity 170. In some embodiments, the cookie data aggregation system 100 may use more or less data than what is shown on FIG. 1 to generate the supercookie 165. After the cookie data aggregation system 100 creates the supercookie 165, the cookie data aggregation system 100 may communicate with the user 110 to push the supercookie to the user 110. In some embodiments, the cookie data aggregation system 100 pushes the supercookie 165 to the user's device. In some embodiments, the user device may be a phone, PDA, laptop, desktop, tablet, and/or some other computing device.
In some embodiments, the cookie data aggregation system 100 may store the supercookie 165 of the user 110 at the cookie data aggregation system 100. In some embodiments, the cookie data aggregation system 100 may request authorization from the user 110 to store the supercookie 165 of the user 110 at the cookie data aggregation system 100.
Supercookie Distribution
Once the cookie data aggregation system 100 has generated the supercookie 165, the system 100 may allow the user 110 to access the supercookie 165, either by pushing the supercookie 165 to the user 110, allowing the user to pull the supercookie 165, or allowing the user 110 to access the supercookie via one or more browsers or applications. In some embodiments, the cookie data aggregation system 100 stores the supercookie 165 at the cookie data aggregation system 100. In some embodiments, the cookie data aggregation system 100 provides the supercookie 165 (or portions of the supercookie) to one or more websites 140 and/or the business entity 170 in response to requests for information regarding the user 110. In some embodiments, the cookie data aggregation system 100 requests authorization from user 110 before providing supercookie 165 to one or more websites and/or a business entity. Alternatively, the user 110 may have pre-authorized certain websites 140, groups of websites, types of websites, etc. to access certain portions of supercookie 165. In some embodiments, the cookie data aggregation system 100 notifies the user 110 when it provides the supercookie 165 to one or more websites and/or the business entity 170 and/or stores historical data regarding use of the user's supercookie.
In some embodiments, the cookie data aggregation system may communicate with one or more websites to provide access to supercookie 165 of the user 110 to one or more websites. In some embodiments, the one or more websites may request the cookie data aggregation system 100 to provide access to the supercookie 165.
The cookie data aggregation system 100 may also communicate with the business entity 170 to provide access to a supercookie 165 to the business entity 170. In some embodiments, the cookie data aggregation system requests authorization from the user 110 before granting business entity 170 access to the supercookie 165 of the user 110. Business entity 170 may refer to a company seeking information about users 110, for example. Instead of a website seeking a user's cookie data, a business entity 170 may be a marketing company interested in information about user 110 to identify a future sales opportunity, for example. A business entity 170 may request data from the cookie data aggregation system 100 in other manners than via a website request made to the business entity 170. For example, the business entity 170 may request data of the user 110 via a user interface provided by the cookie data aggregation system 100 that enables authorized entities to access profile data of users that is compiled from cookies. In some embodiments, the business entity 170 pays a fee for the service provided by the cookie data aggregation system 100 to provide access to the supercookie 165. In some embodiments, different amounts of fees are charged depending on the different types of access provided by the cookie data aggregation system 100 to the business entity 170. In some embodiments, no fee is charged by the cookie data aggregation system 100 for providing access to a business entity 170 to a supercookie. In some embodiments, the cookie data aggregation system 100 may obtain authorization from user 110 before granting a business entity 170 access to his supercookie.
FIGS. 2A, 2B, and 2C illustrate three methods by which a supercookie may be provided to a website by the cookie data aggregation system 100. In some embodiments of FIGS. 2A, 2B, and 2C, supercookie data is distributed to websites and business entities using fewer or additional actions than shown in the figures. In some embodiments, the cookie data aggregation system 100 may use more or less data than what is shown on FIGS. 2A, 2B, and 2C, and may communicate with additional or fewer resources than are shown in FIGS. 2A, 2B, and 2C. These figures are discussed with reference to sharing with a particular website (140B), but supercookie data may be similarly shared with other websites or business entities in a similar manner.
In other embodiments supercookie data may be provided to websites or business entities through different methods.
FIG. 2A depicts an example process for providing supercookie data to a website directly from the cookie data aggregation system. In this embodiment, the supercookie 165 is stored on the supercookie data aggregation system 100. In action 1 of FIG. 2A, the user 110 communicates with a website 140B. During the communication, the website 140B requests supercookie data regarding the user. In response, the user 110 provides the website 140B with a link to (and/or other identifier of) the user's supercookie 165 stored on the cookie data aggregation system 100. In some embodiments, the user 110 may provide a link to her supercookie without a request from the website 140B.
In action 2, the website 140B follows the link to access the user's supercookie 165 on the cookie data aggregation system 100. In some embodiments, the user 110 can determine how much supercookie data the website 140B can access. For example, the user 110 may provide a link which only provides access to the user's personal data, but does not provide access to the user's financial data. In other embodiments, the user 110 may provide only one link regardless of what information the user wants to share, but the cookie data aggregation system 100 only provides limited information to certain types of websites. For example, if the cookie data aggregation system 100 recognizes the website 140 as an online shopping website, then it will not provide financial information to the website. In other embodiments, providing the link to the website 140 provides the website with access to the entire supercookie 165.
In some embodiments of the process shown in FIG. 2A, the website 140B does not request supercookie access from user 110. Instead, the website 140B requests supercookie data directly from the cookie data aggregation system 100 when the user accesses the website. In such embodiments, cookie data aggregation system 100 may request authorization from user 110 before providing website 140B with access to supercookie 165. In some embodiments, the cookie data aggregation system may instead provide the supercookie, or part thereof, based on prior authorization from the user and/or default rules for providing supercookie data regarding the user.
FIG. 2B depicts another example process for providing supercookie data to a website from the cookie data aggregation system by first passing the supercookie data through the user 110. In this embodiment, the supercookie 165 is stored by the cookie data aggregation system 100. In action 1 of FIG. 2B, the user 110 accesses the website 140B, and the website requests a supercookie from the user. The user 110 responds by requesting his supercookie data from the cookie data aggregation system 100 in action 2, such as by the user's browser (or other software on the user's computing device) automatically requesting the supercookie data from the cookie data aggregation system 100 without user input. The cookie data aggregation system 100 then returns the supercookie 165 to the user 110.
In action 3, the user 110 provides the supercookie (or portions thereof) to the website 140B. In some embodiments the website 140B may request data from the user 110 other than the supercookie. The user may then request his supercookie and filter the supercookie data to respond to the website's request, or indicate to the cookie data aggregation system 100 which portions of the supercookie data should be returned to the user 110 in action 2. In some embodiments, the user 110 may only wish to provide some information to the website 140B. The user may do this by only requesting a limited amount of data from the cookie data aggregation system, or by only passing some of the information in his supercookie 165 along to the website 140B, for example.
FIG. 2C depicts another example process for providing supercookie data to a website 140B from the user. In this embodiment, the supercookie 165 is stored by the user 110. In this embodiment, the cookie data aggregation system aggregates data into a supercookie and provides the aggregated cookie to the user 110, but does not communicate directly with the website 140 when the website 140 requests access to the user's supercookie 165. In this embodiment, the supercookie is transmitted from the user 110 directly to the website 140B. The user 110 may transmit the supercookie 165 to the website 140B when the user 110 visits website 140B, either with an initial request for the website 140B and/or in response to a request from the website 140B for access to the user's supercookie. In some embodiments, the website 140B requests other cookies or personal data from the user instead of, or in addition to, requesting access to the supercookie. In action 1 of FIG. 2C, the user 110 provides access to the supercookie 165 (or portions thereof) to the website 140. In some embodiments, the user may determine how much data from supercookie 165 to provide to website 140.
In some embodiments, only one of the processes illustrated in FIGS. 2A, 2B, and 2C are used by the cookie data aggregation system 100 to distribute supercookie data. In some embodiments, two or more of the processes shown in FIGS. 2A, 2B, and 2C may be implemented by the user 110 and cookie data aggregation system 100. This may be done for a variety of reasons such as depending on the type of website site being accessed, or the type of device from which the user is accessing a website. For example, when the user is accessing a mobile website from a smartphone, the cookie data aggregation system 100 may provide supercookie data using the process shown in FIG. 2A, which may require fewer computing resources of the user's computing device and fewer communications from the user 110. This may advantageously conserve system resources for a smartphone, for example. However, if the user is accessing a website from a home desktop, the cookie data aggregation system may use the process shown in FIG. 2C, which may use more computing resources (e.g., memory, processor, etc.), but allows the user 110 more direct control of supercookie data that is provided to the website 140B. It will be understood that the preceding are only examples, and that any process may be used by any user device to provide the supercookie 165 to any website or computing device. In some embodiments, factors other than device type and website type determine which process is used to provide supercookie data to a requesting entity. For example, the user 110 or cookie data aggregation system 100 may determine which process to use based on the type and amount of data requested by a website 140.
Cookie Data Aggregation System
FIG. 3 is a block diagram illustrating an embodiment of the cookie data aggregation system 100. In this embodiment, the cookie data aggregation system 100 may include a user cookie retrieval module 310, a server cookie data retrieval module 320, a data matching and aggregation module 330, a supercookie management module 340, a supercookie access module 350, a CPU 360, a Storage Device 370, and a Memory 380. In some embodiments, the cookie data aggregation system 100 comprises fewer or additional modules than shown in FIG. 3.
In the embodiment of FIG. 3, the user cookie retrieval module 310 is configured to access and/or retrieve cookies from the user 110 over the network 120. The cookies retrieved by module 310 may then be used by data matching and aggregation module 330. The cookies for the user 110 may be stored at a user computing device, such as a laptop, desktop, PDA, phone, tablet, or some other computing device that can browse the Internet. In some embodiments, the user cookie retrieval module 310 obtains authorization from the user 110 before retrieving the cookies. In some embodiments, the user cookie retrieval module 310 downloads cookies from the user 110 to the cookie data aggregation system 100. In some embodiments, the user cookie retrieval module 310 sends a prompt to a user 110 to upload cookies to the cookie data aggregation system 100. In some embodiments, the user cookie retrieval module 310 receives uploaded cookies from user 110. In some embodiments, the cookie data aggregation system 100 provides the user 110 with cookie tracking software to install on his user device. The cookie tracking software may then communicate with user cookie retrieval module 310 to transmit cookies for the user 110 to the cookie data aggregation system 100. In some embodiments, the user cookie retrieval module 310 may be used to handle other issues related to retrieving cookies from a user 110.
In this embodiment, the server cookie data retrieval module 320 is configured to retrieve cookie data from a website, such as the website that caused the cookie to be stored on the user's computing device. The cookie data retrieved from website 140 may provide information indicating the meaning of encoded information located in a cookie stored on one or more of the user devices. The cookie data retrieved by module 320 may then be used by data matching and aggregation module 330. In some embodiments, the server cookie data retrieval module 320 may be used to handle other issues related to retrieving cookie data from the server.
The data matching and aggregation module 330 may be configured to consolidate data and aggregate various cookies, cookie data, and personal data to generate a supercookie. In some embodiments, the data matching and aggregation module 330 may be used to handle other issues related to data matching and aggregation.
The supercookie management module 340 may be configured to provide user 110 a user interface to manage his supercookie 165. The supercookie management module 340 may be used when a user 110 wants to access the cookie data aggregation system 100 to manage his cookie data or generate the supercookie 165. For example, the user 110 may want to update his cookie profile, update the information about the websites he visited, configure settings for what type of supercookie information is available to various websites, and/or delete the data from the cookie. In some embodiments, the supercookie management module 340 may be used to handle other issues related to supercookie management.
Supercookie access module 350 may be used by the cookie data aggregation system 100 to provide access to supercookies to various parties, such as a business entity 170, websites 140, and/or user 110. As discussed above with reference to FIGS. 2A-2C, supercookie data may be delivered in various manners, such as pushing the supercookie to the user 110, pushing a supercookie link to the user 110, and/or storing the supercookie data at the aggregation system 100.
In some embodiments, the module 350 grants access to one or more websites to the supercookie 165, which may be stored at the cookie data aggregation system 100 and/or the user 110. In some embodiments, the module 350 requests authorization from user 110 prior to granting access to one or more websites to the supercookie 165 for user 110. In some embodiments, the module 350 pushes the supercookie 165 to one or more websites requesting the supercookie 165. In some embodiments, the module 350 requests authorization from user 110 prior to pushing the supercookie 165 to the one or more websites. In some embodiments, the supercookie access module 350 may charge fees to business entities 170, websites, or other entities requesting access to supercookie data. In some embodiments, the supercookie access module 350 may be used to handle other issues related to supercookie access.
In one embodiment, the cookie data aggregation system 100 includes one or more central processing unit (“CPU”) 360, which may each include a conventional or proprietary microprocessor. The modules discussed herein may be stored on any type of non-transitory computer storage device 370, such as hard drives, solid state memory, optical disc, and/or the like. The cookie data aggregation system 100 further includes one or more memory 380, such as random access memory (“RAM”) for temporary storage of information, one or more read only memory (“ROM”) for permanent storage of information, such as the module discussed herein.
Supercookie Structure
FIG. 4 illustrates an example supercookie data structure 165. The super cookie data structure 165 may include a user ID 410, aggregated data 420, user device IDs 480, and one or more cookies 430, which may include cookie data retrieved from corresponding websites regarding information in the cookies. Each cookie 430 may include a website 440, a user ID 450, data records 460, a timestamp 470 and/or associated device IDs 490 of devices which have visited the site. In some embodiments, the cookies 430 include fewer or additional fields than displayed in FIG. 4. In some embodiments, the supercookie 165 includes more items than what is displayed FIG. 4. In some embodiments, the supercookie 165 does not include all of the items displayed in FIG. 4. In some embodiments, the supercookie 165 includes a digital certificate.
The supercookie 165 can be used by external websites 140 to analyze behavior of the user 110. Based on this analysis, the websites 140 can tailor a customized experience for the user 110 when he visits the website 140. The supercookie 165 also allows one or more anonymous cookies 430 to be associated with the user 110. For example, the cookie data aggregation system 100 may receive some anonymous cookies from the user 110 when it is collecting cookie data from one of more computing devices of the user 110. Because the cookie data aggregation system 100 knows the identity of the user (e.g., from profile information provided by the user 110 when setting up an account with the cookie data aggregation system 430 and/or from information in other cookies), the system can associate the anonymous cookie with the user 100.
The supercookie 165 may also serve as authorization for user 110 when the user 110 visits a website, such as website 140. This may allow the user 110 to visit the website 140 without entering in his login information. For example, a user may access a website 140 which requires login information from the user 110. The user 110 may automatically provide a link to the website 140 which leads to the user's supercookie 165. The supercookie 165 may then authenticate the user 110 to the website 140 without requiring the user 119 to enter login information.
The supercookie 165 may also include aggregated data 420. The supercookie 165 aggregates data from various sources, such as one or more cookies 430, personal data, or other data. By aggregating data from various sources, the supercookie 165 may provide better data about a user 110 to a website 140 for modeling purposes. Aggregated data 420 may include common data about a user found in multiple cookies 430, a combination of different data found in multiple cookies 430, information based on the analysis of data found in multiple cookies 430, and/or other types of data. Aggregated data 420 may include data about a user 110, such as websites visited, time spent at each website, cumulative time spent at all visited websites, preferences, and/or other data.
The supercookie 165 may include one or more cookies 430. The one or more cookies 430 may be retrieved by the cookie data aggregation system 100 from the user 110. Each cookie 430 may include the website 440 that generated the cookie 430, a user ID 450, data records 460, the timestamp 470, and/or the device ID(s) 490 of the device(s) that accessed the site. In some embodiments, the cookie 430 does not have the user ID 450, and is instead anonymous. In some embodiments, the user ID 450 is encrypted. The data records 460 may include data about a user 110 while visiting the website 440, such as the time spent at the website 440, number of times the website 440 was visited, activities done on the website 440, and/or other data. The timestamp 470 may represent the time when the cookie 430 was stored on the device of the user 110. Alternatively, the timestamp 470 may represent the time when the cookie 430 was created. In some embodiments the cookie 430 does not contain data on an associated device ID 490. In other embodiments, cookie 430 contains multiple device IDs, for example, corresponding to multiple devices which have accessed website 440 with the same account.
Examples of Process Flow
FIG. 5 illustrates an embodiment of a process for retrieving cookie data to generate a supercookie 165. The method 500 may be executed by the cookie data aggregation system 100 and/or other suitable computing device on an ongoing or periodic basis. Alternatively, the method 500 may be initiated by a user 110 to be executed once. In some embodiments, the method 500 requires authorization from the user 110.
At block 510, the cookie data aggregation system accesses and/or retrieves cookies 430 from one or more devices of the user 110. The cookie data aggregation system 100 may then analyze and parse the retrieved cookies 430 from the user 110, as seen in block 520. The cookie data aggregation system 100 may do this analysis and parsing in order to determine which website 140 placed respective cookies on the user's devices and/or to extract data from the cookies. Next, the cookie data aggregation system 100 retrieves website cookie data, as seen in block 530. For example, website cookie data may include information not available in the cookie retrieved from the user 110, such as the activities of user 110 on the website. Website cookie data may also include information about a cookie that must be decoded by the website 140 which placed the cookie. In some embodiments, the supercookie data aggregation system 100 can request information from the website 140 on how to decode its cookies. Once the supercookie data aggregation system 100 has an algorithm for decoding cookies from a website 140, it may decode a user's cookies using its own systems. In other embodiments, the supercookie data aggregation module 100 may send encoded cookies to the websites 140 which generated the encoded cookies for the website to decode. For example, this may be necessary if the website will not provide instruction for decoding its cookies. Cookies may be decoded by anything from a simple lookup table (e.g., identifiers in particular fields of a cookie are matched to corresponding characteristics of the user) to encrypted data (e.g., encryption algorithms are used by the website 140 to decode raw information in the cookie in order to determine characteristics of the user). The cookie data aggregation system 100 may retrieve website cookie data from multiple websites, depending on how many different websites were responsible for the cookies 530 retrieved from the user 110.
Next, the cookie data aggregation system 100 may aggregate the cookies retrieved and the website cookie data, as seen at block 540. As discussed in reference to FIG. 4, the cookie data aggregation system 100 may aggregate data determined from multiple websites, such as data about a user found in cookies 430, website cookie data received from websites (or determined based on mapping or decoding information from the websites, such as data indicating the meaning of cookie data), actual cookies, device IDs, and/or other types of data. The cookie data aggregation system 100 may then combine the aggregated cookie data with personal information about the user 110, as seen at block 550. Finally, the cookie data aggregation system 100 may generate and store a supercookie 165, as seen in block 560. The supercookie 165 may be stored at the cookie data aggregation system. Alternatively, the supercookie 165 may be stored at the user device from which the cookies 430 were retrieved and/or at some other storage device. Depending on the embodiment, the method of FIG. 5 may include fewer or additional blocks and/or the blocks may be performed in an order different than illustrated.
User Interfaces
FIGS. 6A, 6B and 6C show example supercookie user interfaces for a user 110 to manage his supercookie 165. FIG. 6A displays an embodiment of a supercookie user interface 600 comprising a software installation button 610, cookie profile section 620, recent activity section 630, and supercookie settings section 640. In some embodiments, the user interface has additional text, graphics, links, buttons, and/or other items to provide the user 110 more information about his supercookie 165.
In the illustrated embodiment of FIG. 6A, the user 110 may install cookie tracking software by selecting the software installation button 610. Selecting this button may cause the cookie data aggregation system 100 to install cookie tracking software for the user 110 on a user device. The software may then track user cookies and send them to the cookie data aggregation system 100 to update the supercookie 165 for user 110. In some embodiments, no option is provided to install cookie tracking software. In some embodiments, the user 110 uploads his cookies to the cookie data aggregation system 100. In some embodiments, an option is provided to the user 110 for the cookie data aggregation system 100 to download the user's cookies from the user 110.
For the illustrated embodiment of FIG. 6A, the user 110 can view his cookie profile by looking at the cookie profile section 620. In the pictured embodiment, the cookie profile section 620 may include one or more cookie profile data 621 and associated cookie profile entry modification links 622. Each cookie profile data 621 may correspond to a type of information. For example, in the pictured embodiment, the first cookie profile data corresponds to the name of the user 110, which is “John Doe”. The second cookie profile data 621 corresponds to age, which in this case is 27 years. The third cookie profile data 621 corresponds to the user's music preference, which in this case is country. In some embodiments, more cookie profile data are displayed than what is shown in FIG. 6A. In some embodiments, different types of data are presented in the cookie profile section 620 than what is shown in FIG. 6A. For example, cookie profile section 620 may include information about the user 110, such as personal information, web browsing information, website activity information, and/or other relevant information. In one embodiment, the website from which each piece of data in section 620 was obtained may also be indicated, either in the interface 600 or in a pop-up or other user interface that provides further details. This information may be useful for the user 110 to determine which websites have accurate (and inaccurate) information regarding the user.
The cookie profile data may also include a cookie profile entry modification link 622. A user 110 can select the cookie profile entry modification link 622 to alter the corresponding cookie profile data 621. In some embodiments, the cookie profile data 621 cannot be modified, and thus a cookie profile entry modification link 622 is not provided.
The illustrated embodiment of FIG. 6A also shows that the user 110 can view recent activity associated with this supercookie 165 by looking at the recent activity section 630. The recent activity section 630 includes recent activity data 631, recent activity entry details link 632, and recent activity entries deletion link 633. The recent activity section 630 includes information about the latest websites (or other entities) that have requested and/or received access to portions of the supercookie, whether in response to the user visiting the respective website or the entity simply requesting information regarding the user for some other purpose (regardless of whether the user visits a website of the entity). In some embodiments, more or less recent activity text information is displayed than what is shown in FIG. 6A. In some embodiments, a timestamp including the time and/or date of when the user 110 last visited the website is included as part of a recent activity entry 631.
The recent activity entry details link 632 allows the user 110 to click on the link to get more information about the recent access to the user's supercookie. This information may include a timestamp, duration, information accessed, number of times the website has been visited, general information about the website, and/or other relevant information. In some embodiments, the recent activity entry details link 632 may not be included. The recent activity entry deletion link 633 allows a user to delete a recent activity entry 631. In some embodiments, the recent activity entry deletion link 633 is not provided. In some embodiments, the recent activity entries 631 may not be deleted.
Supercookie user interface 600 also includes supercookie settings section 640. In the pictured embodiment of FIG. 6A, the supercookie settings section 640 allows a user 110 to designate which types of supercookie information he may choose to make available and for which types of websites. In the displayed embodiment of FIG. 6A, the user 110 is able to select whether personal, financial, and/or shopping supercookie information are available or hidden for social networking, financial, and online retail websites. The information being made available may be information stored in the supercookie 165. In some embodiments, the user can configure different types of information to be made available or hidden for different types of websites.
In some embodiments, the user may have options to configure supercookie settings for different items. In some embodiments, check boxes, radio buttons, text boxes, or other types of user input may be used to determine the selections of the user 110 for configuring his supercookie 165. In some embodiments, the type of information category, such as personal, financial, and/or shopping, may be a link to the specific information that can be displayed or hidden. For example, the category “personal” shown in FIG. 6A may be a link such that clicking on “personal” will display the personal information of the supercookie 165 that could be displayed or hidden to various websites.
FIGS. 6B and 6C illustrates other examples of user interfaces for managing a supercookie. In addition to certain elements displayed in FIG. 6A, the embodiment in FIGS. 6B and 6C also include a register new device button 611, different data about information use in the recent activities section 630, and additional configurability in supercookie settings section 640.
Users may desire to have their supercookie profile accessible when accessing websites from multiple devices, such as the user's mobile phone, notebook computer, and desktop computer. This may allow the user to maintain the same settings for webpages when accessed from multiple devices. Additionally, this may prevent a user from needing to enter the same information through multiple devices. As illustrated in the embodiments of FIGS. 6B and 6C, the user has a single supercookie profile that automatically updates with new cookies and personal information from websites accessed by the user from any devices registered to the user.
In one embodiment, the user may register a new device to his supercookie profile by selecting the register new device button 611. For example, if a user bought a new tablet, his tablet would not have any of his personal information, and websites will not recognize him so he will have no saved preferences on the websites. However, if he already has a supercookie profile he can simply go to his supercookie management console and register his new device. Then his tablet will provide his supercookie anytime a website requests it (based on rules for providing the supercookie to various websites, for example). When he accesses websites with his tablet's browser, he can interact with the website in the same way as though he had accessed it through any of his devices which share a supercookie. In some embodiments, the user is able to configure personalized names for his registered devices. In other embodiments, the system automatically generates a name for new devices.
FIGS. 6B and 6C display more information in addition to the information displayed in the recent activities section 631 shown in FIG. 6A. The recent activities section includes a timestamp 635, a device used entry 634, and an information shared entry 636. In some embodiments recent activities data 631 includes additional or fewer pieces of information than in FIGS. 6B and 6C. Timestamp 634 displays a time of access for a recent use, but may include information on previous uses also. The timestamp 634 may refer to the time the user accessed a website, the time the supercookie was accessed, or any other time relevant to the use of the user's information. Device used data 634 indicates the device associated with the use of the supercookie's information. For example, in FIG. 6B, the website ‘Social App #1’ was accessed by the user's ‘mobile’ device. Information shared data 636 indicates what information was shared with the website. For example, in FIG. 6B, the supercookie system shared ‘personal’ and ‘shopping’ information with ‘Online Store #3’.
FIGS. 6B and 6C also demonstrate increased user configurability. In FIGS. 6B and 6C, the user has the added ability to control which information is shared based on which device is accessing a website. In supercookie setting section 640B and 640C (FIGS. 6B and 6C, respective) the user can select which information is shared with which type of website for each of the registered devices. The user can first select a device in device selection tabs 645. The supercookie management console 600 may then display the current settings for that device. For example, in FIG. 6B the user has selected the ‘Home PC’ tab so the supercookie setting section 640B indicates setting for sharing when sites are accesses from his ‘Home PC’. However, in FIG. 6C, the user has selected his ‘mobile’ tab so the supercookie setting section 640C indicates how supercookie information is to be shared when accessing websites from the ‘mobile’ device. In the example of FIG. 6C, the user has selected not to share his financial information with any types of websites from his mobile phone. In some embodiments the system may recommend which information to share in different circumstances, for example, based on the user's security needs. In other embodiments the user may not be able to change his information sharing settings. For example, the settings on which information to share may be preset by the system.
In some embodiments, the supercookie user interface 600 may include more information and/or options for the user 110 than what is shown in FIG. 6A, 6B, or 6C to provide the user 110 more control over configuring and viewing his supercookie 165. In some embodiments, the supercookie user interface 600 may not include all of the information displayed in FIG. 6A. In some embodiments, the supercookie user interface 600 may include different information from what is displayed in FIG. 6A. The categories of information shared and website types are used for example purposes only. In other embodiments the information shared and website types may be categorized in any way that is beneficial to the user, the supercookie management system, or both.
FIGS. 6A, 6B, and 6C show embodiments of a user interface which a user can access through his browser to manage his supercookie. In other embodiments, the user interface may be accessed in other manners. For example, a user interface may be accessed through the user's browser, as a mobile website, a mobile app, a standalone application, or in other embodiments that allow a user to access information about his supercookie.
FIG. 7 illustrates an embodiment of a mobile app which allows a user to change his information sharing preferences as in supercookie settings section 640, discussed above with reference to FIGS. 6A-6C. In this embodiment, the mobile app provides the user with his personal information and allows the user to install cookie tracking software on his mobile device, or register his mobile devices as a new device. In other embodiments, a mobile app may display information about recent activity or profile information. In some embodiments, a user may also receive an alert if his supercookie is accessed from a new unregistered device.
Examples of Process Flow
FIG. 8 illustrates one embodiment of a process for generating, using, and analyzing a supercookie 165.
First, at block 810, the cookie data aggregation system 100 may generate the supercookie 165. Once generated, the cookie data aggregation system 100 may push the supercookie 165 to the user 110, as shown at block 820 (this block is optional as in some embodiments the supercookie is only maintained by the system 100). In some embodiments, the cookie data aggregation system 100 notifies the user 110 that the supercookie 165 is being pushed to the user 110. In some embodiments, the cookie data aggregation system 100 receives authorization to generate the supercookie 165, but does not notify the user 110 when it pushes the supercookie 165 to the user 110.
At block 830, a website 140 requests access to some/all of the supercookie 165. In some embodiments, the supercookie 165 is accessed directly at the system 100, while in other embodiments the user 110 provides the requested (and authorized) supercookie information to the requesting website. In some embodiments, the requesting website accesses the supercookie 165 after receiving authorization from the user 110.
At block 840, once the website's request for the supercookie 165 has been granted, the website may apply a behavioral model to the supercookie 165. By applying the model, the website can determine the behavior of the user 110 based on the cookie data compiled from multiple sites, as shown at block 850. Based on the behavioral model results, the website may customize content to the user and/or otherwise use the supercookie information. In some embodiments, the method to generate, use, and analyze a supercookie 165 may include more actions than what is shown in FIG. 8. In some embodiments, the method to generate, use, and analyze a supercookie 165 may not include all of the actions shown in FIG. 8.
Other
Each of the processes, methods, and algorithms described in the preceding sections may be embodied in, and fully or partially automated by, code modules executed by one or more computer systems or computer processors comprising computer hardware. The code modules may be stored on any type of non-transitory computer-readable medium or computer storage device, such as hard drives, solid state memory, optical disc, and/or the like. The systems and modules may also be transmitted as generated data signals (e.g., as part of a carrier wave or other analog or digital propagated signal) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums, and may take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). The processes and algorithms may be implemented partially or wholly in application-specific circuitry. The results of the disclosed processes and process actions may be stored, persistently or otherwise, in any type of non-transitory computer storage such as, e.g., volatile or non-volatile storage.
All of the methods and tasks described herein may be performed and fully automated by a computer system. The computer system may, in some cases, include multiple distinct computers or computing devices (e.g., physical servers, workstations, storage arrays, etc.) that communicate and interoperate over a network to perform the described functions. Each such computing device typically includes a processor (or multiple processors) that executes program instructions or modules stored in a memory or other computer-readable storage medium. Where the system includes multiple computing devices, these devices may, but need not, be co-located. The results of the disclosed methods and tasks may be persistently stored by transforming physical storage devices, such as solid state memory chips and/or magnetic disks, into a different state.
The various features and processes described above may be used independently of one another, or may be combined in various ways. All possible combinations and subcombinations are intended to fall within the scope of this disclosure. In addition, certain method or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described blocks or states may be performed in an order other than that specifically disclosed, or multiple blocks or states may be combined in a single block or state. The example blocks or states may be performed in serial, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.
Conditional language used herein, such as, among others, “can,” “could,” “might,” “may,” “e.g.,” and the like, unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or actions. Thus, such conditional language is not generally intended to imply that features, elements and/or actions are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without author input or prompting, whether these features, elements and/or actions are included or are to be performed in any particular embodiment. The terms “comprising,” “including,” “having,” and the like are synonymous and are used inclusively, in an open-ended fashion, and do not exclude additional elements, features, acts, operations, and so forth. Also, the term “or” is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term “or” means one, some, or all of the elements in the list. Conjunctive language such as the phrase “at least one of X, Y and Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to convey that an item, term, etc. may be either X, Y or Z. Thus, such conjunctive language is not generally intended to imply that certain embodiments require at least one of X, at least one of Y and at least one of Z to each be present.
While certain example embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the disclosure. Thus, nothing in the foregoing description is intended to imply that any particular element, feature, characteristic, action, module, or block is necessary or indispensable. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions disclosed herein. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of certain of the inventions disclosed herein.
It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure.

## Claims

1. A computing system comprising:
one or more hardware computer processors;
one or more storage devices configured to store software instructions executable by the one or more hardware computer processors to cause the computing system to:
receive authorization from a user to retrieve a plurality of cookie data associated with the user;
retrieve the plurality of cookie data stored on one or more computing devices associated with the user, wherein respective cookie data of the plurality of the cookie data are associated with a corresponding plurality of websites visited by the user;
for each of the plurality of cookie data retrieved:
identify encoded information in the cookie data;
parse the cookie data to identify a website of the corresponding plurality of websites that initiated storage of the cookie data;
communicate with the website to obtain decoding instructions associated with website cookie data from the particular website;
decode, based on the decoding instructions, the encoded information in the cookie data;
determine one or more characteristics of the user based on the decoded information in the website cookie data; and
associate the one or more characteristics of the user with an identity of the user;

in response to requests for information regarding the user, provide at least some of the one or more characteristics of the user or the plurality of cookie data to a requesting entity.

2. The computing system of claim 1, wherein the software instructions are further configured to cause the computing system to:
access personal information of the user; and
generate a supercookie comprising:
the personal information of the user;
at least two characteristics of the user determined based on cookie data associated with a corresponding at least two websites; and
website cookie data associated with each of the corresponding at least two websites.

3. The computing system of claim 1, wherein the requesting entity is a website or a business entity.

4. The computing system of claim 1, wherein one of the requests for information regarding the user is triggered by the user requesting access to a website of the requesting entity.

5. The computing system of claim 1, wherein the software instructions are further configured to cause the computing system to charge a fee to the requesting entity.

6. The computing system of claim 1, wherein the software instructions are further configured to cause the computing system to track computing devices associated with a user.

7. The computing system of claim 1, wherein the software instructions are further configured to cause the computing system to track cookies associated with a user to retrieve new or updated cookies and the website cookie data.

8. The computing system of claim 1, wherein the software instructions are further configured to cause the computing system to:
provide a user interface displaying information regarding a user's cookie data and cookie data usage;
wherein the user interface is configured to allow a user to change cookie data sharing settings.

9. The computing system of claim 2, wherein the software instructions are further configured to cause the computing system to apply a behavioral model to data stored in the supercookie.

10. The computing system of claim 8 wherein the software instructions are further configured to cause the computing system to provide the user with an option to select different cookie data sharing setting for different devices associated with the user.

11. The computing system of claim 8 wherein the user interface is configured to be displayed on a mobile computing device.

12. The computer system of claim 1, wherein the website cookie data is encoded.

13. A method for compiling cookie data associated with a user, the method comprising:
receiving authorization from the user to retrieve a plurality of cookie data associated with the user;
retrieving the plurality of cookie data stored on one or more computing devices associated with the user, wherein respective cookie data of the plurality of the cookie data are associated with a corresponding plurality one or more of websites visited by the user;
for each cookie data in a subgroup of the plurality of cookie data retrieved:
parsing the cookie data to identify a website associated with storing the cookie data on one or more computing devices of the user;
determining if the parsed cookie data includes encoded information;
if the parsed cookie data includes encoded information:
communicating with the website to obtain decoded website cookie data; or
communicating with the website to obtain decoding instructions for decoding encoded website cookie data associated with the web site, and decoding the encoded website cookie data based at least partly on the decoding instructions;

determining one or more characteristics of the user based on at least one of the cookie data or the decoded website cookie data; and
generating a supercookie including one or more characteristics of the user determined from at least one of the cookie data or the decoded website cookie data;

in response to requests for information regarding the user, providing at least some of the one or more characteristics of the user from the supercookie.