Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
COLLABORATIVE DOCUMENT ACCESS RECORDING AND MANAGEMENT
Document Type and Number:
WIPO Patent Application WO/2019/074569
Kind Code:
A1
Abstract:
A method of providing user access history for a collaborative document includes receiving, by a server, a request for the collaborative document from a user device of a user of a plurality of users that have permission to access the collaborative document, providing, by the server, the collaborative document to the user device for presentation to the user in a user interface on the user device, receiving, from the user device, a request for the user access history for the collaborative document presented in the user interface on the user device, creating, by the server, the user access history for the collaborative document based on accesses of the collaborative document by one or more of the plurality of users, and providing, by the server, the user access history for the collaborative document to the user device for display in the user interface presenting the collaborative document.

More Like This:
Inventors:
YANG ALLEN (US)
WILLIAMS CLAYTON (US)
ZOLL JAMES (US)
DULKO ANDREA (US)
PEARSON-BECK MATTHEW (US)
VANLANDINGHAM BLAKE ROBERT (US)
CHUN CHI HO (US)
TANG TIANLEI (US)
Application Number:
PCT/US2018/043766
Publication Date:
April 18, 2019
Filing Date:
July 25, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GOOGLE LLC (US)
International Classes:
G06Q10/10; G06F17/24; H04L12/58; H04L29/06
Foreign References:
US20170257406A12017-09-07
Other References:
None
Attorney, Agent or Firm:
PORTNOVA, Marina et al. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A method for providing user access history for a collaborative document, the method comprising:

receiving, by a server, a request for the collaborative document from a user device of a user of a plurality of users that have permission to access the coll aborative document;

providing, by the server, the collaborative document to the user device for

presentation to the user in a user interface on the user device;

receiving, from the user device, a request for the user access history for the collaborative document presented in the user interface on the user device;

creating, by the server, the user access history for the collaborative document based on accesses of the collaborative document by one or more of the plurality of users; and

providing, by the server, the user access history for the collaborative document to the user device for display in the user interface presenting the collaborative document.

2. The method of claim 1, further comprising:

receiving, from the user device, a message request compri sing a message to be sent to one or more of the plurality of users identified in the user access history in the user interface; and

transmitting the message to one or more user dev ices associated with the one or more of the plurality of users.

3. The method of claim 2, wherein the message request is selected via an indicator on a view including the user access history in the user interlace presenting the collaborative document.

4. The method of claim 1 , 2 or 3, wherein the user access history identifies the plurality of users that have permission to access the collaborative document and timestamps of most recent viewings of the collaborative document by each of the plurality of users.

5. The method of any preceding claim, wherein the user access history for the collaborative document i s provided in response to determining that access history viewing for the collaborative document is enabled for one or more of the plurality of users.

6. The method of any of claims I to 4, wherein the user access hi story for the collaborative document i s provided in response to determining that global access history viewing for collaborative documents including the collaborative document is enabled for one or more of the plurality of users.

7. The method of any preceding claim, further comprising:

receiving, from the user device, a request to disable showing of the user access hi story associated with the user of the user device for the collaborative document;

receiving, from a second user device of a second user of the plurality of users, a subsequent request for the user access history for the collaborative document presented in the user interface on the user device;

creating, by the server, the user access history for the collaborative document based on the accesses of the collaborative document by the one or more of the plurality of users other than the user; and

providing, by the server, the user access history for the collaborative document to the second user device for display in the user interface presenting the collaborative document.

8. The method of any preceding claim, further comprising:

including group metadata that associates one or more of the plurality of users to a group in the user access hi story.

9. The method of any preceding claim, further comprising:

receiv ing, at the serv er, one or more access requests to the collaborative document; and

storing access data for each of the one or more access requests, the access data for each of the one or more access requests comprising an identity of one of the plurality of users associated with a respective access request and a time at which the respective access request was received.

10. The method of any preceding claim, wherein prov iding the user access history for the collaborative document to the user device for display in the user interface presenting the collaborative document comprises:

causing the user access history to be displayed in a consolidated view overlaid on a portion of the collaborative document presented in the user interface.

1 1 . The method of any preceding claim, further comprising:

in response to receiving the request for the user access history for the collaborative document, determining whether a user associated with the user device that provided the request for the user access history has editing permissions; and

in response to the user having editing permissions, providing the user access history.

12. A method for presenting user access history for a collaborative document, the method comprising:

presenting, by a user device, a user interface displaying the collaborative document, the user interface comprising a visual indicator representing the user access history;

detecting, by the user device, a selection of the visual indicator representing the user access history;

requesting, by the user device, the user access history for the collaborative document from a server; and

in response to receiving the user access history from the server, presenting an updated user interface displaying the user access history together with the collaborative document.

13. The method of claim 12, further comprising presenting the user access history in a consolidated view, the user access history identifying one or more users that have access to the collaborative document and including an indication of when the one or more users most recently accessed the collaborative document.

14. The method of claim 13, further comprising presenting, within the consolidated view, one or more selectable options to perform an action for each of the one or more users.

15. The method of claim 14, further comprising performing the action upon selection of the one or more selectabl e options, wherein the action comprises at least one of sending a message to the one or more users, requesting feedback from the one or more users, or alerting the one or more users of an update to the collaborative document.

16. The method of any one of claims 13, 14 or 15, further comprising overlaying the consolidated view over a portion of the collaborative document being presented in the user interface.

1 7. The method of any one of claims 13 to 16, further comprising: displaying an indication of when a group including one or more of the plurality of users accessed the collaborative document based on group metadata included in the user access history, the indication corresponding to an access having a most recent timestamp of the collaborative document by one of the plurality of users,

18. The method of any one of claims 13 to 17, wherei n the indication comprises a generalized timeframe of when the one or more users most recently accessed the collaborative document.

19. The method of any one of claims 12 to 18, further comprising

receiving a selection to view user access history settings;

presenting a user access priv acy settings view compri sing at least one of a selectable option to enable or di sable user access history viewing associated with a user for the collaborative document;

receiving a selection to di sable user access history viewing associated with the user for the collaborative document;

prov iding, to the serv er, an indication of the selection to disable user access history- viewing associated with the user for the collaborative document; and

receiving the user access hi story that excludes the user access hi story associated with the user for the collaborative document from the server.

20. The method of any one of claims 12 to 18, further comprising:

receiv ing a selection to view user access hi story settings;

presenting a user access hi story settings v iew compri sing at least one of a selectable option to enable or disable user access history viewing associated with the user for each document to which the user has access;

receiving a selection to disable user access history viewing associated with the user for each document to which the user has access;

providing, to the serv er, an indication of the selection to disable user access history viewing associated with the user for each document to which the user has access; and

receiv ing the user access history that excludes at least the user access history associated with the user for the collaborativ e document from the serv er.

21. The method of any one of claims 12 to 20, further comprising presenting, by the user device, an information view that provides an indication to a user of the user device that user access history is enabled and provides a selectable option to adjust settings related to the user accessing history.

22. A system, comprising:

a memory device storing instructions; and

a processing device coupled to the memory device, wherein the processing device executes the instructions to:

receive a request for the collaborative document from a user device of a user of a plurality of users that have permission to access the collaborative document; provide the col laborative document to the user device for presentation to the user in a user interface on the user device;

receive a request for the user access history for the collaborative document presented in the user interface on the user device;

create the user access history for the collaborative document based on accesses of the collaborative document by one or more of the plurality of users; and

provide the user access hi story for the collaborative document to the user device for display in the user interface presenting the collaborative document.

23. The system of claim 22, wherein providing the user access history for the collaborative document to the user device for display in the user interface presenting the collaborative document comprises the processing dev ice further to cause the user access history to be displayed in a consolidated view overlaid on a portion of the collaborativ e document presented in the user interface.

24. One or more tangible, non-transitory computer-readable media storing instructions that, when executed by one or more processing dev ices, cause the one or more processing dev ices to:

present a user interface displaying the collaborativ e document, the user interface comprising a visual indicator representing the user access history;

detect a sel ection of the visual indicator representing the user access hi story;

request the user access hi story for the collaborative document from a server; and in response to receiving the user access history from the server, present an updated user interface displaying the user access history together with the collaborative document.

25. The computer-readable media of claim 24, wherein the one or more processing devices are further caused to present the user access history in a consolidated view, the user access history identifying one or more users that have access to the collaborative document and including an indication of when the one or more users most recently accessed the collaborative document.

Description:
COLLABORATIVE DOCUMENT ACCESS RECORDING AND MANAGEMENT

TECHNICAL FIELD

[0001] Aspects and implementations of the present disclosure rel ate to electronic documents, and more speci ically, to collaborative document access recordi ng and management.

BACKGROUND

[0002 j During development of an electronic document, it is often desirable to hav e multiple reviewers read, comment, and/or edit a draft of the electronic document. For example, an author may create an initial draft of an electronic document and send a copy of the electronic document to multiple reviewers. In some instances, the author and/or the reviewers may not be aware of which of the reviewers hav e already accessed the electronic document. As such, a first reviewer may be waiting on a second reviewer to access the electronic document when the second reviewer has already accessed the electronic document. Further, without such access information, there may not be a straight-forward and/or efficient way to contact the reviewers that hav e accessed or have not accessed the electronic document.

SUMMARY

100031 Aspects and implementations of the present disclosure improv e collaborativ e document access recording and management technology by recording access data including when a user has accessed a collaborativ e document and the time of such an access. The access data may be obtained without using a third-party tracker and may be stored in a cloud- based environment providing the collaborative document. The technology can provide a consolidated v iew identifying users that hav e accessed and have not accessed a collaborativ e document. Also, the consolidated view can display available actions corresponding to the users. The available actions may include, for example, sending a message to a user that has accessed or has not accessed the collaborative document, requesting rev iew from a user that has accessed or has not accessed the collaborative document, etc. In one implementation, the consolidated view may be presented in a user interface (UI) that i s al so di splaying the collaborativ e document. As such, the performance of the UI may be enhanced because there may not be transitions between different IJ ls. Additionally, the user experience may be enhanced by a more user-friendly UI. 10004] In a first aspect of the present disclosure, there is provided a method for providing user access history for a collaborative document. The method comprises receiving, by a server, a request for the collaborative document from a user device of a user of a plurality of users that hav e permission to access the collaborativ e document, prov iding, by the serv er, the collaborativ e document to the user dev ice for presentation to the user in a user interface on the user dev ice, receiv ing, from the user dev ice, a request for the user access hi story for the collaborative document presented in the user interface on the user device, creating, by the server, the user access history for the collaborativ e document based on accesses of the collaborativ e document by one or more of the plurality of users, and prov iding, by the server, the user access hi story for the collaborativ e document to the user dev ice for display in the user interface presenting the collaborative document.

[0005] The method may further comprise receiving, from the user device, a message request comprising a message to be sent to one or more of the plurality of users identified in the user access hi story in the user interface; and transmitting the message to one or more user dev ices associated with the one or more of the plurality of users.

[0006] The message request may be selected via an indicator on a view including the user access history in the user interface presenting the collaborativ e document.

[0007] The user access history may identify the plurality of users that have permission to access the collaborativ e document and timestamps of most recent viewings of the

collaborative document by each of the plurality of users.

[0008 j The user access hi storv for the collaborativ e document may be provided in response to determining that access history viewing for the collaborative document is enabled for one or more of the plurality of users.

10009] The user access hi story for the collaborativ e document may be provided in response to determining that global access hi storv viewing for collaborativ e documents including the collaborativ e document is enabled for one or more of the plurality of users. 10010] The method may further compri se receiv ing, from the user dev ice, a request to disable showing of the user access history associated with the user of the user dev ice for the collaborative document, receiv ing, from a second user dev ice of a second user of the plurality of users, a subsequent request for the user access history for the collaborativ e document presented in the user interface on the user device, creating, by the serv er, the user access history for the col laborativ e document based on the accesses of the collaborativ e document by the one or more of the plurality of users other than the user, and providing, by the serv er. the user access hi story for the collaborative document to the second user device for display in the user interface presenting the collaborative document.

1001 1 | The method may further comprise including group metadata that associates one or more of the plurality of users to a group in the user access history.

[0012] The method may further compri se receiving, at the server, one or more access requests to the collaborative document, and storing access data for each of the one or more access requests, the access data for each of the one or more access requests comprising an identity of one of the plurality of users associated with a respective access request and a time at which the respective access request was received.

10013] Providing the user access history for the collaborative document to the user device for display in the user interface presenting the collaborative document may comprise causing the user access hi story to be di splayed in a consolidated view ov erlaid on a portion of the collaborative document presented in the user interface.

[0014] The method may further compri se in response to receiving the request for the user access history for the collaborative document, determining whether a user associated with the user device that provided the request for the user access history has editing permi ssions, and in response to the user having editing permissions, providing the user access history.

[0015] In a second aspect of the present disclosure, there i s provided a method for presenting user access history for a collaborative document. The method comprises presenting, by a user device, a user interface di splaying the collaborative document, the user interface compri sing a vi sual indicator representing the user access history, detecting, by the user device, a selection of the visual indicator representing the user access hi story, requesting, by the user dev ice, the user access history for the collaborativ e document from a serv er, and in response to receiv ing the user access history from the server, presenting an updated user interface displaying the user access history together w ith the col laborativ e document.

[0016] The method may further comprise presenting the user access history in a consolidated view, the user access history identifying one or more users that have access to the collaborativ e document and including an indication of when the one or more users most recently accessed the collaborativ e document.

|00171 The method may further comprise presenting, within the consolidated view, one or more selectable options to perform an action for each of the one or more users.

[0018] The method may further compri se performing the action upon selection of the one or more selectable options, wherein the action comprises at least one of sending a message to the one or more users, requesting feedback from the one or more users, or alerting the one or more users of an update to the collaborative document.

[0019] The method may further comprise overlaying the consolidated view over a portion of the collaborative document being presented in the user interface.

10020] The method may further compri se displaying an indication of when a group including one or more of the plurality of users accessed the collaborative document based on group metadata included in the user access history, the indication corresponding to an access having a most recent timestamp of the collaborative document by one of the plurality of users.

[0021 ] The indication may comprise a generalized timeframe of when the one or more users most recently accessed the collaborative document.

[0022] The method may further comprise receiving a selection to view user access history settings, presenting a user access privacy settings view comprising at least one of a selectable option to enabl e or disable user access history viewing associated with a user for the collaborative document, receiving a selection to disable user access history viewing associated with the user for the collaborative document, providing, to the serv er, an indication of the selection to disable user access history viewing associated with the user for the collaborative document; and receiving the user access hi story that excludes the user access history associated with the user for the collaborative document from the server.

[0023] The method may further comprise receiving a selection to view user access hi story settings, presenting a user access history settings view comprising at least one of a selectable option to enabl e or disable user access history viewing associated with the user for each document to which the user has access, receiving a selection to disable user access history viewing associated with the user for each document to which the user has access, providing, to the server, an indication of the selection to disable user access hi story viewing associated with the user for each document to hich the user has access, and receiving the user access history that excludes at least the user access history associ ated ith the user for the collaborative document from the server.

[0024] The method may further comprise presenting, by the user device, an information view that provides an indication to a user of the user device that user access history is enabled and provides a selectable option to adjust settings related to the user accessing history.

10025] In a third aspect of the present di sclosure, there is provided a system . The system comprises a memory device storing instructions; and a processing device coupled to the memory dev ice, wherein the processing device executes the instructions to receive a request for the collaborative document from a user device of a user of a plurality of users that hav e permission to access the collaborativ e document, provide the collaborativ e document to the usei " device for presentation to the user in a user interface on the user dev ice, receive a request for the user access history for the collaborativ e document presented in the user interface on the user dev ice, create the user access hi story for the collaborative document based on accesses of the collaborative document by one or more of the plurality of users, and provide the user access hi story for the collaborative document to the user device for di splay in the user interface presenting the collaborative document.

10026] Prov iding the user access history for the collaborativ e document to the user device for display in the user interface presenting the collaborative document may comprise the processing device further to cause the user access history to be displayed in a

consolidated view overlaid on a portion of the collaborative document presented in the user interface.

10027] In a fourth aspect of the present disclosure, there is provided one or more tangible, non-transitory com puter-readab 1 e media storing instructions that, when executed by one or more processing devices, cause the one or more processing dev ices to present a user interface displaying the collaborative document, the user interface comprising a visual indicator representing the user access history, detect a selection of the vi sual indicator representing the user access hi story, request the user access history for the collaborative document from a serv er, and in response to receiv ing the user access history from the serv er, present an updated user interface displaying the user access history together with the collaborative document.

10028] The one or more processing devi ces may be further caused to present the user access history in a consolidated view, the user access history identifying one or more users that have access to the col laborative document and including an indication of when the one or more users most recently accessed the collaborative document.

BRI EF DESCRIPTION OF TO E DRAWINGS

10029] Aspects and implementations of the present disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various aspects and implementations of the disclosure, which, however, should not be taken to limit the di sclosure to the specific aspects or implementations, but are for explanation and understanding onl . 10030] FIG. 1 illustrates an example of a system architecture for implementations of the present disclosure.

100311 FIG. 2 il lustrates an example user interface presenting a collaborative document, in accordance with one implementation of the disclosure.

10032] FIG. 3 depicts a flow diagram of aspects of a method for storing access data in a cloud-based environment, in accordance with one implementation of the disclosure.

100331 FIG. 4 illustrates an example of an informational view displ ayed when an editor accesses the collaborative document, in accordance with one implementation of the disclosure.

10034] FIG. 5 illustrates another example of an informational view displayed when a non-editor accesses the collaborative document, i n accordance with one implementation of the di sclosure.

1003 1 FIG. 6 illustrates an example of user access history displayed in a user interface presenting the collaborative document, in accordance with one implementation of the disclosure.

100361 FIGS. 7A-7D illustrate examples of using a visual indi cator representing user access history on the user interface, in accordance with one implementation of the disclosure. 10037] FIG. 8 depicts a flow diagram of aspects of a method for a server providing the user access history for the collaborative document for display in the user interface presenting the collaborative document, in accordance with one implementation of the di sclosure.

100381 FIG. 9 depicts a flow diagram of aspects of a method for a user device presenting the user access hi story together with the collaborative document, in accordance with one implementation of the disclosure.

10039] FIGS. 10A-10B illustrate examples of performing an action corresponding to the users in the user access history, in accordance w ith one implementation of the di sclosure.

[0040 j FIG. 11 depicts a flow diagram of aspects of a method for a server receiving a message request from a user device displaying the col laborative document and performing the message request, in accordance with one implementation of the disclosure.

[0041 ] FIG. 12 depicts a flow diagram of aspects of a method for a user device performing an action based on selectable options presented in a consolidated view including the user access hi story, in accordance with one implementation of the disclosure.

10042] FIGS. 13A-13B il lustrate examples of using groups of users in the user access history, in accordance with one implementation of the disclosure. 10043] FIG. 14 illustrates an example of displaying a group to which the user does not have access in the user access history, in accordance with one implementation of the di sclosure.

[0044] FIG. 15 illustrates another example of displaying a group to which the user does not have access in the user access history, in accordance with one implementation of the disclosure.

[0045] FIGS. 16A-16D illustrate examples of using a user access privacy settings view to control settings associated with the user access history, in accordance with one

implementation of the disclosure.

10046] FIGS. 17A-17E il lustrate examples of using a general settings view to control settings associated with the u ser access history, in accordance with one implementation of the di sclosure.

[0047] FIG. 18 depicts a flow diagram of aspects of a method for a server to filter out users from the user access history based on privacy settings, in accordance with one implementation of the disclosure.

[0048] FIG. 19 depicts a flow diagram of aspects of a method for a user device to allow a user to disable user access history viewing for the collaborative document, in accordance with one implem entation of the disclosure.

10049] FIG. 20 depicts a flow diagram of aspects of a method for a user device to allow a user to disable user access history viewing for any collaborative document associated with the user, in accordance with one implementation of the disclosure.

[0050] FIG. 21 illustrates an example of a view indicating that non-editors cannot view the user access hi story for the collaborative document, in accordance with one

implementation of the disclosure.

[0051] FIG. 22 depicts a flow diagram of aspects of a method for a server determining whether to provide the user access history to a user, in accordance with one implementation of the disclosure.

[0052] FIG. 23 depicts a block diagram of an example computing system operating in accordance with one or more aspects of the present disclosure.

DETAILED DESCRIPTION

100531 Collaborative document systems may allow an electronic document owner to invite other users to join as collaborators with respect to an electronic document stored in a cloud-based environment. An electronic document refers to media content used in electronic form. Media content may include text, tables, videos, images, graphs, slides, charts, software programming code, designs, lists, plans, blueprints, maps, etc. An electronic document to which users have been granted permission to access and/or edit concurrently may be referred to as a collaborative document herein. The collaborative document may be provided to user devices of the collaborators by one or more servers in a cloud-based environment. Each collaborator may be associated with a user type (e.g., editor, reviewer, viewer, etc.). Different views and capabilities may be provided to the collaborators based on their user type to enable editing, commenting on, reviewing, or simply viewing the collaborative document. Once granted permission to access the collaborative document, the collaborators may access the collaborative document to perform operations allowed for their user type.

[0054] Conventionally, the user access history of a collaborative document is not recorded and displayed. Additionally, some systems may use separate user interfaces (UIs) for displaying an electronic document and certain recorded data, which may degrade performance of the system by switching between UIs. Systems may also use third-party trackers (e.g., a file placed on a user computer (in a browser) by a server of a system when the user accesses the system, and the fi le has a domai n of the third-party that records use of the system) to record desired data, thereby adding a separate connection point from which to retrieve data in a network and degrading performance of the system.

[0055] Aspects and implementations of the present disclosure are directed to a collaborative document system that addresses at least these deficiencies, among others, byrecording and managing user access history of collaborative documents. That is, the system improves the human-machine interaction process by recording data relating to the dynamic state of a collaborative documents, and providing said data to users who interact with the collaborative document, such as users who are editing the collaborative document. User access history of a collaborative document, which dynamically changes each time a collaborative document is accessed, may provide an author and/or collaborators of the collaborative document with various insights by viewing when others have accessed the collaborative document. For example, a senior employee in an organization may be waiting on a junior employee to access the collaborative document, or vice versa, prior to accessing the document. Displaying the user access history to the employees may aid in reducing desired changes being undone and/or change conflicts between versions of the collaborative document. Additionally, providing the user access history may result in a more streamlined process for collaborators to develop, edit, review, and/or view a collaborative document. 10056] In one implementation, a collaborative document may be shared with one or more users (e.g., collaborators). As noted above, the users may have various user types, such as editor, reviewer, or viewer. Editors may access the collaborative document to make changes to the collaborative document, reviewers may access the document to suggest changes or make comments in the collaborative document, and viewers may access the document to view the collaborative document. These accesses may be collected and recorded as user access data by servers in a cloud-based environment providing the collaborative document, without the use of a third-party tracker. User access data may include the users that access (e.g., view) the collaborative document and the time at which the users access the

collaborative document.

10057] The user access hi story may be created based on the user access data and may be prov ided for display in a user interface that may al so be presenting the col laborativ e document on a user dev ice. The user access history may be displayed in a consolidated view that show s the users that hav e permi ssion to access the collaborativ e document and an indication of whether the users hav e accessed or hav e not accessed the collaborativ e document, and times of user accesses. Also, the consolidated view may incl ude avai lable actions (e.g., sending a message, requesting rev iew, alerting to an update) corresponding to the users in the user access history.

10058] In an implementation, users having a certain user type ( e.g., editor) may be allowed to v iew the user access hi storv for users with permissions to access the col laborativ e document, while users without that certain user type cannot view the user access history. In another implementation, a user that has permission to access a collaborativ e document or that uses the collaboration document system can manage their priv acy settings by disabling user access history from being recorded at an indiv idual collaborativ e document lev el and/or at a global collaborativ e document lev el . Further, the users in the user access history may be grouped based on group metadata to organize the information presented in the consolidated view . For example, users of certain teams or departments in an organization may be grouped into different groups.

10059] In one implementation, the consolidated view may be displayed as an overlay on a portion of the collaborativ e document also being presented in the UI. Displaying the user access history in the same LI I as the collaborative document may improve processing of the collaborativ e document system due to few er transi tions between a UI solely displaying the collaborative document and a UI solely displaying the user access history. Further, netw ork traffic may be reduced because repeated requests and/or responses may be eliminated for transitioning between UIs displaying the col laborative document and the user access history individually. The consolidated view of the user access history may also enhance the UI by conveniently providing useful information and actionable options in the UI without transitioning to a separate UI. As a result, user experience with the UI may be improved.

[0060] FIG. 1 illustrates an example of a system architecture 100 for implementations of the present disclosure. The system architecture 100 includes a cloud -based environment 1 10 connected to user devices 120A-120Z via a network 130. A cloud-based environment 1 10 refers to a collection of physical machines that host applications providing one or more services (e.g., collaborative document access) to multiple user devices 120 via a network 130. The network 130 may be public networks (e.g., the Internet), priv ate networks ( e.g., a local area network (LAN) or wide area network (WAN)), or a combination thereof. Network 130 may include a wireless infrastructure, which may be prov ided by one or more wireless communications systems, such as a wireless fidelity (WiFi ) hotspot connected with the network 130 and/or a wireless carrier system that can be implemented using various data processing equipment, communication towers, etc. Additionally or alternatively, network 130 may include a wired infrastructure (e.g., Ethernet).

100611 The cloud-based env ironment 1 10 may include one or more servers 1 12 A- 1 12Z and a data store 1 14. The data store 1 14 may be separate from the serv ers I I 2A- I 12Z and communicativ ely coupled to the serv ers 1 12 A- 1 1 2Z or the data store 1 14 may be part of one or more of the servers 1 1 2 A- 1 I 2Z. The data store 1 14 may store a collaborative document 1 16. The collaborative document 1 1 6 may be a spreadsheet document, a slideshovv document, word processing document, or any suitable electronic document (e.g., an electronic document including text, tables, videos, images, graphs, slides, charts, software programming code, designs, lists, plans, blueprints, maps, etc. ) that can be shared with users.

[0062] The coll aborative document 1 16 may be created by an author and the author may share the collaborativ e document 1 16 with other users (e.g., collaborators). Sharing the collaborativ e document 1 16 may refer to granting permission to the other users to access the collaborativ e document I 16. Sharing the collaborativ e document I 16 may include informing the other users of the collaborative document 1 1 6 via a message (e.g., email ) including a link to the collaborative document 1 16. The lev el of permissions that each user is granted may be based on the user type of each particular user. For example, a user with an editor user type may be able to open the collaborativ e document 1 1 6 and make changes directly to the collaborative document 1 1 6. Whereas a user with a rev iewer user type may make comments to suggest changes in the collaborative document 1 16. [0063] The servers 1 12A-1 12Z may be physical machines (e.g., server machines, desktop computers, etc.) that each include one or more processing devices communicatively coupled to memory devices and input/output (I/O) devices. One or more of the servers 1 12A- 1 12Z may provide a collaborative document environment 122A- 122Z to the user devices 120A-120Z, The serv er 1 12A-1 12Z selected to provide the collaborative document environment 122A-122Z may be based on certain load-balancing techniques, service level agreements, performance indicators, or the like. The collaborative document environment 122A-122Z may enable users using different user devices 120A-120Z to simultaneously access the collaborative document 1 16 to review, edit, view, and/or propose changes to the collaborative document I 16 in a respective user interface 124A- 124Z that presents the collaborative document 1 16. In an implementation, the user interfaces 124A-124Z may be web pages rendered by a web browser and displayed on the user device 120A-120Z in a web browser window. In another implementation, the user interfaces 124A-124Z may be included in a stand-alone application downloaded to the user device 120A-12QZ.

[0064] The user devices 120A-120Z may include one or more processing devices communicatively coupled to memory devices and 170 devices. The user devices 12QA-120Z may be desktop computers, laptop computers, tablet computers, mobile phones (e.g., smartphones), or any suitable computing device. A user that is invited and becomes a collaborator of the collaborative document 1 16 may request to access the collaborative document 1 16. As such, the user device 1 20 A associated with the user may request the collaborative document 1 16 from the cloud-based environment 1 10. In one implementation, the request may include user access data 1 17, such as the user that accessed the collaborative document 1 16 and the time of the access. The user access data 1 17 may be stored in the data store 1 14. One of the servers 1 12A-1 12Z may provide the collaborative document 1 16 to the requesting user device 1 1 2 A for display in the user interface 122A. In one implementation, when the user device 120A accesses the collaborative document 1 16 (e.g., by viewing), the user device 1 20 A may transmit a file read receipt to the cloud-based environment 1 10. The file read receipt may include the user access data 1 17, and the user access data 1 17 may be stored in the data store 1 14.

[006 1 Further, the collaborative document environment 122A- 122Z may provide users with certain privacy settings for controlling whether their access history may be viewed for the collaborative document 1 16 and/or other collaborative documents. For example, a user may explicitly decline having their access history displayed for the collaborative document 1 16 and/or any collaborative documents. The user device 1 2 OA may transmit one or more settings 1 19 (e.g., global access history setting, document level access history setting) to the cloud-based environment 1 10 for storage in the data store 1 14.

[0066] Each of the servers I I 2A- 1 12Z may host a user access history module (1 18 A- 1 18Z). The user access history modules 1 18A-1 18Z may be implemented as computer instructi ons that are executable by one or more processing devi ces on each of the servers 1 12A- 1 12Z. The user access history modules 1 1 8A- 1 1 8Z may receive a request for the user access history for the collaborative document 1 16. The user access hi story modules 1 16A- 1 16Z may create the user access history using the user access data 1 17 by identifying the users with permission to access the collaborative document 1 16 and determining times of when the users accessed the collaborative document 1 16. The user access history modules 1 16A-1 16Z may exclude, based on the settings 1 19, user access data 1 17 for users that have not consented to allowing their access history from being shown.

[0067] The user access history may be provided to the requesting user device 120A for display in the user interface 124 A presenting the col laborative document I 1 6. In an implementation, the user access history may be displayed over a portion of the collaborative document 1 1 6 in the user interface 124 A. The user access history may be displayed in a consolidated view that specifies the users with permission to access the collaborative document 1 16, the indication of when the user accessed the col laborative document 1 16 or an indication of if the user has not accessed the collaborative document 1 16, and one or more actions corresponding to the user. For example, one action may include sending a message to the user, and the viewer can initiate this action from the consolidated view in the user interface 124A . Also, as discussed below, the users may be grouped into groups in the consolidated view based on group metadata included in the user access history.

10068] The user access hi story may be provided to users with certain user types (e.g., editors) and may be blocked from presentation to users having other user types (e.g., non- editors). Additionally, users may be eligible to see the user access history based on a type of account that i s associated with the collaborative document environment 122A. For example, one type of account may include a premium account that is eligible for viewing the user access history. Other types of accounts may include a basic account and a consumer account that are not eligible for viewing the user access history.

[0069] FIG. 2 illustrates an example user interface presenting a collaborative document I 16, in accordance w ith one implementation of the disclosure. Although the collaborative document 1 16 includes a slideshow document as an example, it should be understood that the user access history techniques of the disclosure may be applied to a spreadsheet document. word-processing document, or any suitable collaborative document. The collaborative document 1 16 is di splayed in user interface 124A of a collaborative document environment 122 A on a user device 120A. The collaborative document 1 16 may have been created by an author/owner who shared the collaborative document 1 16 with other users. Alternatively, an author may share the collaborative document 1 16 with a domain or a group of users and any users in that domain or group may be granted permission to access the collaborative document 1 1 6. The users that are granted permi sion to access the collaborative document 1 16 may each request and access the collaborative document 1 16 on respective user devices 120A-120Z. For example, the user, "Ted House," may have accepted an invitati on to join as a collaborator of the collaborative document 1 16. The user may then request to acc ss the collaborative document 200 via an input selection in the collaborative document environment 122 A, which is further described with respect to FI G. 3

100701 FIG. 3 depicts a flow diagram of aspects of a method 300 for storing user access data 1 1 7 in the cloud-based environment 1 10, in accordance with one impl ementation of the disclosure. Method 300 and each of its individual functions, routines, subroutines, or operations may be performed by one or more processing devices of the computer device executing the method. In certain implementations, method 300 may be performed by a single processing thread. Alternatively, method 300 may be performed by two or more processing threads, each thread executing one or more individual functions, routines, subroutines, or operations of the method. In an il lustrative example, the processing threads implementing method 300 may be synchronized (e.g. , using semaphores, critical sections, and/or other thread synchronization mechanisms). Alternatively, the processes implementing method 300 may be executed asynchronously with respect to each other.

10071 ] For simplicity of explanation, the methods of this disclosure are depicted and described as a series of acts. However, acts in accordance with this disclosure can occur in various orders and/or concurrently, and with other acts not presented and described herein. Furthermore, not all illustrated acts may be required to implement the methods in accordance with the disclosed subject matter. In addition, those skilled in the a t will understand and appreciate that the methods could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, it should be appreciated that the methods disclosed in this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to computing devices. The term "article of manufacture, " as used herein, i s intended to encompass a computer program accessible from any com puter-readabl e device or storage media. In one implementation, method 300 may be performed by one or more user access history modules I 1 8 A- 1 18Z executed by one or more processing devices of the servers 1 12 A - 1 12Z in the cloud-based environment 1 10.

[0072] Method 300 may begin at block 302. At block 302, the processing device may receive one or more access requests to the collaborative document 1 16. The access requests may be received from one or more user devices 120A-120Z and may each include certain access data 1 1 7, such as an identity of the user associated with a respective access request and a timestamp (date/time) at which the respective access request was made. In an implementation, the user devices 120A-120Z that access (e.g., open the collaborative document 1 16 for viewing) the collaborative document 1 16 may transmit a file read receipt to the cloud-based environment and the file read receipt may include the access data 1 17.

[0073] At block 304, the processing device may store the access data 1 17 for each of the one or more access requests or for the file read receipt in the data store 1 14. Further, the processing device may provide the collaborative document 1 16 to be presented in the one or more user interfaces 1 24A- 1 24Z of the requesting user devices 120A-120Z.

[0074] FIG. 4 illustrates an example of an informational view 400 displayed when an editor accesses the collaborative document 1 16, in accordance with one implementation of the disclosure. The informational view 400 may include a promotional message 402 that appears in the user interface 124A with the collaborative document 1 16 when the editor first accesses the collaborative document 1 16. Since editors may be allowed to view the user access history for the collaborative document 1 16, the promotional message 402 may inform the editor that they can see which collaborators have accessed their collaborative document 1 1 6 and which collaborators hav e not yet accessed the collaborativ e document 1 1 6. Further, the promotional message 402 may inform the editor that they can hide their access history if they so prefer. In an example, a link may be provided to various priv acy settings views described below with respect to FIGS. 1 7A-20 If the user desires to close the informational view 400, the user may select the OK " button 404, and the user interface 124 A may remov e the informational view 400 and display just the collaborative document 1 1 6. If the user desires to view the user access history for the collaborativ e document 1 1 6, the user may select the "OPEN" button 406, and the user interface 124 A may display the user access history, as described herein. In an implementation, the "OPEN" button 406 may be referred to as a visual indicator.

[0075] FIG. 5 illustrates another example of an informati onal view 500 di splayed when a non-editor (e.g. , viewer, reviewer) accesses the collaborativ e document 1 16, in accordance with one implementation of the disclosure. The informational view 500 may include a promotional message 502 that appears when the non-editor first accesses the collaborative document 1 16. Since non-editors may not be allowed to view the user access history for the collaborative document 1 16, the promotional message 502 may inform the non-editor that certain users can see the user access history of the collaborators for the collaborative document 1 16. Further, promotional message 502 may inform the editor that they can hide their access history if they so prefer. In an example, a link may be provided to various privacy settings views described below with respect to FIGS, 17A-20. If the user desires to close the informational view 500, the user may select the "OK" button 504, and the user interface 124A may remove the informational view 500 and display just the collaborative document 1 16.

10076] FIG. 6 illustrates an example of user access history 600 displayed in a user interface 1 24 A presenting the collaborative document I 16, in accordance with one implementation of the disclosure. As depicted, the user access history 600 may be displayed in a consolidated view 602 in the user interface 124A. In one example, the consolidated view 602 may be overlaid over a portion of the user interface 124A displaying the collaborative document 1 16. The user interface 124 A may use certain techniques, such as blurring or masking, that can be applied to the underlying collaborative document 1 16 to draw attention to the consolidated view 602, which is in focus. As should be noted, the collaborative document env ironment 122 A may not transition to a different UI to display the user access history 600, which may enhance performance of the collaborative document environment 122 A and network 130. Further, displaying the user access history 600 in the consolidated view 602 together with the collaborative document 1 16 in the same user interface 124 A may enhance the user experience with the collaborativ e document env ironment 122A by conveniently placing desired information and providing a more seamless experience.

[0077] The consolidated view 602 may include headers for the collaborators (604) granted permission to access the collaborative document 1 16, when the collaborative document 1 16 was last viewed (606), and an action (e.g., send message) (608) corresponding to the users. The user may sort (ascending/descending) the user access history by any of the headers. For example, the user access history 600 is sorted in descending order by the header associated with when the collaborative document 1 16 was last viewed (606).

[0078] Additionally, there may be different domains that each include users or groups of users with permissions to access the collaborativ e document 1 16. As such, the user may select the domain for which the user access history 600 is displayed. In the depicted example, the user access history 600 is displayed for collaborators in the "domainl .com". In another example, the user access history 600 may be displayed for any user, either within a domain or outside a domain, that has permission to access the collaborative document 1 16.

[0079] The user access history 600 may display access history for users that have not explicitly declined to allow their access history for the collaborative document 1 16 or for any collaborative document to be shown. If a user chooses to hide their user access history at the document level for the collaborative document 1 16 or at the global document level for any collaborative documents, then the user access hi storv 600 may exclude user access history pertaining to that user for the collaborative document 1 16.

[0080] Each line item in the user access history 600 may include a user icon 610 selected by the particular user or a default icon, the identity 612 (e.g., name) of the user, an identifier 614 of whether the name (e.g., "You") is associated with the user viewing the user access history 600, an indication 616 of when the user accessed the collaborative document 1 16, and a selectable option 6 1 8 to enable performing an action for the corresponding user. The selectable option 6 1 8 may be any suitable Ul element that enables selection (e.g., checkbox, radio button, slider, drop down list, etc. ).

100811 In one implementation, the indication 6 16 may represent when the user most recently accessed the collaborative document 1 16. In an implementation, the indication 6 16 may include a generalized time period of when the user accessed the collaborative document 1 16. A generalized time period may provide comfort to certain users who dislike the idea of having the exact time of when they accessed the collaborative document 1 1 6 from being vi sible to other collaborators. For example, the indications 6 16 with generalized time periods depicted in the user access history 600 include "Within the hour, " "This morning, "

"Monday, " and "Nov. 3." Also, the indication 6 16 may indicate if users have not yet accessed the collaborative document 1 16 ("Never").

[0082] In certain instances, the user access history 600 may provide insights to a user to determine who has viewed the collaborative document 1 16 and when, and who has not viewed the collaborative document 1 16. The user may use the selectable options 6 1 8 to take action (described in more detail below with respect to FIGS. 11 A- 13) by sending a message, for example, to a user, such as "Bill Webber " , who has not yet accessed the collaborative document 1 16. Other actions that may be performed using the consolidated view 602 may include, for example, requesting feedback, alerting selected users of a change to the collaborative document 1 16, etc. The user may update their privacy settings by clicking a "PRIVACY SETTINGS " button 620 provided in the consolidated view 602. [0083] FIGS. 7A-7D illustrate examples of using a visual indicator 700 representing user access history on the user interface 124 A, in accordance with one implementation of the disclosure. The visual indicator 700 may be a graphic (e.g., a graphical representation of an eye), text (e.g., "Your access history is shown" or "Your access history is not shown"), image, or the like. The visual indicator 700 may be located anywhere on the canvas of the user interface 124 A and i s not limited to the particular depicted location. In other

implementations, a dropdown menu may provide a link to display the user access history 600 or privacy settings associated with the user access history 600.

[0084] FIG 7A illustrates the visual indicator 700 as a graphical representation of an eye, which may indicate that the access history for the user associated with the collaborative document 1 16 or for any collaborative document is enabled. Thus, other collaborators may be able to see when the user accesses the collaborativ e document 1 16. In one implementation, selecting the visual indicator 700 may open the consolidated view 602 including the user access hi story 600 in the user interface 1 24 A displaying the collaborative document 1 16. 10085] In another implementation, selecting or hovering over the visual indicator 700 may cause a menu to appear that provides a link 702 to the user access history 600, as shown in FIG. 7B. The menu may be displayed in the user interface 124 A presenting the

collaborative document 1 16. If the user selects the link, the user access hi story 600 may be displayed. In an implementation, if the user selects or hovers over the visual indicator 700, a menu may appear that provides a link 702 to user access privacy settings. If the user selects the link 702, a view including privacy settings may be displayed within the user interface 124 A presenting the collaborative document 1 16.

[0086] In yet another implementation, depicted in FIG. 7C, selecting or hovering over the vi sual indicator 700 may cause a menu to appear that provides a selectable option 704 to change the setting 119 associated with access history for the collaborative document 1 1 6 or for any collaborative document. When the user changes the selectable option 704 to disable showing user access history for the collaborative document, as shown in FIG. 7D, the visual indicator 700 may change (e.g., the eye has a strikethrough ) to indicate that access history viewing is disabled.

[0087 j FIG. 8 depicts a flow diagram of aspects of a method 800 for a server providing the user access hi story 600 for the collaborative document I 16 for di splay in the user interface 1 24 A presenting the collaborative document I 16, in accordance with one implementation of the disclosure. Although the user interface 124 A i s used for discussion of method 800, it should be understood that any other user interface I 24B- 1 24Z may be used. instead of or in addition to the user interface 124A, to display the user access history 600 and the collaborative document 116. For example, multiple user interfaces 124A-124Z may simultaneously display the user access history 600 and the collaborative document 116.

Method 800 may be performed in the same or a similar manner as described above in regards to method 300. Al so, method 800 may be performed by processing devices of one or more of the servers 112A-112Z executing the user access history modules 118A-118Z in the cloud- based environment 110.

[0088] Method 800 may begin at block 802. At block 802, the processing device may receive a request for the collaborative document 116. The request may be received from a user device 120 A executing the collaborative document environment 122 A. The collaborative document 1 16 may be open in one or more of the collaborative document environments 122B-122Z on other user devices 120B-12QZ when the request is received. In one

implementation, the user access data 1 17 included in the access request may be stored by the processing device in the data store 1 14.

[0089] At block 804, the processing device may provide the collaborative document 116 for presentation to the user in the user interface 124 A. For example, the processing device may retrieve the collaborative document 116 from the data store 114 and transmit the collaborative document 1 16 to the collaborative document environment 122A executing on the user device 120 A. The collaborative document environment 122 A may present the collaborative document 116 in the user interface 124A. In an implementation, the user device 120 A may transmit a file read receipt to the cloud-based environment 1 10 when the user accesses the collaborative document 1 16, such that the user access data 1 17 may be stored in the data store 114.

[0090] At block 806, the processing device may receive a request for the user access history 600 for the collaborative document 1 16 being presented in the user interface 124 A. The user may select a visual indicator of the user access history on the canvas of the user interface 124A (e.g., visual indicator 700), from an informational view 400 (e.g., "OPEN" button 406), or from a drop-down menu (e.g., a link).

[0091] At block 808, the processing device may create the user access history 600 for the collaborative document 116 based on the user access data 117 including accesses of the collaborative document 1 16 by one or more of the users. The processing device may retrieve the user access data 1 1 7 from the data store I 14 and identify user accesses for the

collaborative document 1 16. Also, the processing device may retrieve the settings 1 19 and determine hich users have explicitly declined to allow their user access history to be shown. The processing device may exclude the user access data 1 17 associated with users that have explicitly declined from the user access hi story 600. The created user access history 600 may include the identity of the users with permission to access the collaborative document 1 1 6 and an indicator of when the users have accessed the collaborative document 1 16 or whether the users have not yet accessed the coll aborative document 1 16. In an implementation, the user access history 600 may also i nclude group metadata that specifies an identity of a group including users with permission to access the collaborative document 1 16.

100921 At block 810, the processing device may provide the user access history 600 for the collaborative document I 16 for displ ay in the user interface 1 24 A presenting the collaborative document I 16. The user access history 600 may be displayed in the

consolidated view 602 as depicted in FIG. 6. There may be selectable options to perform one or more actions corresponding to each of the users in the user access history 600. For example, if a certain user has not accessed the collaborative document 1 1 6 since a substantial change was made, then the user may send a message to that user to encourage them to access ( e.g., review, edit, view) the collaborative document 1 16.

100931 FIG. 9 depicts a flow diagram of aspects of a method 900 for a user device 1 20 A updating the user interface 124 A to present the user access history 600 together with the collaborative document 1 16, in accordance with one implementation of the di closure.

Although the user interface 124 A is used for discussion of method 900, it should be understood that any other user interface 1 24B- 124Z may be used, instead of or in addition to the user interface 124A, to di splay the user access history 600 and the collaborative document 1 16. For example, multiple user interfaces 124A- 124Z may simultaneously display the user access hi story 600 and the collaborative document 1 16. Method 900 may be performed in the same or a similar manner as described above in regards to method 300. Also, method 900 may be performed by processing devices of one or more of the user devices 1 20A- I 20Z executing the collaborative document environments I 22A- I 22Z. For purposes of clarity, the user device 1 20 A is referenced throughout the discussion of method 900.

10094] Method 900 may begin at block 902. At block 902, the processing device may present the user interface 124 A displaying the collaborative document 1 16. The user interface 124 A may include a visual indicator representing the user access history 600. In some examples, the visual indicator may be a graphic (e.g. , the visual indicator 700 is an eye 700 in FIGS. 7A-7D), image, text, button (e.g., "OPEN" button 406 in informational view 400 of FIG. 4 or any other button in the user interface 124 A), link (e.g., in a drop-down menu or on the canvas of the user interface 124A), or any other suitable visual indicator that represents the user access hi story 600.

[0095] At block 904, the processing device may detect a selection of the visual indicator representing the user access history 600. In an implementation, the user may use a cursor to select the visual indicator, or when the user device 120A implements a touchscreen, the user may tap the visual indicator on the touchscreen. At block 906, the processing device may request the user access hi stoiy 600 for the collaborative document 1 16 from the server 1 12 A. For example, responsive to the selection of the visual indicator, the processing device may send a request for the user access history 600 to the server 1 1 2 A (e.g., any of servers 112 A- 1 12Z in the cloud-based environment 1 10). At block 908, the processing device may, in response to receiving the user access hi story 600 from the server, update the user interface 124 A to present the user access hi story 600 together with the collaborative document 1 16 as depicted in FIG. 6.

10096] As shown in the consolidated view 602, the user may perform one or more actions corresponding to the users in the user access history 600. As such, FIGS. 10A- 10B illustrate examples of performing an action corresponding to the users in the user access history 600, in accordance with one implementation of the disclosure. Although FIGS. 10A- I 0B depict an example of the action being sending a message, it should be understood that other actions may be performed similarly to as shown. In particular, FIG. 10A depicts a user selecting several of the selectable options 618 in the consolidated view 602 displaying the user access history 600. The user access history 600 remains displayed together with the collaborative view 1 16 in the user interface 124A. The user selected the selectable option 618 for "Joe Smith," "Jane Doe," and "Bill Webber."

10097] Selecting one or more of the selectable options may cause a bar 1000 to appear in the header of the consolidated view 602. The bar may provide an indication 1002 of how many items ( users) are selected via the selectable options 618, a "CANCEL" button 1004 to cancel the selected action, and a "SEND MESSAGE " button 1006. When the user is ready to send a message to the desired users, the user may select (e.g., selection circle 1008) the "SEND MESSAGE " button 1006. The selection may be made via any suitable input apparatus (e.g., mouse, touchscreen, voice command via microphone).

[0098] Selecting the "SEND MESSAGE " button 1006 may cause a message view 1010 to appear, as shown in FIG. 10B. Although the message view 1010 is shown for purposes of explanation, it should be understood that any suitable action configuration view may be shown together with the collaborative document 1 1 6 in the user interface 1 24 A. The message view 1010 may be displayed in the user interface 124A together with the collaborative document 1 16. The selected users ("Joe Smith," "Jane Doe," and "Bill Webber") are displayed in a recipient portion 1012. in an implementation, the user may add additional recipients of the message as desired. A subject portion 1014 may include the subject of the message and may be modifiable by the user. In an implementation, the subject may be defaulted to the title of the collaborative document 1 16. A message portion 1016 may enable a user to enter text of a message they desire to send to the selected users. In an

implementation, the user may be able to upload attachments to the message, set deadlines (e.g., dates when feedback i s desired, dates when access i s desired, etc. ), or the like. When the user is satisfied with the message, the user may click a "SEND MESSAGE " button 10 18, which may cause the message to be sent to one or more servers 1 I 2A- 1 1 2Z of the cloud- based environment 1 10, as described below.

[0099] FIG. 11 depicts a flow diagram of aspects of a method 1 100 for a server I 1 2 A (e.g., any of servers 1 12A-1 12Z in the cloud-based env ironment 1 10) receiv ing a message request from a user device 120 A displaying the collaborative document 1 16 and transmitting a message, in accordance with one implementation of the disclosure. Method 1 100 may be performed in the same or a similar manner as described above in regards to method 300. Also, method 1 100 may be performed by processing devi ces of one or more of the serv ers 1 12A- 1 12Z executing the user access history modules 1 1 8A- 1 1 8Z in the cloud-based environment 1 10.

1001001 Method 1 100 may begin at block 1 102. At block 1 102, the processing dev ice may receiv e a message request including a message to be sent to one or more users displayed in the user access hi story 600 in the user interface 1 24 A . As described above, the user viewing the user access hi story 600 may select one or more selectable options 6 1 8 corresponding to users to which the user desires to send a message. The user may complete the message to the selected users in the message view 1010 and may send the message request from the user dev ice 1 20A by clicking the "SEND MESSAGE " button 108. At block 1 104, the processing device may transmit the message to one or more user devices (e.g., 120B- I 20Z) associated with the one or more users designated as recipients in the message.

{ 001011 FIG. 12 depicts a flow diagram of aspects of a method 1200 for a user device 120 A performing an action based on selectable options 6 1 8 presented in the consolidated v iew 602 including the user access history 600, in accordance with one implementation of the disclosure. Although the user interface 124 A is used for discussion of method 1200, it should be understood that any other user interface I 24B- 1 24Z may be used, instead of or in addition to the user interface 124A, to display the user access hi story 600 and the collaborative document 1 16. For example, multiple user interfaces 124A-124Z may simultaneously display the user access hi story 600 and the col laborative document 1 16. Method 900 may be performed in the same or a similar manner as described above in regards to method 300. Also, method 1200 may be performed by processing devices of one or more of the user devices 120 A- 120Z executing the collaborative document environments 122A- 122Z. For purposes of clarity, the user device 1 20 A is referenced throughout the discussion of method 1200.

1001021 Method 1200 may begin at block 1 202. At block 1 202, the processing device may present the user access hi story 600 in the consolidated view 602. The user access hi story 600 may specify one or more users that have access to the collaborative document 1 16 and an indication of when the one or more users most recently accessed the col laborative document 1 16. Also, the indication may be a generalized time period, as discussed above.

1001031 At block 1 204, the processing device may present, withi n the consolidated view 602, one or more selectable options 6 1 8 to perform an action for each of the one or more users.

[00104] At block 1206, the processing device may receive selection of one or more selectable options 618 associated with the one or more users. For example, the user may select one or more selectable options 6 1 8 in the consolidated view 602 and the bar 1000 may appear in the consolidated view 602. The user may select a perform action button (e.g., "SEND MESSAGE" button 1006).

[00105] At block 1208, the processing device may display an action configuration view (e.g., message view 1010) with the collaborative document I 16 in the user interface 124 A in response to the user selecting a perform action button (e.g., "SEND MESSAGE " button 1006). In some implementations, selecting the perform action button (e.g., "SEND

MESSAGE " button 1006) may cause the action to be performed without displaying an action configuration view. The user may customize the action (e.g., message) in the action configuration view when displayed. From the action configuration view, the user may select the perform action button (e.g., "SEND MESSAGE " button 1018).

[00106] At block 12 10, the processing device may perform the action in response to the user selecting either the perform action button in the consolidated view 602 or the action configuration view. In some examples, the action may include sending the message, requesting feedback, setting a deadline, uploading an attachment to aid in reviewing the collaborative document 1 16, alerting about a change in the collaborative document 1 16, and the like.

[00107] FIGS. 13A-13E illustrate examples of using groups of users in the user access history 600, in accordance with one implementation of the disclosure. In an implementation, the user may organize users with access to the collaborative document 1 16 into groups.

Additionally or alternatively, an administrator may organize the users into groups (e.g., based on departments or teams within an organization). The groups may be stored in the data store 1 14 in the cloud-based environment 1 10. Group metadata may include membership information of the users that are part of a certain group. The group metadata may be included in the user access history 600 such that group information may be displayed.

[00108| FIG. 13A illustrates one such group 1300 in the user access history 600. As depicted, the group 1300 includes an identity of "sales-group" and it is contracted to just display the identity of the group 1300 without showing the individual members of the group 1300. When the list of information in the user access history 600 is sorted by indication 6 16 of when the users last viewed the collaborative document 1 16, the indication 6 16 for the group 1300 is represented by the most recent access of a user within the group. For example, the indication 6 16 for the group is depicted as "This morning. " Since "This morning " is later than "Within the hour" and "Monday," the group is placed in between users ("Ted House" and "John Doe " ) associated with those indications 6 16.

[00109] When the user selects to expand the group 1300, the user device 120A may fetch the individual user members from one or more servers 1 12A-1 1 2Z of the cloud-based environment 1 10. In some instances, there may be a rule that specifies a threshold number of users that can be shown for the group 1300. If the number of users returned from the servers exceeds the threshold, a message may be displayed underneath the identity of the group 1300 in the user access history 600 that the group has too many members to display. Further, if the request fails, a generic error message may be displayed underneath the identity of the group 1300 in the user access history 600 that the group members may not be displayed at that time, for example. It should be noted that these messages may be displayed at any suitable location in the user interface 124 A.

1001 101 If the users of the group 1300 load successfully in the user access history 600, the users may be displayed at location indicative of being part of the group 1300. For example, in FIG. 13B, users ("Brad Smithy" and "Sam Tarley") are displayed below the group 1300 and indented to indicate that the users are part of the group 1300. As previously mentioned, the list in the user access history 600 is sorted by indication 6 16 of when the users most recently accessed the collaborative document 1 16. As such, the user ("Brad Smithy") who accessed the collaborative document 1 16 "This morning" is displayed above the user ("Sam Tarley") who accessed the collaborative document 1 16 "Yesterday". Also, in FIG. 13A the indication 616 ("This morning") for the group corresponds to the indication 616 for "Brad Smithy" since his access indication 616 is most recent.

[00111] In some implementations, external group members may not be shown in the expanded view of the group 1300. As depicted, a message 1304 may be displayed for the group that indicates that group members outside of the domain being shown (e.g.,

"domainl .com") are not shown. Further, each user in the group 1300 may also include the selectable options 618 to perform an action corresponding to the users in the group 1300. 1001 12| In an implementation, the user viewing the user access history 600 may not have access to view the membership details of the group 1300. For example, FIG. 14 il lustrates that the user access history 600 includes the group 1300 ("sales-group") but the user viewing the user access hi story 600 does not have access to view membership detail s related to the group 1300. As such, there is no indication 6 16 for when the group 1300 last viewed the collaborative document 1 16, and the group 1300 is placed at the bottom of the list in the user access history 600. When the user selects to expand the group 1300, a message 1500 is displayed that indicates the user does not have access to the membership details of the group 1300, as illustrated in FIG. 15.

[00113] FIGS. 16A-16E illustrate examples of using a user access privacy setting view 1600 to control settings associated with the user access history 600, in accordance with one implementation of the disclosure. The user access privacy setting view 1600 may be displayed in the user interface 1 24 A together with the col laborative document 1 16. To open the user access privacy setting view 1600, the user may select visual indicators (e.g., link, button, graphic, image, etc.) representing the user access privacy setting view 1600 from any- suitable location (e.g., any view described herein, drop-down menu, on canvas of the user interface 124A, etc.) in the user interface 124 A displaying the collaborative document 1 16.

[001 14| FIG. 16A illustrates an example of a user access privacy setting view 1600 displayed together with the collaborative document 1 16. The particular example of the user access privacy setting view 1600 may be displayed to users that have a certain user type (e.g., editor) that allows the viewing of the user access history 600. The user access privacy setting view 1600 may include two selectable options: a first selectable option 1602 for global account setting and a second selectable option 1604 for a document setting. The first selectable option 1602 for the global account setting may control whether the user access histoiy is shown for any documents to which the user has permission to access (global access history setting). The second selectable option 1604 for the document setting may control the user access history for the speci ic col laborative document 1 16 currently accessed (document level access history setting). The global access history setting and the document level access history setting may be considered settings 1 19 and may be referred to a privacy settings herein. If the user modifies the first selectable option 1602 and/or the second selectable option 1604, the user may click a "DONE" button 1605 to send the settings 1 19 to the cloud- based environment 1 10 to be stored in the data store I 14.

[00115] As depicted, the user has enabled both the first selectable option 1602 and the second selectable option 1604, and thus, the user has allowed their user access history to be viewed for the particular document and for any document to which the user has permission to access. If the user disables the first selectable option 1602 to explicitly decline their user access history from being shown for any collaborative document, then the second selectable option 1604 may automatically be disabled for the collaborative document 1 1 6, as well . In some instances, the second selectable option 1604 may be become hidden from view when the first selectable option 1 602 i di sabled.

1001 16| FIG. 16B illustrates another example of the user access privacy setting view 1600 displayed together with the collaborative document 1 16. This particular example of the user access privacy setting view 1600 may be displayed to users that have a certain user type (e.g., non-editor) that are prevented from viewing the user access history 600. For example, a message 1606 may be displayed in the user access privacy setting view 1600 that indicates that editors or owners of the collaborative document 1 16 can see who has accessed their collaborative documents, and the user may manage how their access history is shown to those users using the first selectable option 1602 and the second selectable option 1604.

1001 17| FIG. 16C illustrates another example of the user access privacy setting view 1600 where an administrator has disabled the collection of user access data 1 1 7 for the collaborative document 1 16, thereby preventing the user from modifying their settings 1 19. In such an instance, the user access privacy setting view 1600 may display a message 1608 indicating that the admini strator does not currently allow their access history to be shown. While in this state, the user may not edit their user access privacy settings, in this

implementation . For example, the first selectable option 1602 and the second selectable option 1604 may be hidden so the user cannot modify their settings.

1001 1 S I FIG. 16D illustrates another example of the user access privacy setting view 1600 where an administrator has di sabled the collection of user access data 1 17 for the collaborative document 1 16, but the user is still allowed to modify their settings 1 19. In such an instance, the user access privacy setting view 1600 may display a message 1610 indicating that the administrator does not currently al low their access history to be shown and may display another message 1612 indicating that the user may manage how their access history shoul d be shown if the administrator changes the setting to collect user access data 1 17 again. As depicted, the first selectable option 1602 and the second selectable option 1604 remain visible in the user access privacy setting view 1600 so the user can modify their settings 1 19. 1001 19| FIGS. 17A-17E illustrate examples of using a general settings view 1700 to control settings associated with the user access history 600, in accordance with one implementation of the disclosure. The general settings view 1700 may be displayed in the user interface 124 A together with a home page 1702 displaying the collaborative documents that the user has permission to access. To open the general settings view 1700, the user may select visual indicators (e.g., link, button, graphic, image, etc.) representing the general setting views from any suitable location (e.g., any view described herein, drop-down menu, on canvas of the user interface 124 A, etc. ) in the user interface 1 24 A displaying the home page 1702.

[00120] FIG. 17A illustrates the general settings view 1700 including a selectable option 1704 for a global account setting (e.g., setting 1 19). The selectable option 1704 for the global account setting may control whether the user access history is shown for any documents to which the user has permission to access (global access history). In an implementation, the general settings view 1700 may include a message 1705 that indicates that user can hide their user access history for specific documents by accessing the user access privacy settings view 1600. If the user modifies the selectable option 1704, the user may click a "DONE" button 1 706 to send the global account setting to the cloud-based env ironment 1 10 to be stored in the database 1 14.

[00121] FIGS. 17B-17C illustrate various examples for modifying the selectable option 1704 in the general settings view 1700. It should be understood that the techniques described below for FIGS. 17B- 17C may be applicable to any similar selectable option described herein

[00122] In one example, a user may disable the user access history using the selectable option 1 704 by sliding the selectable option 1 704 from right to left. FIG. 17B illustrates the selectable option 1 704 at a middle toggle state until the setting 1 19 is updated. The selectable option 1 704 may remain in this middle toggle state until the setting 1 19 is accepted by one or more servers 1 1 2 A- 1 12Z in the cloud-based environment 1 10 and stored in the database 1 14. The middle toggle state may provide an indication to the user that the setting 119 is in the process of being updated. While the selectable option 1704 is in the middle toggle state, a message 1708 may be displayed that indicates that the global access history setting is being updated.

[00123] FIG. 17C illustrates an example of the general settings view 1700 when the global access history setting is successfully updated. As depicted, the selectable option 1704 is disabled and a message 1710 is displayed that indicates that the global access history setting is updated. Once the global access history setting is updated, other collaborators cannot see the user access history for any collaborative documents associated with the user.

[00124] FIG. 17D illustrates an example of the general settings view 1700 when the global access history setting cannot be updated. As depicted, the selectable option 1704 returned to enabled and a message 1712 is displayed that indicates that the global access history setting could not be updated. While the global access history setting is enabled, the certain users allowed to view the user access history 600 can see user access history associated with the user for any collaborative document the user has permission to access.

[00125] FIG. 17E illustrates an example of the general settings view 1700 when the administrator has disabled the collection of user access data 117. In such a scenario, a message 1714 may be displayed in the general settings view 700 that indicates that the administrator does not currently allow their access history to be shown. The selectable option 1704 may be hidden such that the user cannot modify their global access setting. In another implementation, the general settings view 1700 may allow the user to update the global access setting by modifying a visible selectable option 1704, and a message may be displayed that indicates that the user can set the global access setting to how they desire their access history to be shown when the administrator changes settings.

[00126] FIG. 18 depicts a flow diagram of aspects of a method 1800 for a server (e.g., one or more servers 112A-112Z of the cloud-based environment 110) to filter out users from the user access history 600 based on privacy settings 119, in accordance with one

implementation of the disclosure. Method 1800 may be performed in the same or a similar manner as described above in regards to method 300. Also, method 1800 may be performed by processing devices of one or more of the servers 112A-112Z executing the user access history modules 118A-118Z in the cloud-based environment 110.

[00127] Method 1800 may begin at block 1 802. At block 1802, the processing device may receive a request to disable showing the user access history associated with a first user (e.g., user A) of the user device 120A for the collaborative document 116. The request may include a document level access history setting (setting 1 19) indicating that user A explicitly declines to allow their user access for the collaborative document 1 16 to be shown. The server (1 12A- 1 127.) may store the setting 1 19 in the data store 1 14.

[00128] At block 1804, the processing device may receive, from a second user (e.g., user B) of user device 120B, a request for the user access hi story 600 for the collaborative document 1 16 being presented in the user interface 124B. At block 1806, the processing device may create the user access hi story 600 for the collaborative document 1 16 based on the user access data 1 1 7 and the document level access history setting 1 19. For example, the processing device may exclude the user access history for user A with the document level access history setting 1 19 that indicates user A explicitly declined to allow their user access history to be shown for the collaborative document 1 16. The processing device may exclude any other user access data 1 17 from the user access history 600 for other users that explicitly declined, based on the document level access history setting 1 19, to allow their user access history to be shown for the collaborative document I 16. The processing device may just include user access history 600 for users that allow their user access history to be shown for the collaborative document I 16 (based on the document level access history setting 1 19).

[00129] In an implementation, the processing device may use the global access history setting 1 19 instead of or in addition to the document level access history setting 1 19 when creating the user access history 600. For example, if a user set the global access history setting 1 1 9 to disabled, then the processing device may exclude the user access hi story for that user for the collaborative document 1 16. Additionally, i the user access history 600 is requested for any other collaborative document, the user that set the global access hi stor - setting 1 19 to di sabled may also be excluded from the user access history 600 for those collaborative documents.

[00130] At block 1 808, the processing device may provide the user access hi story 600 for the collaborative document 1 16 for display in the user interface 124B presenting the collaborative document 1 16. It should be noted that the user access history 600 does not include access history for any users that set the document level access history setting I 19 to disabled or the global access history setting 1 19 to disabled.

[00131] FIG. 19 depicts a flow diagram of aspects of a method 1900 for a user device 120 A to allow a user to disable user access hi story viewing for the collaborative document I 16, in accordance with one implementation of the disclosure. Method 1900 may be performed in the same or a similar manner as described above in regards to method 300. Also, method 1900 may be performed by processing devices of one or more of the user devices I 20A- 120Z executing the collaborative document environments 122A- 122Z. For purposes of clarity, the user device 120 A is referenced throughout the discussion of method 1900.

[00132] Method 1900 may begin at block 1902. At block 1902,the processing device may receive a selection to view user access history settings. The selection may be received via a visual indicatory (e.g., button, link, graphic, image, etc.) located at any suitable location (e.g., on the canvas of the UI 124 A, in a drop-down menu of the UI 124 A, on any view presented in the 111 124 A, etc.) of the UI 124 A presenting the collaborative document I 16.

[00133] At block 1904, the processing device may present the user access privacy setting view 1600 including at least one of a selectable option (e.g., the second selectable option 1604) to enable or disable user access history viewing associated with the user for the collaborative document 116 (document level access history setting 119). At block 1906, the processing device may receive a selection, via the second selectable option 1604, to disable the user access hi story viewing associated with the user for the collaborative document 1 16. The user device 120 A may transmit a request to the server (one or more of servers 112A- 1 12Z) to set the document level access history setting 119 to disabled. If the server accepts the change to the document level access history setting 1 19, the document lev el access history setting 119 may be saved in the database 1 14. As a result, the server may exclude the access history for the user for the collaborative document 116 based on the document level access history setting 119.

[00134] At block 1908, the processing device may, in response to receiving the user access history 600 that excludes the user access history associated with the user for the collaborative document 116 from the server, display an updated user interface 124 A to present the user access hi story 600 together with the collaborative document 116.

[00135] FIG. 20 depicts a flow diagram of aspects of a method 2000 for a user device 120 A to allow a user to disable user access history viewing for any collaborativ e document associated with the user, in accordance with one implementation of the di sclosure. Method 2000 may be performed in the same or a similar manner as described above in regards to method 300. Also, method 2000 may be performed by processing devices of one or more of the user dev ices 120A- 120Z executing the collaborativ e document env ironments 122A- 122Z. For purposes of clarity, the user dev ice 120 A is referenced throughout the discussion of method 2000.

[00136] Method 2000 may begin at block 2002. At block 2002, the processing device may receiv e a selection to view user access history settings. The selection may be receiv ed via a visual indicator (e.g., button, link, graphic, image, etc.) located at any suitable location (e.g., on the canvas of the UI 124 A, in a drop-down menu of the UI 124 A, on any view presented in the UI 124 A, etc.) of the UI 1 24 A presenting the collaborative document 1 16.

[00137] At block 2004, the processing device may present the user access privacy setting view 1600 including at least one of a selectable option (e.g., the first selectable option 1602) to enable or disable the user access history for any collaborative documents to which the user has permission to access (global access history setting). At block 2006, the processing device may receive a selection, via the first selectable option 1602, to disable the user access history viewing associated with the user for each collaborative document to which the user has access. The user device 1 20 A may transmit a request to the server (one or more of servers 1 12A-1 12Z) to set the global access history setting 1 19 to disabled. If the serv er accepts the change to the global access history setting 1 19, the global access hi story setting 1 19 may be saved in the database 1 14. As a result, the server may exclude the access hi story for the user for the collaborative document 1 16 based on the global access hi story setting 1 19. Likewise, if the user access history is requested for any other collaborative document to which the user has permission to access, the server may exclude the access hi story for the user from those as well based on the disabled global access history setting 1 19.

1001381 At block 2008, the processing device may, in response to receiving the user access history 600 that excludes at least the user access history associated with the user for the collaborative document I 16 from the server, display an updated user interface 1 24 A to present the user access hi story 600 together with the collaborative document 1 16.

[00139| FIG. 21 illustrates an example of a view 2100 indicating that non-editors cannot view the user access history 600 for the collaborative document 1 1 6, in accordance with one implementation of the disclosure. The view 2 100 may be displayed in the UI 124 A presenting the collaborative document I 16. The view 2100 may include a message 2 1 02 that indicates that the user cannot view the user access history 600 unless the user has a user type of editor. The view 2100 may be di splayed a result of the user selecting a visual indicator representing the user access hi story 600 in the UI I 24A. In an implementation, the v iew 2100 may also include a link 2 104 that enables the user to request the certain user type (e.g., editor) to be able to v iew the user access history 600.

[00140| FIG. 22 depicts a flow diagram of aspects of a method 2200 for a server determining whether to provide the user access history 600 to a user, in accordance with one implementation of the disclosure. Method 2200 may be performed in the same or a similar manner as described above in regards to method 300. Al so, method 2200 may be performed by processing devices of one or more of the servers 1 12A-1 12Z executing the user access history modules 1 1 8 A- 1 18Z in the cloud-based environment 1 10.

[00141] Method 2200 may begin at block 2202, At block 2202, the processing device may receive a request for the user access history 600. The request may be received from the user device 1 20 A. At block 2204, the processing device may determine whether the user has a certain user type (e.g., editor with editing permissions). If the user has the certain user type, the processing device may provide (block 2206) the user access history 600. If the user does not have the certain user type (e.g., is a non-editor), the processing device may (block 2208) block the user access history 600 from being sent.

[00142] For simplicity of explanation, the methods of this disclosure are depicted and described as a series of acts. However, acts in accordance with this disclosure can occur in various orders and/or concurrently, and with other acts not presented and described herein . Furthermore, not all illustrated acts may be required to implement the methods in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that the methods could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, it should be appreciated that the methods disclosed in this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to computing devices. The term "article of manufacture, " as used herein, is intended to encompass a computer program accessible from any com puter-readabl e device or storage media.

[00143] FIG. 23 depicts a block diagram of an example computing system operati ng in accordance with one or more aspects of the present disclosure. In various illustrative examples, computer system 2300 may correspond to any of the computing devices within system architecture 100 of FIG. 1. In one implementation, the computer system 2 00 may be each of the servers 1 1 2A- 1 1 27... In another implementation, the computer system 2300 may be each of the user devices 120A- 120Z.

1001441 In certain implementations, computer system 2300 may be connected (e.g. , via a network, such as a Local Area Network (LAN), an intranet, an extranet, or the Internet) to other computer systems. Computer system 2300 may operate in the capacity of a server or a client computer in a client-server environment, or as a peer computer in a peer-to-peer or distributed network environment. Computer system 2300 may be provided by a personal computer (PC ), a tablet PC, a set-top box (STB), a Personal Digital Assi stant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any device capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that device. Further, the term "computer" shal l include any collection of computers that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methods described herein .

[00145] In a further aspect, the computer system 2300 may include a processing device 2302, a volatile memory 2304 (e.g., random access memory (RAM)), a non-volatile memory 2306 (e.g., read-only memory ( ROM ) or el ectri cal 1 y-erasab 1 e programmable ROM

( EEPROM)), and a data storage device 23 16, which may communicate with each other via a bus 2308.

[00146] Processing device 2302 may be provided by one or more processors such as a general purpose processor (such as, for example, a complex instruction set computing (CISC ) microprocessor, a reduced instruction set computing (RISC ) microprocessor, a very long instruction word (VLIW ) microprocessor, a microprocessor implementing other types of instruction sets, or a microprocessor implementing a combination of types of instruction sets) or a specialized processor (such as, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), or a network processor).

[00147] Computer system 2300 may further include a network interface device 2322. Computer system 2300 al so may include a video di splay unit 2310 (e.g., an LCD), an alphanumeric input device 23 12 (e.g., a keyboard), a cursor control device 23 14 (e.g., a mouse), and a signal generation device 2320.

1001481 Data storage dev ice 2316 may include a non-transitory com puter-readabl e storage medium 2324 on which may store instructions 2326 encoding any one or more of the methods or functions described herein, including instructions implementing the user access history module 1 1 8 (1 1 8A- 1 18Z) of FIG. 1 for implementing methods 300, 800, 1 100, 1400, 1800, and 2200 or including instructions implementing collaborativ e document environment 122 ( 122A- 122Z) of FIG. 1 for implementing methods 900, 1200, 1500, 1900, and 2000.

[00149] Instructions 2326 may also reside, completely or partially, within volatile memory 2.304 and/or w ithin processing device 2302 during execution thereof by computer system 2300, hence, volatile memory 2304 and processing dev ice 2.302 may al so constitute machine-readable storage media.

1001501 While computer-readable storage medium 2324 is shown in the illustrativ e examples as a single medium, the term "computer-readabl e storage medium" shall include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of executable instructions. The term "computer-readable storage medium" shall also include any tangible medium that is capable of storing or encoding a set of instructions for execution by a computer that cause the computer to perform any one or more of the methods described herein. The term "computer- readable storage medium" shall include, but not be limited to, solid-state memories, optical media, and magnetic media.

[00151] In the foregoing description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the present disclosure can be practiced without these specific details. In some instances, well- known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.

[00152] Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skil led in the art. An algorithm is here, and general ly, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

[00153] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient label s applied to these quantities. Unless speci ically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "receiving", "displaying", "moving", "adjusting", "replacing", "determining", "playing", or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or regi sters or other such information storage, transmission or display devices. 1001541 For simplicity of explanation, the methods are depicted and described herei n as a series of acts. However, acts in accordance with this disclosure can occur in various orders and/or concurrently, and with other acts not presented and described herein. Furthermore, not all illustrated acts can be required to implement the methods in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that the methods could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, it should be appreciated that the methods disclosed in this

specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to computing devices. The term article of manufacture, as used herein, is intended to encompass a computer program accessible from any com puter-readabl e device or storage media.

[00155] Certain implementations of the present di sclosure also relate to an apparatus for performing the operations herein. This apparatus can be constructed for the intended purposes, or it can comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer readable storage medium, such as, but not limited to, any type of disk i ncluding floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions.

[00156] Reference throughout thi s specification to "one implementation " or "an implementation " means that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrase "in one implementation " or "in an implementation " in various places throughout this specification are not necessarily all referring to the same

implementation. In addition, the term "or" i s intended to mean an inclusive "or" rather than an exclusive "or." Moreover, the words "example " or "exemplary " are used herein to mean serving as an example, instance, or i llustration. Any aspect or design described herein as "exemplary " is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words "example " or "exemplary " is intended to present concepts in a concrete fashion.

[00157] It i s to be understood that the above description is intended to be illustrative, and not restrictive. Many other implementations will be apparent to those of ski ll in the art upon reading and understanding the above description. The scope of the disclosure should. therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

[00158] Further to the descriptions above, a user may be provided with control s allowing the user to make an election as to both if and when systems, programs or features described herein may enable collection of user information (e.g., information about a user' s social network, social actions or activities, profession, a user' s preferences, or a user's current location), and if the user is sent content or communications from a server. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user' s identity may be treated so that no personally identifiable information can be determined for the user, or a user' s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over what information is collected about the user, how that information is used, and what information i s provided to the user.