Patent Publication Number: US-RE48194-E

Title: Systems and methods for monitoring and applying data related to shareable links associated with content items stored in an online content management service

Description:
BACKGROUND 
     The present disclosure relates generally to online content management services and in particular to monitoring statistical data related to shared content stored in an online content management service and using the statistical data to provide additional features and/or services to users. 
     Online content management services allow users to access and manage content across multiple devices using the Internet. Online content management services typically also enable users to share content with other persons, both members and non-members of the online content management services. In a typical online content management service, a user establishes an account with the service provider and associates various content items with the account. For example, some online content management services can allow the user to store content items (including but not limited to text documents; email messages; text messages; other types of messages; media files such as photos, videos, and audio files; and/or folders containing multiple files) and to selectively allow other users to access the content items. Content items can be stored in a master repository maintained by the service provider and mirrored to or synchronized with local copies on various user devices. 
     Online content management services can monitor sharing activity and based on that activity provide additional features and/or services. 
     SUMMARY 
     Certain embodiments of the present invention relate to monitoring activity on shareable links created for content items (including but not limited to text documents; email messages; text messages; other types of messages; media files such as photos, videos, and audio files; and/or folders containing multiple files) stored in an online content management service and providing features and/or services based on that activity. In some embodiments, content items can be shared through the online content management service to other recipient users and/or groups by creating shareable links for the content items. The shareable links can be shared with recipient users and/or groups through the online content management service and/or through other communications media such as email, instant message, text, etc. The online content management service can monitor activity on each shareable link, e.g., requests to download a content item received through a shareable link. Shareable link data can be stored in one or more data structures. In some embodiments the shareable link data can include the data related to the monitored activity, the sharing user&#39;s history of creating shareable links, bookmarked shareable links, and each user&#39;s share network. 
     In some embodiments, the online content management service can execute actions based on the shareable link data. These actions can include sending notifications regarding link activity, disabling shareable links, and/or updating activity thresholds related to the shareable links. Recommendations for sharing unshared content items can be generated based on a user&#39;s share history. For example, previously shared content items which received more activity than a threshold value can be monitored, and similar unshared content items can be identified and a sharing recommendation can be generated. In some embodiments, the sharing recommendation can include a recommendation of particular members of a user&#39;s share network with whom to share the unshared content item. 
     In some embodiments, the online content management service can serve advertisements in response to requests to download a shared content item using a shareable link. The advertisements can each be associated with an advertising rate determined based on a user&#39;s share history. Additionally, or alternatively, the advertising rate for an advertisement on a particular shareable link can be increased or decreased dynamically depending on the activity monitored on that shareable link. 
     The following detailed description together with the accompanying drawings will provide a better understanding of the nature and advantages of the present invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows clients accessing an online content management service according to an embodiment of the present invention. 
         FIG. 2  is a simplified block diagram illustrating a representative computer system. 
         FIG. 3  shows data structures in which data related to shareable links can be stored, in accordance with an embodiment of the present invention. 
         FIG. 4  shows an exemplary user interface through which shareable links can be requested, in accordance with an embodiment of the present invention. 
         FIG. 5  shows a flow diagram of a process of monitoring activity associated with a shareable link and performing an action based on the activity, in accordance with an embodiment of the present invention. 
         FIG. 6  shows a flow diagram of a process of generating a sharing recommendation for an unshared content item, in accordance with an embodiment of the invention. 
         FIG. 7  shows a flow diagram of a process of adding target identifiers to a user&#39;s share network, in accordance with an embodiment of the present invention. 
         FIG. 8  shows a flow diagram of a process of serving advertisements based on a user&#39;s share history, in accordance with an embodiment of the present invention. 
         FIG. 9  shows a flow diagram of a process of varying advertising rates of advertisements associated with a user&#39;s shareable links based on shareable link activity, in accordance with an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION 
     Online content management services can enable users to access their content items from any internet-connected device. As described above, these services enable users to share their content items with other users including both members and non-members of the services. One way of sharing content items is by creating shareable links which can be easily shared with recipient users. A shareable link is a uniform resource locator (URL) that can be used to download a content item stored in an online content management service. The shareable link can be share with other users through the online content management service, or through other communication channels such as email, text message, instant message, etc. When a recipient user follows a shareable link in an internet browser on a client device, the recipient user can be shown a download page from which the content item can be downloaded. In some embodiments, when the recipient user follows the shareable link, a download can be initiated directly without first displaying a download page. 
     Online content management services can collect data related to activity received through shareable links to improve the user experience by providing additional features and/or services to the user. For example, a shareable link&#39;s activity can be monitored and reported to the user who created the shareable link. This provides an increased level of control to the sharing user by enabling the sharing user to identify when and how often shared content items are downloaded. This enables the sharing user to e.g., more readily identify if a shareable link has been shared with more people than expected, or determine that a content item has been mistakenly shared. In some embodiments, identity information corresponding to recipient users who download a content item can be reported. 
     To protect user privacy, when a recipient user requests to download a shared content item using a shareable link, the recipient user can receive a notification that the shareable link&#39;s activity is being monitored. The notification can enable the recipient user to cancel the request without any potentially identifying information being collected and/or recorded. In some embodiments, reported activity information can indirectly identify recipient users who have downloaded a content item using a shareable link, e.g., when a content item is shared with a limited number of recipient users. To address this concern, in some embodiments, activity information can be reported in aggregate after a number of requests have been received to obscure user-specific data which may be used to identify a particular recipient user. 
     Certain embodiments of the present invention relate to monitoring activity on shareable links created for content items (including but not limited to text documents; email messages; text messages; other types of messages; media files such as photos, videos, and audio files; and/or folders containing multiple files) stored in an online content management service and providing features and/or services based on that activity. In some embodiments, content items can be shared through the online content management service to other users and/or groups by creating a shareable links for the content items. The shareable links can be shared with recipient users and/or groups through the online content management service and/or through other communications media such as email, instant message, text, etc. The online content management service can monitor activity on each shareable link, e.g., requests to download a content item received through a shareable link. Shareable link data can be stored in one or more data structures. In some embodiments the shareable link data can include the data related to the monitored activity, the sharing user&#39;s history of creating shareable links, bookmarked shareable links, and the sharing user&#39;s share network. 
     In some embodiments, the online content management service can execute actions based on the shareable link data. These actions can include sending notifications regarding link activity, disabling shareable links, and/or updating activity thresholds related to the shareable links. Recommendations for sharing unshared content items can be generated based on a user&#39;s share history. For example, previously shared content items which received more activity than a threshold value can be monitored, and similar unshared content items can be identified and a sharing recommendation can be generated. In some embodiments, the sharing recommendation can include a recommendation of particular members of a user&#39;s share network with whom to share the unshared content item. 
     In some embodiments, the online content management service can serve advertisements in response to requests to download a shared content item using a shareable link. The advertisements can each be associated with an advertising rate determined based on a sharing user&#39;s share history. Additionally, or alternatively, the advertising rate for an advertisement on a particular shareable link can be increased or decreased dynamically depending on the activity monitored on that shareable link. 
       FIG. 1  shows clients accessing an online content management service  100  according to an embodiment of the present invention. Online content management service  100  can include, for example, a file storage service, a file sharing service, a social media service that allows users to post messages and/or other content, and so on. Online content management service  100  can be hosted on servers maintained by a service provider and accessed via a network  102 , such as the Internet. 
     Users can access online content management service  100  by operating various clients  110 ,  112 ,  114 ,  116 . As used herein, a “client” refers generally to a combination of computer hardware and software that enables a user to interact with online content management service  100 . For example, client  110  can be a desktop or laptop computer executing a web browser (e.g., Internet Explorer, Google Chrome, or Safari) that communicates with online content management service  100  using web protocols such as HTTP (Hypertext Transfer Protocol). Client  112  can be a desktop or laptop computer executing an application program provided by the provider of online content management service  100 . In some instances where the online content management service provides access to files, the application program can allow files hosted on a server to appear to exist within a filesystem structure associated with the client computer&#39;s operating system. It should be noted that in some instances the same client computer can execute both a web browser and a desktop application program; accordingly, it is to be understood that a single physical device can implement one or more clients. In some embodiments, a when a user accesses online content management service  100  using a client, the user can authorize the client with the user&#39;s account. A user account can store a record of each client that is authorized with the user account, including identifying information from the client such as an IP address, MAC address, phone number, or other information. Authorizing a device with a user account can enable faster and/or simplified access to online content management service  100 , client notifications, and other features. 
     Other examples of clients include mobile devices, e.g., tablet computer  114  and mobile phone  116 , which can execute application programs (also referred to as “apps”) that communicate with online content management service  100 . At various times, a user can be interacting with one or more of clients  110 ,  112 ,  114 ,  116 . 
     In some embodiments, online content management service  100  can allow users to selectively share content items stored in the online content management service  100  with other users, including members and non-members of the online content management service  100 . One way of sharing content items is by creating shareable links. A user can select a content item and create a shareable link (e.g., including a uniform resource locator, or URL) for that content item. The shareable link can then be shared through online content management service  100  and/or through different communication media, such as instant message, email, SMS, and other similar channels. A content item for which a sharable link is created is accessible to whoever is given the shareable link. In some embodiments, the online content management service can include an interface for sending shareable links for content items. A sharing user can provide target identifiers corresponding to those persons or groups to whom the shareable link is to be sent. The target identifiers can include email addresses, membership identifiers associated with the online content management service, or other similar identifier. In accordance with an embodiment, a shareable link for a folder can enable a recipient user following the shareable link to access the content items within the folder. 
     In some embodiments, the online content management service can analyze the target identifiers received from a sharing user to determine whether any of the target identifiers correspond to a member of the online content management service. For example, the sharing user can provide an email address for a recipient who is also a member of the online content management service. The online content management service can identify members by comparing the target identifiers to email addresses used by members when they joined. For those target identifiers that correspond to members of the online content management service, notifications that include the shareable link can be sent to client devices through the online content management service. For example, a notification can be stored in a member&#39;s user account. When the member next accesses online content management service  100 , the notification can be displayed to the member. In some embodiments, the notification can be pushed to authorized clients and displayed on the client device. In some embodiments, the notification can be sent in addition to an email that includes the shareable link. In other embodiments, the notification can be sent instead of the email. 
     Various operations described herein can be implemented on computer systems, which can be of generally conventional design.  FIG. 2  is a simplified block diagram illustrating a representative computer system  200 . In various embodiments, computer system  200  or similar systems can implement a client (e.g., any of platforms  110 ,  112 ,  114 ,  116 ) or a server (e.g., server  200 ). 
     Computer system  200  can include processing unit(s)  205 , storage subsystem  210 , input devices  220 , output devices  225 , network interface  235 , and bus  240 . 
     Processing unit(s)  205  can include a single processor, which can have one or more cores, or multiple processors. In some embodiments, processing unit(s)  205  can include a general-purpose primary processor as well as one or more special-purpose co-processors such as graphics processors, digital signal processors, or the like. In some embodiments, some or all processing units  205  can be implemented using customized circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In other embodiments, processing unit(s)  205  can execute instructions stored in storage subsystem  210 . 
     Storage subsystem  210  can include various memory units such as a system memory, a read-only memory (ROM), and a permanent storage device. The ROM can store static data and instructions that are needed by processing unit(s)  205  and other modules of electronic device  200 . The permanent storage device can be a read-and-write memory device. This permanent storage device can be a non-volatile memory unit that stores instructions and data even when computer system  200  is powered down. Some embodiments of the invention can use a mass-storage device (such as a magnetic or optical disk or flash memory) as a permanent storage device. Other embodiments can use a removable storage device (e.g., a floppy disk, a flash drive) as a permanent storage device. The system memory can be a read-and-write memory device or a volatile read-and-write memory, such as dynamic random access memory. The system memory can store some or all of the instructions and data that processing unit(s)  205  need at runtime. 
     Storage subsystem  210  can include any combination of computer readable storage media including semiconductor memory chips of various types (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory) and so on. Magnetic and/or optical disks can also be used. In some embodiments, storage subsystem  110  can include removable storage media that can be readable and/or writeable; examples of such media include compact disc (CD), read-only digital versatile disc (e.g., DVD-ROM, dual-layer DVD-ROM), read-only and recordable Blue-Ray® disks, ultra density optical disks, flash memory cards (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic “floppy” disks, and so on. The computer readable storage media do not include carrier waves and transitory electronic signals passing wirelessly or over wired connections. 
     In some embodiments, storage subsystem  210  can store one or more software programs to be executed by processing unit(s)  205 , such as an operating system, a browser application, a mobile app for accessing an online content management service, a desktop application for accessing the online content management service, and so on. “Software” refers generally to sequences of instructions that, when executed by processing unit(s)  205  cause computer system  200  to perform various operations, thus defining one or more specific machine implementations that execute and perform the operations of the software programs. The instructions can be stored as firmware residing in read-only memory and/or applications stored in non-volatile storage media that can be read into volatile working memory for execution by processing unit(s)  205 . Software can be implemented as a single program or a collection of separate programs or program modules that interact as desired. From storage subsystem  210 , processing unit(s)  205  can retrieve program instructions to execute and data to process in order to execute various operations described herein. 
     A user interface can be provided by one or more user input devices  220  and one or more user output devices  225 . Input devices  220  can include any device via which a user can provide signals to computing system  200 ; computing system  200  can interpret the signals as indicative of particular user requests or information. In various embodiments, input devices  220  can include any or all of a keyboard, touch pad, touch screen, mouse or other pointing device, scroll wheel, click wheel, dial, button, switch, keypad, microphone, and so on. 
     User output devices  225  can include any device via which computer system  200  can provide information to a user. For example, user output devices  225  can include a display to display images generated by computing system  200 . The display can incorporate various image generation technologies, e.g., a liquid crystal display (LCD), light-emitting diode (LED) including organic light-emitting diodes (OLED), projection system, cathode ray tube (CRT), or the like, together with supporting electronics (e.g., digital-to-analog or analog-to-digital converters, signal processors, or the like). Some embodiments can include a device such as a touchscreen that function as both input and output device. In some embodiments, other user output devices  225  can be provided in addition to or instead of a display. Examples include indicator lights, speakers, tactile “display” devices, printers, and so on. 
     Network interface  235  can provide voice and/or data communication capability for computer system  200 . In some embodiments, network interface  235  can include radio frequency (RF) transceiver components for accessing wireless voice and/or data networks (e.g., using cellular telephone technology, advanced data network technology such as 3G, 4G or EDGE, WiFi (IEEE 802.11 family standards), or other mobile communication technologies, or any combination thereof), GPS receiver components, and/or other components. In some embodiments, network interface  235  can provide wired network connectivity (e.g., Ethernet) in addition to or instead of a wireless interface. Network interface  235  can be implemented using a combination of hardware (e.g., antennas, modulators/demodulators, encoders/decoders, and other analog and/or digital signal processing circuits) and software components. 
     Bus  240  can include various system, peripheral, and chipset buses that communicatively connect the numerous components of computing system  200 . For example, bus  240  can communicatively couple processing unit(s)  205  with storage subsystem  210 . Bus  240  can also connect to input devices  220  and output devices  225 . Bus  240  can also couple computing system  200  to a network through network interface  235 . In this manner, computing system  200  can be a part of a network of multiple computer systems (e.g., a local area network (LAN), a wide area network (WAN), an intranet, or a network of networks, such as the Internet). 
     Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a computer readable storage medium. Many of the features described in this specification can be implemented as processes that are specified as a set of program instructions encoded on a computer readable storage medium. When these program instructions are executed by one or more processing units, they cause the processing unit(s) to perform various operation indicated in the program instructions. Examples of program instructions or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter. 
     Through suitable programming, processing unit(s)  205  can provide various functionality for computing device  200 . For example, in a mobile computing device, processing unit(s)  205  can execute an operating system and an app to communicate with online content management service  100 . In a desktop computing device, processing unit(s)  205  can execute an operating system and a desktop application program that presents an interface to online content management service  100 ; in some embodiments, this interface can be integrated with an interface to a filesystem maintained by the operating system. In some embodiments, processing unit(s)  205  can execute a browser application that provides the ability to retrieve and display content items from sources such as online content management service  100  (e.g., using HTTP or other data transfer protocols to retrieve and display web pages) and the ability to receive and interpret user input pertaining to the content items, such as selection of an item to view, submission of data by the user in response to a particular content item (e.g., filling out a form on an interactive web page), and so on. 
     It will be appreciated that computer system  200  is illustrative and that variations and modifications are possible. Computer system  200  can have other capabilities not specifically described here (e.g., mobile phone, global positioning system (GPS), power management, one or more cameras, various connection ports for connecting external devices or accessories, etc.). Further, while computer system  200  is described with reference to particular blocks, it is to be understood that these blocks are defined for convenience of description and are not intended to imply a particular physical arrangement of component parts. Further, the blocks need not correspond to physically distinct components. Blocks can be configured to perform various operations, e.g., by programming a processor or providing appropriate control circuitry, and various blocks might or might not be reconfigurable depending on how the initial configuration is obtained. Embodiments of the present invention can be realized in a variety of apparatus including electronic devices implemented using any combination of circuitry and software. 
     As described above, shareable link data can be stored in one or more data structures from which it can be used to provide an improved user experience.  FIG. 3  shows data structures in which data related to shareable links can be stored, in accordance with an embodiment of the present invention. Data structure  300  represents a user share history. Online content management service  100  can maintain a user share history for each member. As shown in  FIG. 3 , user share history  300  can include details for each shareable link created by a user. Although a single shareable link, shareable link A  302 , is shown in user share history  300 , it will be understood that user share history  300  can include data for multiple shareable links. User share history  300  can include a copy of the shareable link URL, e.g., shareable link A  302  corresponds to URL A. In some embodiments, the shareable link URL can be a short URL created using a URL shortening service. User share history  300  can include name  304  and type  306  of the shared content item. Type  306  can include the shared content item&#39;s file extension or type if the content item is a folder. 
     In some embodiments, activity on the shareable link can be stored in view metric  308 . For example, view metric  308  can include a view count that increments each time a request to access the shareable link is received, a click-through-rate (CTR) for advertisements associated with the shareable link, time stamps for requests received using the shareable link, etc. In some embodiments, view metric  308  can include a reshare count that increments each time a shareable link is reshared by a recipient user through online content management service  100 . Activity thresholds  310  can include limitations that are set when the shareable link is created. These limitations can include a view count limit, a bandwidth limit, and/or a temporal limit, as well as privacy features configured by the sharing user or set by online content management service  100 . When a request for a content item is received by online content management service  100  using a shareable link, online content management service  100  can compare view metric data  308  to activity thresholds data  310  to determine whether to allow access to the content item. As is discussed further below, the activity thresholds can be used to trigger one or more actions related to the shareable link. For example, these actions can include reporting shareable link activity, disabling the shareable link, or other actions. 
     Sharing targets  312  can include target identifiers, such as user and/or group identifiers, to which the shareable link has been sent. As described above, a shareable link can be shared directly through online content management service  100  and/or through other communications channels. Online content management service can populate sharing targets  312  with those target identifiers to which the shareable link was sent through online content management service  100 . In some embodiments, however, online content management service  100  does not populate sharing targets  312  with target identifiers to which the shareable link was sent via other channels. As such, sharing targets  312  may provide an incomplete list of target identifiers to which a shareable link has been sent. When a request is received for the content item using the shareable link, a user identifier associated with the request can be compared to sharing targets  312  and, if the user identifier is not included, can be added to sharing targets  312 . As more requests are received using the shareable link, sharing targets  312  will represent a more complete list of target identifiers to which the shareable link was sent. 
     In some embodiments, user share history  300  can include request data field  313 . Request data field  313  can include data for each request received to access a content item associated with a shareable link. The data can include a time and date of the request, an IP from which the request was received, and other data related to the request. In some embodiments, location information can be included in request data field. The location data can be derived from the IP address or included with the request. If the request is received from a member of online content management service  100 , a user identifier associated with the request can also be stored in request data  313 . 
     Data structure  314  represents a user&#39;s share network. Online content management service  100  can maintain user share network  314  data structure for each member. User share network  314  can include direct field  316  including each target identifier to which a shareable link has been sent by the sharing user. In some embodiments direct field  316  can be populated based on user share history  300  by extracting the user and/or group identifiers included in each shareable link&#39;s sharing targets field  312 . The target identifiers included in direct field  316  represent a first level share network for the sharing user. In some embodiments, a recipient user who receives a shareable link from another user can reshare the shareable link by sending it to additional target identifiers through online content management service  100 . Reshare  318  can include reshare user identifiers corresponding to those recipient users who reshared the shareable link, and reshare target identifiers corresponding to those user and/or group identifiers to which the shareable link was reshared. This way, user share network  314  can include target identifiers corresponding to a second level of the sharing user&#39;s share network. 
     In some embodiments, bookmark data structure  320  can be provided which stores information related to shareable links received and bookmarked by a recipient user. Online content management service  100  can maintain bookmark data structure  320  for each member, stored in the member&#39;s user account. When a request is received to bookmark a shareable link by a recipient user, an entry to the recipient user&#39;s bookmark data structure  320  can be added. The entry can include a copy of the shareable link URL  322 , a user identifier  324  of the sharing user from whom the shareable link was received, and sortable metric  326 . In some embodiments, sortable metric  326  can include metrics such as a view count and/or a label provided by the user. Multiple metrics can be stored for each shareable link. Online content management service  100  can provide a representation of bookmark data structure  320  to a client device for display. The client device can display the bookmarked links and enable the bookmarked links to be sorted according to sortable metric  326 . In some embodiments, the representation can be a sharing graph that graphically represents relationships between the sharing users who created the bookmarked shareable links and the user associated with the bookmark data structure. 
       FIG. 4  shows an exemplary user interface through which shareable links can be requested, in accordance with an embodiment of the present invention. As shown in  FIG. 4 , user interface  400  can be displayed on a client device and used to navigate and manage content items stored in online content management service  100 . The user interface can display the user&#39;s content as shown at  402 , which can be sorted according to one or more characteristics of the content items. For example, as shown in  FIG. 4 , folders and files are organized separately and are sorted by name  404 . Alternatively, the content items can be sorted by kind  406 . Each content item can be displayed with shareable link icon  408 . User interface  400  can include selectable icons for content management operations, such as uploading new content items  410 , creating a new folder  412 , creating a new shared folder  414 , and deleting content items  416 . User interface  400  can include a search bar  418 . 
     When shareable link icon  408  is selected for a particular content item, if a shareable link has already been created for that content item the shareable link URL can be displayed along with a selectable option to create a new shareable link. In some embodiments, if a shareable link has already been created for the content item, shareable link URL  409  can be displayed next to shareable link icon  408 . If no shareable link has been created, or if the user selects to create a new shareable link, a create shareable link dialog  420  can be displayed. As shown in  FIG. 4  create shareable link dialog  420  can be displayed as a sidebar. In some embodiments, create shareable link dialog  420  can be displayed as a pop-up window, overlay, or other graphical representation depending on the client device in use. Selected content item field  422  can display the name of the content item for which a shareable link will be created. For example, if a shareable link is being created for the folder Photos, selected content item field  422  will display “Photos”. Target identifiers field  424  can include the identifiers of recipient users to whom the sharing user requests online content management service  100  send the shareable link. The target identifiers can include group and/or user identifiers for members of online content management service  100  and email addresses for non-members. 
     The sharing user can specify activity thresholds in activity thresholds field  426 . The activity thresholds can include a maximum number of views, a bandwidth limitation, a temporal limitation, or other sharing limitations such as by geographic or political area, interne protocol (IP) address, or range of IP addresses. A bandwidth limitation can represent a maximum amount of data transferred of a period of time for a content item. Each time a content item is downloaded, the amount of data transferred from the online content management service increases. This can be tracked on a per content item basis such that if a bandwidth limit for a content item is reached, sharing of the content item can be disabled. In some embodiments, privacy alert settings field  428  can include user-configurable privacy settings. As described above, these settings can include an option to provide notice to recipient users that the shareable link is being monitored and/or an option to determine whether to report activity in aggregate or on a per request basis. Once the sharing user has completed filling out create shareable link dialog  420 , the sharing user can select send  430  to create the shareable link for the content item and send the shareable link to target identifiers  424 . In some embodiments, the sharing user can share the shareable link via communication channels other than online content management service  100 , e.g., by copying and pasting shareable link URL  409  into an email, SMS, instant message, or other communications medium. 
     In some embodiments, after creating the shareable link, the sharing user can update the settings from those that were provided when the shareable link was created. For example, the sharing user can select a content item in user interface  400  for which a shareable link was previously created. The settings for the previously created shareable link can be shown, e.g., in dialog  420 . This enables the sharing user to change the settings, such as adding new target identifiers or changing activity thresholds, without requiring the sharing user to create and share a new shareable link. Once the sharing user has made a change to the settings, send icon  430  can be replaced by an update icon that, when selected, dynamically changes the settings for the shareable link. 
     As described above, in some embodiments online content management service  100  can monitor shareable link activity and perform an action based on that activity. This can include determining whether an activity threshold has been met and/or whether activity information can be reported, based on the shareable link&#39;s privacy settings.  FIG. 5  shows a flow diagram of a process of monitoring activity associated with a shareable link and performing an action based on the activity, in accordance with an embodiment of the present invention. Process  500  can be implemented, e.g., on online content management service  100 . 
     At block  502 , online content management service  100  can receive a request to create a shareable link for a content item. As described above, the request can include privacy settings and activity thresholds which can set one or more activity thresholds for the shareable link, such as a maximum view count. At block  504 , the shareable link is created and associated with the activity threshold. In some embodiments, when the shareable link is created, an entry is added to user share history  300  including the shareable link URL and activity threshold(s). At block  506 , a request is received to download the content item using the shareable link. The request can be received from any user with a copy of the shareable link URL. At block  508 , online content management service  100  can determine whether any activity threshold has been met based on user share history  300 . At block  510 , online content management service  100  can execute an action based on the determination. For example, activity thresholds  310  can include a privacy setting which requires a view count of five (or some other minimum number) before activity information is reported to the sharing user. Online content management service  100  can determine the view count using view metric  308  and, if the view count is greater than or equal to five, send activity information to the sharing user who created the shareable link. As another example, activity thresholds  310  can include a maximum view count. Online content management service  100  can determine whether the maximum view count has been reached using view metric  308  and allow or refuse access to the content item accordingly. This effectively deactivates the link, as subsequent requests will similarly be over the maximum view count. 
     In some embodiments, activity information can be summarized in a report that is sent and/or made available to the sharing user. The report can include a summary of requests to access the content item. The summary can include all requests that were successful (those requests where the requesting user successfully downloaded the content item). In some embodiments the summary can include unsuccessful attempts, where the download was canceled or interrupted. In some embodiments, the summary can include representations of data stored in user share history  300  associated with the shareable link. 
     For example, the summary can include representations of the view metrics, such as view count and CTR. In some embodiments, the view metrics can be shown relative to the activity thresholds and/or where appropriate the differences between the activity thresholds and the view metrics. For example, the report can indicate how many requests have been received for a particular content item and how many more can be received before an activity threshold is triggered. In some embodiments, all request data  313  collected for each request, including time and date stamps, location information, and user identifiers can be included in the report. 
     In some embodiments, online content management service  100  can identify different groups of requests to access a content item using a shareable link using data stored in request data field  313 . When a user shares a shareable link, a first group of requests can be expected to be received from recipient users. After the first group of requests are received, it can be expected that activity subsides once the target users have obtained the content item. Depending on the users to whom the shareable link was sent, groupings of requests can be represented in one or more dimensions. For example, the first group can be temporally related, such that a difference between timestamps of different requests is less than a first threshold. The first group can also be geographically related, for example if a content item is shared with coworkers in the same office, or friends at a school. Geographically related groups of requests can be identified using geographic data, or IP address data, stored in request data field  313 . Geographically related groups can also refer to groups of requests that originate from the same political area, such as nation, state, or province. The number of requests received to be classified as a group can be determined by the online content management service or configured by the sharing user. 
     In some embodiments, if a second group of requests is identified a notification can be sent to the sharing user who created and shared the shareable link. The second group of requests can be identified similarly to the first group, based on temporal or geographic commonalties. The notification can inform the sharing user that a second group of requests has been received and include details about the group, such as the common geographic location or time when the requests were received. Each group can be identified as being distinct where, e.g., a difference between a timestamp corresponding to the last request in the first group and a timestamp corresponding to the first request in the second group is greater than a second threshold. A distance threshold can be used to identify geographically distinct groups. This can alert the sharing user that the shareable link has been shared improperly, and may be being accessed by unintended users. For example, if the second group of requests is received much later than the first, or from a foreign country, the alert gives the sharing user the opportunity to determine whether to disable the link. 
     As described above, online content management service  100  can monitor how many requests are received using a particular shareable link, and can store that information in user share history  300  as a view count. By comparing the view counts of shareable links in a user&#39;s user share history  300 , online content management service  100  can identify relatively popular shared content items, e.g., those associated with shareable links receiving higher numbers of requests, and relatively unpopular shared content items. Using this information, online content management service  100  can generate recommendations for sharing unshared content items having similar characteristics to a user&#39;s more popular shared content items.  FIG. 6  shows a flow diagram of a process  600  of generating a sharing recommendation for an unshared content item, in accordance with an embodiment of the invention. Process  600  can be implemented, e.g., on online content management service  100 . 
     At block  602 , online content management service  100  can monitor requests received from recipient users via shareable links. As described above, this can include incrementing a view count each time a request for a content item is received using a shareable link. The view count can be stored in a user&#39;s share history  300 . At block  604 , online content management service  100  can identify a subset of shared content items associated with shareable links that have received more requests than a threshold value. In some embodiments, this threshold value can be set by online content management service  100 , while in other embodiments this threshold value can be made user-configurable. This threshold can be independent of other thresholds described herein, such as the threshold limit for reporting statistics described above. The threshold value can be used to identify which shared content items are popular, for the purposes of creating a recommendation. At block  606 , common characteristics of each content item in the subset of shared content items can be determined. These characteristics can include content item name and content item metadata such as authorship, creation time/date, location information, keywords or tags or other content descriptors, and any other metadata that is available. In some embodiments, the contents of particular content items can be analyzed, depending on user privacy settings. If content analysis is enabled, for example if a content item is marked analyzable, then online content management service  100  can determine the content item&#39;s type and further analyze the contents of the content item. In some embodiments, public items can automatically be marked analyzable and private items can automatically not be marked analyzable. In some embodiments, a content item can be marked analyzable independent of whether the content item is public or private. For example, if a popular shared content item is identified as an image, then it can be analyzed to identify faces of people in the image. Unshared content items can be similarly analyzed to identify whether they include faces in common with the popular shared content item. Similarly, location information and creation time/date information can be used to identify unshared content items that were related to and/or created concurrently with the popular content item. 
     At block  608 , a recommendation is sent to the user to share an unshared content item based on the common characteristics. In some embodiments, the recommendation can include particular target identifiers with whom it is recommended to share the unshared content item. Online content management service  100  can identify the different subsets of users, e.g., using user share history  300  and/or user share network  314 , who have viewed, and/or have received links to view, particular content items, and associate the subsets with particular characteristics of content items. Online content management service  100  can then tailor recommendations for unshared content items to the subsets based on identified characteristics of the content items. For example, a work presentation content item may be downloaded by one subset of target identifiers corresponding to coworkers. Work-related content items stored in online content management service  100  can share particular common characteristics including, but not limited to, file naming convention, folder name, creation time/date, location information, keywords or tags or other content descriptors. The subset of target identifiers with whom work-related content items are commonly shared, based on the user share history, can be automatically associated with the particular work-related content item characteristics. Online content management service  100  can then identify similar content items and recommend that they be shared with the subset of target identifiers corresponding to coworkers. Similarly, a vacation image content item may be downloaded by a different subset of target identifiers corresponding to friends and family. Online content management service  100  can identify similar content items based on common characteristics, such as other vacation images, and recommend sharing them with friends and family. 
     As described above, online content management service  100  can tailor recommendations to subsets of target identifiers based on user share network  314 . User share network  314  can also be used as a security feature to confirm that shareable links are sent to intended target identifiers, as is discussed further below. As such, maintaining user share networks can improve recommendation and security features provided by online content management service  100 .  FIG. 7  shows a flow diagram of a process of adding target identifiers to a user&#39;s share network, in accordance with an embodiment of the present invention. Process  700  can be implemented, e.g., on online content management service  100 . 
     At block  702 , online content management service  100  can receive a request to create a shareable link for a content item. As described above, the request can include target identifiers to which the shareable link is to be sent by online content management service  100 . At block  704 , user share network  314  can be retrieved and at block  706 , the target identifiers included in the request can be compared to those in user share network  314 . In some embodiments, a notification can be sent if any of the target identifiers are not listed in user share network  314 . This can help avoid accidentally sending a shareable link to an unintended recipient. In some embodiments, online content management service  100  can require user authentication, e.g., input of a password, token, or other authentication mechanism, before sending a shareable link to a target identifier not included in user share network  314 . At block  708 , user share network  314  can be updated to include any target identifiers that were not previously included. In some embodiments, when a user shares a first content item, similar content items can be identified based on the common characteristics and a recommendation to share the similar content items with a subset of target identifiers associated with the common characteristics can be generated and sent to the user. 
     In some embodiments, advertisements can be served when a recipient user requests to download a content item using a shareable link, such as on a download page or other web page or within an application. The advertisements can be priced based on past and current activity on the sharing user&#39;s shareable links. This enables online content management service  100 , e.g., to serve higher value advertisements for links shared by users who have a history of sharing relatively popular links. The advertisements served, and the advertising rate of those advertisements, can vary dynamically based on the monitored activity of the shareable link. The advertising rate can correspond to the amount an advertiser pays when an advertisement is displayed and/or when a user responds to the displayed advertisement, e.g., by selecting the advertisement to obtain additional information. In some embodiments, a click through rate (CTR) can be associated with each user based on how often advertisements served with the user&#39;s shareable links are clicked. Users with a history of higher CTRs can have higher value advertisements served with their shareable links. 
       FIG. 8  shows a flow diagram of a process of serving advertisements based on a user&#39;s share history, in accordance with an embodiment of the present invention. Process  800  can be implemented, e.g., on online content management service  100 . 
     At block  802 , online content management service  100  can receive a request to create a shareable link from a user. As described above, the request can include one or more target identifiers to which the shareable link is to be sent. At block  804 , an advertising rate can be determined based on the user&#39;s user share history  300 . An advertising rate schedule can be used to determine the advertising rate for the shareable link based on user share history  300 . Online content management service can analyze user share history  300  to determine how many shareable links the sharing user has created and an average number of requests received using each shareable link. An appropriate rate can be selected from the advertising rate schedule based on the sharing user&#39;s average requests per shareable link. Additionally, or alternatively, user share history  300  can be used to determine a type associated with the content item. The advertising schedule can specify different advertising rates for each type of content item. In some embodiments, user share history  300  can be used to determine for each content item type, how many shareable links have been created and an average number of requests per shareable link. The advertising rate schedule can include different advertising rates for each content item type, and rates can be assigned based on the average request per shareable link for each content item type. 
     At block  806 , online content management service  100  can identify an advertisement based on the advertising rate. In some embodiments, a specific advertisement having the determined advertising rate can be selected based on information about the content item, such as the content item&#39;s name and the content item&#39;s content. For example, if a shareable link is created for a folder entitled “Vacation Photos,” advertisements for vacations or vacation-related products can be selected. At block  808 , a request is received for the content item using the shareable link. At block  810 , the identified advertisement is served along with the content item in response to the request. 
     Requests received for a content item using a shareable link can exceed or underperform estimates based on a user&#39;s share history. Where monitored activity on a particular shareable link does not match the initial advertising rate, a new advertising rate can be determined and a new advertisement served.  FIG. 9  shows a flow diagram of a process of varying advertising rates of advertisements associated with a user&#39;s shareable links based on shareable link activity, in accordance with an embodiment of the invention. Process  900  can be implemented, e.g., on online content management service  100 . 
     At block  902 , a request is received to create a shareable link for a content item. At block  904 , a first advertisement is served in response to a request for the content item using the shareable link. The first advertisement can be selected using, e.g., process  800  described above. At block  906 , activity on the shareable link can be monitored and a view count determined. As described above, the view count can be stored in user share history  300  in an entry corresponding to the shareable link. At block  908 , online content management service  100  can determine that the view count has exceeded a threshold. In some embodiments, this determination can be made each time a request is received using the shareable link. At block  910 , in response to the determination a second advertisement having a higher advertising rate can be selected and served in response to subsequent requests. In some embodiments, if no requests have been received in a period of time, a lower advertisement rate can be associated with the shareable link. This enables advertising rates to vary over time based on the shareable link&#39;s activity. 
     It will be appreciated that processes  500 ,  600 ,  700 ,  800 , and  900  are illustrative and that variations and modifications are possible. Steps described as sequential can be executed in parallel, order of steps can be varied, and steps can be modified, combined, added or omitted. Used together, processes  500 ,  600 ,  700 ,  800 , and  900  (or similar processes) can allow users to create and share shareable links for content items and enable online content management service  100  to monitor requests received using the shareable links and execute actions based thereon. 
     While the invention has been described with respect to specific embodiments, one skilled in the art will recognize that numerous modifications are possible. For example, the particular events, data structures, and platforms described herein are used for purposes of illustration; other events, data structures, and platforms can be substituted. Techniques for creating and sharing shareable links, as well as monitoring and executing actions based on requests received for those shareable links, can also be modified as appropriate for a particular client. 
     Embodiments described above can make reference to data structures and databases or data stores. It is to be understood that these terms can encompass any techniques for organizing information into discrete records that can be stored, retrieved and interpreted by computer systems. 
     Embodiments of the present invention can be realized using any combination of dedicated components and/or programmable processors and/or other programmable devices. The various processes described herein can be implemented on the same processor or different processors in any combination. Where components are described as being configured to perform certain operations, such configuration can be accomplished, e.g., by designing electronic circuits to perform the operation, by programming programmable electronic circuits (such as microprocessors) to perform the operation, or any combination thereof. Further, while the embodiments described above can make reference to specific hardware and software components, those skilled in the art will appreciate that different combinations of hardware and/or software components can also be used and that particular operations described as being implemented in hardware might also be implemented in software or vice versa. 
     Computer programs incorporating various features of the present invention can be encoded and stored on various computer readable storage media; suitable media include magnetic disk or tape, optical storage media such as compact disk (CD) or DVD (digital versatile disk), flash memory, and other non-transitory media. Computer readable media encoded with the program code can be packaged with a compatible electronic device, or the program code can be provided separately from electronic devices (e.g., via Internet download or as a separately packaged computer-readable storage medium). 
     Thus, although the invention has been described with respect to specific embodiments, it will be appreciated that the invention is intended to cover all modifications and equivalents within the scope of the following claims.