# Patent

## Title
Methods and apparatus to identify session users with cookie information

## Abstract

Methods and apparatus are disclosed to identify session users with cookie information. An example method includes identifying a most recently used cookie based on a comparison of timestamps associated with a plurality of cookies, comparing an identifier of the most recently used cookie to a cookie table, the cookie table associating cookies with the plurality of different users, and when the identifier of the most recently used cookie is associated with one of the plurality of different users, associating subsequent usage activity of the computing device with the one of the plurality of different users.

## Background
RELATED APPLICATION
This patent arises from a continuation of U.S. patent application Ser. No. 14/641,982, filed on Mar. 9, 2015, issued as U.S. Pat. No. 9,232,014, on Jan. 5, 2015, which is a continuation of U.S. patent application Ser. No. 13/396,071, filed on Feb. 14, 2012, issued as U.S. Pat. No. 9,015,255, on Apr. 21, 2015, both U.S. patent application Ser. No. 14/641,982 and U.S. patent application Ser. No. 13/396,071 are hereby incorporated herein by reference in their entirety.


FIELD OF THE DISCLOSURE
This disclosure relates generally to audience measurement, and, more particularly, to methods and apparatus to identify session users with cookie information.
BACKGROUND
Establishment of demographically selected household panelists allows market researchers an opportunity to collect behavior data of an audience and to project the occurrence of one or more such behaviors to a larger population. Household panelist data allows statistically significant projections that correspond to various types of consumer behavior including, but not limited to television exposure behavior, shopping behavior, Internet browsing behaviors, and/or behavior related to computing device interaction.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic illustration of an example computing device constructed in accordance with the teachings of this disclosure to identify session users with cookie information.
FIG. 2 is a schematic illustration of an example implementation of the cookie user identifier of FIG. 1.
FIG. 3 is an example table generated by the example cookie user identifier of FIG. 2.
FIGS. 4 and 5 are flowcharts representative of example machine readable instructions which may be executed to identify session users with cookie information.
FIG. 6 is a block diagram of an example system that may execute the example machine readable instructions of FIGS. 4 and 5 to implement the example cookie user identifier of FIGS. 1 and 2, and/or to build the example table of FIG. 3.



DETAILED DESCRIPTION
Methods and apparatus are disclosed to identify session users with cookie information. An example method includes identifying activity associated with a first cookie having a first type, in response to identifying the first, parsing the first cookie to identify a first panelist, when the first cookie includes an identifier associated with a first panelist, associating current usage activity of the computing device with the first panelist, and when the first cookie includes an identifier unassociated with the first panelist, associating current usage activity of the computing device with a guest
Audience measurement companies enlist persons and/or groups of persons (e.g., households) as panelists. To become a panelist, such persons typically undergo a registration process in which they provide their demographic information to the audience measurement company. Often, the audience measurement entity will assign an identifier to the person to enable collected data to be mapped to the demographics of the panelist corresponding to the user. The audience measurement company will typically also provide the panelist with one or more software and/or hardware metering devices to collect media exposure data. The precise type(s) of metering device(s) may vary depending on one or more of the type of information being collected, the type of device(s) being monitored, the environment(s) in which the panelist is to be monitored, and/or the type(s) of media (e.g., radio, television, Internet, etc) exposure and/or behavior(s) to be monitored. In some applications, the panelist is provided with a first meter to identify the members of an audience (e.g., a people meter) and a second meter to collect data identifying or enabling identification of the media to which the panelist is exposed. The audience measurement company may deliver and/or install such meters in the panelist's home and/or on the panelist's media delivery equipment (e.g., computer, television, set top box, etc). Alternatively, the panelist may be provided with the metering software and/or hardware via an automated installation (e.g., via a download over the Internet) and/or the panelist may be asked to perform some or all of the installation.
During a study, panelists may receive reminders and/or prompts to identify themselves. In some examples, a panelist that agrees to have their television behavior monitored is provided buttons or other inputs (sometimes referred to as a people meter) that allows the viewer to select their name in response to a prompt to self-identify. Viewing information, such as current channel, current time and/or viewing duration of the viewer is associated with the household individual identified via the metering device (e.g., a PeopleMeter device associated with The Nielsen Company®).
In other examples, panelists may agree to allow their computing device behavior to be monitored. Computing device monitoring may include collecting data reflecting browsing behavior, access to Internet resources, purchasing of products, etc., to enable analysis of on-line consumer behavior, trend development, advertising effectiveness assessment, brand advocacy assessment, and/or social media buzz to better understand how consumers engage with various online media. Panelist households may include one or more computing devices, such as desktop personal computers, laptops, netbooks, personal digital assistants, mobile phones and/or tablets (e.g., iPADs). The computing device(s) may be centrally located and/or otherwise located in one or more areas of the household that result in shared use between household members. A panelist and/or a household of panelists (e.g., family members, roommates, etc.) that agree to have their computing device usage monitored may be presented with an on-screen prompt to identify which user is interacting with the computing device. However, participation by panelists may be discouraged and/or reduced when one or more techniques to prompt for identification become burdensome and/or are perceived to be invasive.
Even when a household panelist provides an indication of their identity prior to using a household computing device (e.g., by selecting their name on an on-screen prompt), the panelist may leave the computing device and a different household user (e.g., another panelist of the same household) may begin to use it without providing any indication of the change in users. In such example circumstances, logging information about computer usage behavior (e.g., web sites visited, on-line purchasing, bill payment activity, etc.) results in one or more inaccurate datasets as the activity is attributed to the wrong panelist. For example, if household panelist “John” responds to an on-screen identification prompt of a shared computing device (e.g., an Apple iPad®) located in the household, then subsequent usage of that computing device is recorded (e.g., by a monitoring program operating on the computing device), and forwarded to a monitoring organization (e.g., The Nielsen Company®) as associated with the household panelist “John.” John has a particular demographic profile (e.g., age, income, etc.). In the event another user (which may or may not be a household panelist) subsequently begins using the computing device after John without another logon event identifying the user change, then the subsequently recorded behavior will be skewed and/or otherwise erroneous if the second panelist has different demographic characteristics than the first user, John (e.g., a different age, a different gender, a different income, etc.).
Example methods, apparatus, systems and/or articles of manufacture disclosed herein passively identify a current user of a computing device in an environment where more than one individual is expected to use the same computing device. Activities typically performed by users of computing devices include checking social networking status information and/or checking for the presence of electronic mail (e-mail) messages. Web-based e-mail and/or social networking services often use cookies (e.g., a numeric and/or alphanumeric identifier) to identify users. Each cookie is unique to a particular user of the service. Additionally, the cookies employed by such web-based services may persist on the computing device (e.g., in the cache, on the hard drive, etc.) after a user closes (e.g., shuts-down) a browser and/or turns off the computing device. As a result, when the user re-opens their web browser and navigates to a web address (e.g., a uniform resource locator (URL) associated with the web service, such as www.facebook.com), the web service may still access a persistent cookie to allow the web service to configure its services in a manner that tailors to one or more preferences of the user, and/or to allow the user to access the web service without manually entering authentication credentials again.
Participation with social networking services and/or e-mail services is a computing device activity associated with relatively high reach when compared to other computing device activities (e.g., gaming). For example, sixty to seventy percent of computing device sessions in the U.S. are believed to include access to the social networking service named Facebook®. Example methods, apparatus, systems and/or articles of manufacture disclosed herein access cookies stored on and/or transferred by a computing device to determine an identity of the current user in a non-invasive manner (i.e., without requiring another prompt of the user).
FIG. 1 is a schematic illustration of an example computing device 100 that may be used by any number of household panelists. In the illustrated example of FIG. 1, the computing device 100 includes a first browser (“Browser A”) 102, a second browser (“Browser B”) 104, and a third browser 106 (“Browser C”) 106. Each of the example first, second and third browsers (102, 104, 106) may be designed and/or otherwise developed by different entities that distribute browsers. Example browsers include, but are not limited to, Microsoft® Internet Explorer®, Mozilla Firefox®, Apple® Safari®, Android®, Google® Chrome® and Opera®.
The example computing device 100 of FIG. 1 includes a platform memory 108, such as a hard drive, a solid state memory and/or any other type of memory. The platform memory 108 is able to store cookies received via any of the first, second and third example browsers (102, 104, 106). Each web browser stores cookies from user sessions in a unique directory of the platform memory 108. Cookies are not shared and/or otherwise viewed by foreign browsers. In other words, each browser manages and views only those cookies that result from their corresponding web sessions. In the illustrated example of FIG. 1, the platform memory 108 includes a first browser cookie directory 110, a second browser cookie directory 112 and a third browser cookie directory 114 to store cookies for each of the first, second and third browsers (102, 104, 106), respectively. Each of the first, second and third browsers (102, 104, 106) are communicatively connected (e.g., via a wired or wireless connection) to an example network interface 116 to facilitate communication to one or more network(s) 118, such as one or more intranets and/or the Internet.
Panelists that agree to have their computing device behavior monitored may also agree to have one or more monitoring devices and/or programs installed on their computing devices. In the illustrated example of FIG. 1, the computing device 100 includes a panelist monitoring agent 120 to monitor and record interaction between household panelists and the computing device 100. While the illustrated example of FIG. 1 shows panelist monitoring techniques by way of the panelist monitoring agent 120 (e.g., a software-based monitoring program executed by a processor of the computing device 100), the techniques to monitor user behavior are not limited thereto. For instance, in some examples, the panelist household may be monitored via one or more routers of the household to identify what websites are visited and/or websites may be tagged with monitoring instructions that cause the browser 102, 104, 106 to send a message (e.g., an HTML request) to the audience measurement entity to enable the audience measurement entity to log the access to the web page. As described in further detail below, the example computing device 100 of FIG. 1 also includes an example cookie user identifier 122 to facilitate identification of users with cookie information.
FIG. 2 is a schematic illustration of an example implementation of the cookie user identifier 122 of FIG. 1. In the illustrated example of FIG. 2, the cookie user identifier 122 includes a platform analyzer 202, an application storage interface 204, a persistent cookie manager 206, a duplicate identifier 208, a cookie temporal analyzer 210, an activity associator 212, a timer 214 and a persistent cookie change monitor 216. In operation, the example platform analyzer 202 scans and/or otherwise searches the computing device 100 for programs and/or applications associated with browsing functionality. In some examples, the platform analyzer 202 may search a registry and/or program listing of the computing device 100 for particular installed programs and/or applications. The example persistent cookie manager 206 invokes the example application storage interface 204 to identify a persistent cookie stored in the example platform memory 108. For each browser program and/or browser application identified by the example platform analyzer 202, the example application storage interface 204 locates corresponding storage location(s) of cookies for that browser.
In some examples, the persistent cookie manager 206 identifies these locations by searching for cookie directories in the platform memory. In the illustrated example, the application storage interface identifies the first browser cookie directory 110, the second browser cookie directory 112 and/or the third browser cookie directory 114 to search for one or more types of cookies. The application storage interface 204 looks for known cookie tag formats. Web services often employ cookie tag nomenclature that is indicative of a particular web service. For example, the cookie tag “c_user” is associated with Facebook®. If a known web service cookie tag is identified by the example persistent cookie manager 206, then an associated panelist user identity is identified, if any. For example, the first time a panelist participates with one or more known web services, the monitoring entity may cultivate information associated with the current user to associate the panelist and/or panelist information with the known web service. At the initial time of association between the current user (current panelist) and the web-service, unique identifiers are associated with the panelist, such as the unique “c_user” cookie identifier for each user of the Facebook® web-service. While the illustrated examples disclosed herein include the c_user cookie tag employed by Facebook®, example methods, apparatus, systems and/or articles of manufacture disclosed herein are not limited thereto. For example, other web services may employ additional and/or alternate cookie tags that operate in a similar manner as the c_user cookie tag.
The c_user cookie tag employed by Facebook® includes an associated numeric value that is unique to each user of the Facebook® web services. Each time a Facebook® user logs on to a computing device for any browser type, the c_user cookie tag is populated with an identifier unique to that user. If the user explicitly logs-off from the Facebook® website (e.g., by clicking a “log-off” icon from the Facebook® interface), then the c_user cookie and its corresponding identification information is destroyed and/or otherwise removed from the computing device. In the event the user logs onto the Facebook® web services using an alternate browser and/or a different computing device, the same identification value is populated with the c_user cookie tag on that alternate browser and/or different computing device. However, if the user closes the browser without explicitly logging off from the Facebook® interface, then the c_user cookie and its corresponding identification information persist on the computing device. In particular, the c_user cookie remains stored in the particular memory location of the example platform memory 108 location associated with the browser that was used by that user to obtain the cookie.
If a second user of the example computing device 100 logs onto Facebook® using the same browser that was used by the prior Facebook® user, then the previously stored c_user cookie is replaced with information associated with the second user (e.g., in the first browser cookie directory 110). However, when the second user of the example computing device 100 logs onto Facebook® using an alternate browser, then a new c_user cookie is stored in the memory directory associated with the alternate browser (e.g., the second browser cookie directory 112), and the previously stored c_user cookie associated with the previously used browser (e.g., the first browser cookie directory 110) is unaffected.
The example cookie manager 206 of FIG. 2 generates, updates and/or otherwise manages a cookie table to track associations between cookies and household panelists. Turning to FIG. 3, a cookie table 300 includes a household user column 302, a cookie domain column 304, and a service identifier (ID) column 306. For each household member (e.g., members “John,” “Jan,” and “Mary”) a corresponding cookie domain and service ID is listed for web services used by the household member. In the illustrated example, each of the web-based services uses one or more cookie tag(s) having a nomenclature unique to that service. For example, Facebook® uses a cookie tag labeled “c_user,” while other web-based services may employ any other names for their associated cookie(s). Known cookie tag nomenclature may be stored in the example cookie database 207 to facilitate queries and/or look-up operations of cookies stored in the example platform memory 108 by one or more browsers. To stay current with additional and/or alternate cookies and/or corresponding cookie tag nomenclature, the example cookie user identifier 122 may access one or more server(s) via the example network interface 116 to access information related to web-based services and/or corresponding tag nomenclature.
In the illustrated example of FIG. 3, panelist members John and Mary each participate with Facebook®, an e-mail service, and a second social web-based service labeled “Social #2” (e.g., Twitter®, Blogster®, deviantART®, Epernicus®, Flickr®, Foursquare®, Google+®, etc.). On the other hand, Jan only participates in a web-based service associated with an e-mail service provider. In the event that Jan joins one or more additional and/or alternate web-based services in the future, the example cookie manager 206 will add additional row(s) of information thereto. In the example of FIG. 3, household user John, for example, is presently associated with a Facebook® cookie (e.g., as evidenced by the cookie nomenclature “c_user”) and a corresponding service identifier “4145426609.” In the example of FIG. 3, household user John is also presently associated with an e-mail service (e.g., as evidenced by the cookie nomenclature “xyz”) and a corresponding service identifier “3239533200,” and is associated with another social networking service (e.g., as evidenced by the cookie nomenclature “tuv”) and a corresponding service identifier “9205697500.” In the example of FIG. 3, example household user Mary is also associated with a Facebook® cookie (e.g., as evidenced by the cookie nomenclature “c_user”) and a corresponding service identifier “4932915678.”
As described above, security mechanisms prevent one browser from having access to the cookies associated with another browser. Additionally, security mechanisms prevent one web service (e.g., domain) from being able to access cookies associated with another web service (e.g., a second web service domain). However, the example panelist monitoring agent 120 has full access to the resources of the example computing device 100 by virtue of panelist consent and, thus, may access all content generated and/or otherwise stored by all browser programs/applications that may operate on the example computing device 100.
In the event that the cookie manager discovers a cookie associated with one of the household panelist members, the possibility exists that a separate browser also has a cookie of the same type for the same user. For example, the user may have used a first browser to access Facebook® at a first time, but may have more recently used a second browser on the computing device 100 at a second time to access Facebook®. As such, both browsers will have a cookie of type c_user and the corresponding user service identifier. To identify which cookie is the most recently created and/or otherwise modified, the example duplicate identifier 208 invokes the example application storage interface 204 to search for other cookies that use the “c_user” nomenclature. Additionally, the example cookie temporal analyzer 210 compares cookies to determine which one is most recent (e.g., via a creation timestamp, via a modification timestamp, etc.).
In some examples, a first user (panelist) of the example computing device 100 logs onto a website that provides cookies such as Facebook® and, some time later, walks away from the computing device 100 without logging out. As described above, the cookie tag of type “c_user” is deleted from a browser cookie storage when a user explicitly selects a log-out option from the (e.g., Facebook®) interface. If a second user (panelist) of the example computing device 100 logs into the same website (e.g., Facebook®) using the same browser that had been used by the first user, then the cookie tag of type “c_user” is replaced with the service identifier associated with the second user. On the other hand, if the second user of the example computing device 100 logs into the webpage (e.g., Facebook®) using a different browser than the one used by the first user, then the cookie tag of type “c_user” for the first browser remains in the platform memory 108, and a new cookie tag of type “c_user” for the second browser is created and stored in the platform memory 108.
To determine which user is likely the current user, the example cookie manager 206 identifies both cookie tags of type “c_user,” and invokes the example cookie temporal analyzer 210 to determine which one is more recent. When the most recent user is identified, based on the corresponding service identifier associated with the most recent cookie, the example activity associator 212 associates subsequent behavior on the platform 100 with the most recent user.
In other examples, a first user of the computing device 100 (e.g., John) may log into a web-based service, such as Facebook®, and leave the computing device 100 without logging out. If a second user begins to use the computing device 100 and logs into any other website (e.g., the same or different type of web-based service) that uses cookies, then the cookie associated with the first user remains stored on the example platform memory 108. For example, the second user (e.g., Mary) may log on to her e-mail account (e.g., having a cookie tag nomenclature “xyz”) using the same, or a different browser. As such, the example platform memory has one cookie of a type associated with John's Facebook® account, and another cookie of a type associated with Mary's e-mail account. The example cookie temporal analyzer 210 determines which of the two (or more) cookies is more recent and associates the user of the more recent cookie with current usage of the computing platform 100.
While an example manner of implementing the cookie user identifier 122 of FIG. 1 has been illustrated in FIGS. 2 and 3, one or more of the elements, processes and/or devices illustrated in FIGS. 1-3 may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example first browser 102, the example second browser 104, the example third browser, the example first browser cookie directory 110, the example second browser cookie directory 112, the example third browser cookie directory 114, the example cookie user identifier 122, the example platform analyzer 202, the example application storage interface 204, the example cookie manager 206, the example cookie database 207, the example duplicate identifier 208, the example cookie temporal analyzer 210, the example activity associator 212, the example timer 214, the example cookie change monitor 216, and/or the example cookie table 300 of FIGS. 1-3 may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example first browser 102, the example second browser 104, the example third browser, the example first browser cookie directory 110, the example second browser cookie directory 112, the example third browser cookie directory 114, the example cookie user identifier 122, the example platform analyzer 202, the example application storage interface 204, the example cookie manager 206, the example cookie database 207, the example duplicate identifier 208, the example cookie temporal analyzer 210, the example activity associator 212, the example timer 214, the example cookie change monitor 216, and/or the example cookie table 300 could be implemented by one or more circuit(s), programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)), etc. When any of the apparatus or system claims of this patent are read to cover a purely software and/or firmware implementation, at least one of the example first browser 102, the example second browser 104, the example third browser, the example first browser cookie directory 110, the example second browser cookie directory 112, the example third browser cookie directory 114, the example cookie user identifier 122, the example platform analyzer 202, the example application storage interface 204, the example cookie manager 206, the example cookie database 207, the example duplicate identifier 208, the example cookie temporal analyzer 210, the example activity associator 212, the example timer 214, the example cookie change monitor 216, and/or the example cookie table 300 are hereby expressly defined to include a tangible computer readable medium such as a memory, DVD, CD, Blu-ray, etc. storing the software and/or firmware. Further still, the example cookie user identifier 122 of FIGS. 1 and 2 may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated in FIGS. 1-3, and/or may include more than one of any or all of the illustrated elements, processes and devices.
A flowchart representative of example machine readable instructions for implementing the cookie user identifier 122 of FIGS. 1 and 2 is shown in FIG. 4. A flowchart indicative of example machine readable instructions for identifying session users with cookies is further shown in FIG. 5. In these examples, the machine readable instructions comprise a program for execution by a processor such as the processor 612 shown in the example computer 600 discussed below in connection with FIG. 6. The program may be embodied in software stored on a tangible computer readable medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with the processor 612, but the entire program and/or parts thereof could alternatively be executed by a device other than the processor 612 and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the flowcharts illustrated in FIGS. 4 and 5, many other methods of implementing the example cookie user identifier 122 may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.
As mentioned above, the example processes of FIGS. 4 and 5 may be implemented using coded instructions (e.g., computer readable instructions) stored on a tangible computer readable medium such as a hard disk drive, a flash memory, a read-only memory (ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, a random-access memory (RAM) and/or any other storage media in which information is stored for any duration (e.g., for extended time periods, permanently, brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term tangible computer readable medium is expressly defined to include any type of computer readable storage and to exclude propagating signals. Additionally or alternatively, the example processes of FIGS. 4 and 5 may be implemented using coded instructions (e.g., computer readable instructions) stored on a non-transitory computer readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage media in which information is stored for any duration (e.g., for extended time periods, permanently, brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term non-transitory computer readable medium is expressly defined to include any type of computer readable medium and to exclude propagating signals. As used herein, when the phrase “at least” is used as the transition term in a preamble of a claim, it is open-ended in the same manner as the term “comprising” is open ended. Thus, a claim using “at least” as the transition term in its preamble may include elements in addition to those expressly recited in the claim.
The program 400 of FIG. 4 begins at block 402, in which the example platform analyzer 202 searches the example computing device 100 for browser programs and/or applications. For example, a personal computer and/or laptop may use Google® Chrome®, Microsoft® Internet Explorer® and/or Mozilla Firefox®. In other examples, an Apple®-based product may use the Safari® browser. In still other examples, a wireless telephone may use an Android® browser, Opera®, Dolphin®, etc. The example platform analyzer 202 may locate one or more browser programs/applications by searching a program library, a file structure and/or by analyzing an operating system registry. For each browser program/application identified by the example platform analyzer 202, the example application storage interface 204 identifies one or more storage locations associated with and/or otherwise used by each browser program/application (block 404).
The example cookie manager invokes the example application storage interface 204 to search the platform memory 108 of the platform and identify a cookie of a first type (block 406). For example, because Facebook® web services reflect a relatively large portion of session activity during computing device session(s), a search for cookies having the “c_user” tag may be assigned a high priority (e.g., preferred first). In some examples, the example cookie manager may direct the application storage interface 204 to search the platform memory 108 for one or more additional or alternate cookie tag nomenclature(s). If the example cookie manager 206 identifies a cookie of a known type (block 406), it determines an associated user identity via a lookup of the example service ID column 306 of the cookie table 300 (block 408). The identified user is associated with a candidate user of the computing device 100. However, the possibility exists that the identified user invokes more than one browser to gain access to the web service associated with the persistent cookie. As such, the cookie identified might not be the most recently generated cookie on the computing device 100. To determine whether the identified cookie associated with the candidate user is the most current, the duplicate identifier 208 invokes the storage interface 204 to search memory locations associated with one or more other browsers/apps that may be installed on the computing device 100 (block 410).
If a duplicate is found (block 412), then the cookie temporal analyzer 210 identifies which cookie is most recent (block 414). The example cookie temporal analyzer 210 may locate a timestamp of the cookies, a date of creation indicator of the cookies, and/or a date of modification of the cookies to determine which cookie associated with the candidate user is most recent. The most recent cookie and corresponding user is associated with the candidate user of the computing device 100 (block 414).
In some examples, a second user may use the computing device 100 to utilize the same web-based service as a prior user, but the web-based service may have been accessed via a separate browser program/app than the first user. To make sure that a second user (e.g., a user different from the previously identified candidate user) is not the true candidate user, the example cookie manager 206 searches for the same cookie type (e.g., a cookie using a “c_user” tag) associated with other user(s) in memory locations associated with other browser programs/apps that may be installed on the computing device 100 (block 416). If a second (alternate) user associated with the same cookie type is identified (block 418), the example cookie temporal analyzer 210 determines which cookie is more recent (block 420). If the second cookie is more recent (block 420), then the household user associated with the alternate service ID is associated with the candidate user, effectively replacing the previously determined candidate user (block 422).
On the other hand, if the second (alternate) user associated with the same cookie type is not more recent (block 420) (e.g., as determined by an indication from a modification date, a creation date and/or other timestamp), then the example application storage interface 204 searches the platform memory 108 for a cookie of an alternate type (block 424). For example, a separate web-based service may have been accessed by a household member of the computing device 100 that is more recent, such as a different social website, an e-mail website, a banking website, etc. If a separate cookie of an alternate type is identified that is more recent (block 426), then the example program 400 of FIG. 4 returns to block 408 to identify the corresponding user associated with the more recent cookie. On the other hand, if the example computing device 100 does not have any more cookies of alternate type(s) that are more recent (block 426), then the example activity associator 212 associates all browsing activity with the currently identified user (block 428).
In other examples, a current user of the example computing device 100 may walk away, and a different user may begin using the computing device 100. Additionally, because the prior user may not have logged off one or more web-based services that employ cookies, the example timer 214 manages a timeout period (block 430). If the timeout period does not occur, then the example activity associator continues to associate current activity on the computing device 100 with the currently identified user. On the other hand, when the timeout period expires (block 430), then the program 400 returns to block 406 to search the platform memory 108 again for one or more other cookies that may result from one or more other web-based services invoked by the same (current) user, or a different user of the panelist household.
FIG. 5 is a flowchart representative of an example program 500 which may be executed to identify session users with cookie information. The program 500 of FIG. 5 begins at block 502, in which the activity associator 212 determines whether a current user of the computing device 100 has been identified. For example, a user (panelist) may have explicitly identified himself or herself before or during use of the computing device 100 via a PeopleMeter®, a dialog prompt and/or other response to an identification request. The PeopleMeter® may, for example, contain an array of selectable buttons or other user interface to allow a household member to indicate their identity prior or during use of the computing device 100. In response to receiving an indication of a household user (block 502), the example activity associator 212 attributes current activity with the computing device 100 to the currently identified user (block 504). The example cookie user identifier 122 invokes the example cookie change monitor 216 to monitor for any changes to known cookie types that may be stored on the platform memory 108, such as cookies stored in the example first browser cookie directory 110, the example second browser cookie directory 112, and/or the example third browser cookie directory 114 (block 506). Changes to one or more known cookie types (e.g., cookies having a tag nomenclature “c_user”) may include, but are not limited to added cookies, deleted cookies, cookie timestamp changes, cookie field value changes, etc. Additionally, such changes may occur in association with any of the browser applications/programs installed and/or otherwise executing on the example computing platform 100. As described above, monitoring cookie change activity with respect to any browser application/program of the computing device 100 facilitates detection of some household users accessing web-based services on a first browser, while other household members utilize the same web-based services via another browser. In such example circumstances, both cookies may be simultaneously resident on the platform memory 108.
In the illustrated example of FIG. 5, if the cookie change monitor 216 does not identify changes to one or more known cookie types (block 508), then the program 500 waits. Otherwise, in response to the example cookie change monitor 216 detecting change(s) to one or more known cookie types (block 508), the example cookie manager 206 determines whether a change to a known cookie type is associated with the currently identified household panelist member (block 510). In some examples, the cookie manager 206 parses and/or otherwise examines the content(s) of cookies stored in the platform memory 108 for an indication of a panelist member, such as a panelist username, a numeric value associated uniquely with the panelist, and/or an alphanumeric value associated uniquely with the panelist. As described above, the example cookie table 300 includes a service ID column 306 for each respective household member. If a service ID value associated with a household member is detected by the example cookie manager 206, then control returns to block 508 where the example cookie change monitor 216 continues to monitor for changes to cookies stored on the platform memory 108. For example, the current user of the computing device 100 may have just accessed a social website (e.g., Twitter®) or an e-mail account (e.g., Google®).
On the other hand, if cookie activity is detected by the example cookie change monitor 216 (block 508), and the changes are not affiliated with the currently identified user (block 510), then the cookie manager 206 queries the cookie table 300 to find a match (block 512). In the event a current household member cannot be identified via a match in the example service ID column 306 of the cookie table 300 (block 514) (e.g., when the cookie is devoid of an indication of one or more panelist member(s)), then a guest may be using the computing device 100. For example, one or more of the household panelist members may have one or more guests in their home that wish to check their e-mail account(s) and/or check their social networking status(es). As such, the example activity associator 212 identifies the current user as “none” (or similar) (block 516), and refrains and/or otherwise stops logging activity of the computer platform 100 with one or more household member(s) (block 518). Control then returns to block 508, where the example cookie change monitor 216 monitors the example platform memory 108 for changes to one or more cookies.
In the event that the example cookie change monitor 216 identifies change activity (block 508), determines such cookie activity is not associated with the currently identified user (block 510) (e.g., a user that previously indicated their identity via a PeopleMeter® button press), and identifies that the cookie change is associated with a different household panelist member (block 514), then the example activity associator 212 associates the current activity with the other household panelist member (block 520). For example, the other household panelist member may be identified based on matching information from the service ID column 306 of the example cookie table 300. The example activity associator 212 associates activity on the example computing device 100 with the newly identified household member (block 522). Control returns to block 508 to allow the example cookie change monitor 216 to identify one or more changes to new and/or existing cookies stored on the example platform memory 108.
FIG. 6 is a block diagram of an example computer 600 capable of executing the instructions of FIGS. 4 and 5 to implement the cookie user identifier 122 of FIGS. 1-3. The computer 600 can be, for example, a server, a personal computer, a mobile phone (e.g., a cell phone), a personal digital assistant (PDA), a television, an Internet appliance, a gaming console, a set top box, or any other type of computing device that stores a cookie.
The system 600 of the instant example includes a processor 612. For example, the processor 612 can be implemented by one or more microprocessors or controllers from any desired family or manufacturer.
The processor 612 includes a local memory 613 (e.g., a cache) and is in communication with a main memory including a volatile memory 614 and a non-volatile memory 616 via a bus 618. The volatile memory 614 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 616 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 614, 616 is controlled by a memory controller.
The computer 600 also includes an interface circuit 620. The interface circuit 620 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.
One or more input devices 622 are connected to the interface circuit 620. The input device(s) 622 permit a user to enter data and commands into the processor 612. The input device(s) can be implemented by, for example, a keyboard, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
One or more output devices 624 are also connected to the interface circuit 620. The output devices 624 can be implemented, for example, by display devices (e.g., a liquid crystal display, a cathode ray tube display (CRT), a printer and/or speakers). The interface circuit 620, thus, typically includes a graphics driver card.
The interface circuit 620 also includes a communication device, such as a modem or network interface card to facilitate exchange of data with external computers via a network 626 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).
The computer 600 also includes one or more mass storage devices 628 for storing software and data. Examples of such mass storage devices 628 include floppy disk drives, hard drive disks, compact disk drives and digital versatile disk (DVD) drives. The mass storage device 628 may implement the platform memory 108.
The coded instructions 632 of FIGS. 4 and 5 may be stored in the mass storage device 628, in the volatile memory 614, in the non-volatile memory 616, and/or on a removable storage medium such as a CD or DVD.
From the foregoing, it will be appreciated that disclosed example methods, systems, apparatus and articles of manufacture facilitate identification of session users by using cookie information associated with web-services used by household panelist members. By identifying cookies on a shared computing device, example methods, systems, apparatus and articles of manufacture disclosed herein determine the most likely user within the household that is using the computing device, and makes such identification in a manner that is non-intrusive to the panelist member. Rather than inundating the panelist member with one or more prompts that force selection of their identity, example methods, apparatus, systems and articles of manufacture disclosed herein generate a list of known web-service cookies and associated user identification information for each household member. The cookie having the most recent indication of modification, such as a timestamp, indicates one of many users in the household that is most likely using the computing device.
Although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.

## Claims

1. A method to identify a current user of a computing device among a plurality of different users, the method comprising:
identifying, by executing an instruction with a processor, a most recently used cookie based on a comparison of timestamps associated with a plurality of cookies;
comparing, by executing an instruction with the processor, an identifier of the most recently used cookie to a cookie table, the cookie table associating cookies with the plurality of different users; and
when the identifier of the most recently used cookie is associated with one of the plurality of different users, associating, by executing an instruction with the processor, subsequent usage activity of the computing device with the one of the plurality of different users.

2. The method as defined in claim 1, wherein when the identifier of the most recently used cookie is not associated with any of the plurality of different users, refraining from associating the subsequent usage activity of the computing device with any of the plurality of different users.

3. The method as defined in claim 1, wherein the subsequent usage activity of the computing device is browsing activity that is not associated with the most recently used cookie.

4. The method as defined in claim 1, wherein the associating of the subsequent usage activity occurs until a timeout period expires.

5. The method as defined in claim 1, wherein the most recently used cookie is associated with at least one of a social networking service, an email service, or a banking service.

6. The method as defined in claim 1, wherein the plurality of cookies are from a first storage location associated with a first browser and a second storage location associated with a second browser.

7. The method as defined in claim 1, wherein the cookie table is stored on the computing device.

8. An apparatus to identify a current user of a computing device among a plurality of different users, the apparatus comprising:
a cookie manager to:
identify a most recently used cookie based on a comparison of timestamps associated with a plurality of cookies; and
compare an identifier of the most recently used cookie to a cookie table, the cookie table associating cookies with the plurality of different users; and

an activity associator to, when the identifier of the most recently used cookie is associated with one of the plurality of different users, associate subsequent usage activity of the computing device with the one of the plurality of different users, at least one of the cookie manager or the activity associator implemented via a processor.

9. The apparatus as defined in claim 8, wherein the activity associator is to, when the identifier of the most recently used cookie is not associated with any of the plurality of different users, refrain from associating the subsequent usage activity of the computing device with any of the plurality of different users.

10. The apparatus as defined in claim 8, wherein the subsequent usage activity of the computing device is browsing activity that is not associated with the most recently used cookie.

11. The apparatus as defined in claim 8, wherein the activity associator is to associate the subsequent usage activity with the one of the plurality of different users until a timeout period expires.

12. The apparatus as defined in claim 8, wherein the most recently used cookie is associated with at least one of a social networking service, an email service, or a banking service.

13. The apparatus as defined in claim 8, wherein the plurality of cookies are from a first storage location associated with a first browser and a second storage location associated with a second browser.

14. The apparatus as defined in claim 8, wherein the cookie table is stored on the computing device.

15. A tangible computer readable storage medium comprising instructions to identify a current user of a computing device among a plurality of different users, the instructions, when executed, cause a machine to at least:
identify a most recently used cookie based on a comparison of timestamps associated with a plurality of cookies;
compare an identifier of the most recently used cookie to a cookie table, the cookie table associating cookies with the plurality of different users; and
when the identifier of the most recently used cookie is associated with one of the plurality of different users, associate subsequent usage activity of the computing device with the one of the plurality of different users.

16. The storage medium as defined in claim 15, further including instructions that cause the machine to, when the identifier of the most recently used cookie is not associated with any of the plurality of different users, refrain from associating the subsequent usage activity of the computing device with any of the plurality of different users.

17. The storage medium as defined in claim 15, wherein the subsequent usage activity of the computing device is browsing activity that is not associated with the most recently used cookie.

18. The storage medium as defined in claim 15, wherein the associating of the subsequent usage activity occurs until a timeout period expires.

19. The storage medium as defined in claim 15, wherein the plurality of cookies are from a first storage location associated with a first browser and a second storage location associated with a second browser.

20. The storage medium as defined in claim 15, wherein the cookie table is stored on the computing device.