Hand-off function of content sharing platform
By using session identifiers and recently consumed content item records in the content sharing platform, the problem of unsmooth session switching is solved, more efficient session continuity and recommendation accuracy are achieved, and user experience is improved.
Patent Information
- Application Number
- JP2024186696
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2017-09-26
- Filing Date
- 2024-10-23
- Publication Date
- 2025-02-12
- Estimated Expiration
- 2037-09-27
AI Technical Summary
The existing content sharing platform fails to effectively consider the user's recent session history in the session switching function, resulting in the session switching being not smooth enough and affecting the user experience.
By maintaining session history, using a session identifier (Visit ID) to identify the recently viewed content items, and recommending the next content based on the recently consumed content items during session switching, ensuring that the session can continue at the same session point when switching devices, providing session persistence.
It improves the usability and user experience of the content sharing platform, reduces session switching time and resource consumption, and improves session continuity and recommendation accuracy.
Smart Images

Figure 2025020183000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to the field of content sharing platforms, and in particular to handoff functionality of content sharing platforms. [Background technology]
[0002] Content sharing platforms, and their corresponding websites and mobile applications ("apps"), allow users to play and watch music and videos. As the availability of various mediums (such as content sharing platforms) for accessing the services or applications increases, the demand for these centralized services or applications comes from a variety of sources. Despite the differences in the access mediums, the underlying reasons for using these services remain the same. Summary of the Invention [Problem to be solved by the invention]
[0003] The following is a simplified summary of the disclosure to provide a basic understanding of some aspects of the disclosure. This summary is not an extensive overview of the disclosure. It is not intended to identify key or critical elements of the disclosure, nor is it intended to delineate the scope of any particular embodiments of the disclosure or the scope of the claims. Its sole purpose is to present some concepts of the disclosure in a simplified form as a prelude to the more detailed description that is presented later. [Means for solving the problem]
[0004] In one aspect of the disclosure, a method includes maintaining a session history for a session conducted on a first client device, the session history identified by a visit identifier (ID) and including a set of recently viewed content items on a content sharing platform; determining that a user associated with the session is active on a second client device; sending to the client device a session continuation notification associated with the visit ID and a navigation endpoint of the session; receiving from the second client device a request for a watch page user interface (UI) for the content item corresponding to the navigation endpoint of the session; and sending to the second client device instructions to load the watch page UI and instructions to request additional components of the watch page UI using the visit ID, the additional components including recommended next content items identified based on the set of recently viewed content items associated with the visit ID.
[0005] In one embodiment, the navigation endpoint may comprise an identifier of the last viewed content on the first client device and a timestamp including a location within the last viewed content item corresponding to a stopping point of the session on the first client device. Further, the visit ID may be different from the session ID, where the visit ID is associated with a content sharing platform event corresponding to a user associated with the first client device, and occurrences of the content sharing platform events are separated by less than a determined time interval. Additionally, the session ID may be associated with content sharing platform events occurring during a day on the first client device.
[0006] In some embodiments, the method further includes receiving an indication of a user selection of the handoff feature from the first client device during a session conducted at the first client device, identifying one or more client devices comprising at least a second client device associated with the user in response to receiving the indication, generating a session continuation notification in response to receiving the indication, and transmitting the session continuation notification to the identified one or more client devices. Additionally, the one or more client devices may be registered and identified as associated with the user in the content sharing platform.
[0007] In one embodiment, the method further includes determining that the content sharing platform is accessed at a second client device, the access being associated with a user, and in response to the determining, identifying a session of the user on the first client device, identifying a visit ID and a navigation endpoint corresponding to the session, and generating a session continuation notification. Furthermore, in response to receiving the instruction, the second client device can load additional components on a watch page UI on the second client device, and the watch page UI with the additional components enables the session to be resumed on the second client device. Additionally, the set of recommended content items can be a playlist.
[0008] Computing devices are disclosed for performing operations of the above methods and various embodiments described herein. Also disclosed are computer readable media storing instructions for performing operations related to the above methods and various embodiments described herein.
[0009] The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings. [Brief description of the drawings]
[0010] [Figure 1] FIG. 1 is a block diagram illustrating an example network architecture in which embodiments of the present disclosure may be implemented. [Diagram 2] FIG. 2 is a block diagram of a server handoff component and a client handoff component according to one embodiment of the disclosure. [Figure 3A] 1 is an example screenshot of a UI for a handoff feature of a content sharing platform, according to an embodiment of the present disclosure. [Figure 3B] 1 is an example screenshot of a UI for a handoff feature of a content sharing platform, according to an embodiment of the present disclosure. [Figure 4] 1 is a flow diagram illustrating a method for implementing a handoff function of a content sharing platform in a server device according to one embodiment. [Diagram 5] 1 is a flow diagram illustrating a method for generating a manually activated session continuation notification for a handoff feature of a content sharing platform, according to one embodiment. [Figure 6] 1 is a flow diagram illustrating a method for providing an automatically generated session continuation notification for a handoff feature of a content sharing platform, according to one embodiment. [Figure 7] 1 is a flow diagram illustrating a method for implementing a handoff function of a content sharing platform in a client device, according to one embodiment. [Figure 8] FIG. 1 is a block diagram illustrating an embodiment of a computer system, according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Aspects and embodiments of the present disclosure are directed to handoff capabilities of a content sharing platform. In one embodiment, multiple computing devices, such as desktop computing devices and mobile devices, including mobile phones and tablet devices, may be utilized to access the content sharing platform. Users are increasingly using various mediums to access the same service or application (such as the content sharing platform). For example, a user may consume (e.g., watch, listen, view, etc.) a series of content items (e.g., videos) of the content sharing platform on a first client device (e.g., via a media viewer provided on a web browser or an application on the client device). This may be referred to as a user's session, viewing session, viewing session, visit, etc. To achieve a convenient and seamless session, the content sharing platform may provide a handoff capability that allows a user's session to be continued on a second client device used to access the session.
[0012] However, conventional systems for handing off sessions on content sharing platforms do not provide handoff functionality that corresponds to a user's particular session and visit. For example, conventional systems do not consider the most recent session history when handing off a session from one device to another. In an embodiment of the present disclosure, a smooth transition during session handoff is achieved by transferring a visit identifier (ID) as part of the session handoff, which allows the session to restart at its most recent endpoint and allows the session to resume from content recommendations associated with the session's most recent viewing history.
[0013] In an embodiment of the present disclosure, a handoff feature is provided that transfers a session from a first client device to a second client device. The handoff feature of the embodiment of the present disclosure allows a user's session to be resumed on the second client device at the same point (referred to herein as the navigation endpoint) where the session ended on the first client device. Furthermore, the session continuity provided by the handoff feature of the embodiment of the present disclosure is based on a set of content items recently consumed by the user during the session on the first client device, rather than based on the entire viewing history associated with the user on the content sharing platform.
[0014] For example, assume that a user typically watches gaming videos and electronic music videos and occasionally watches country music videos. Assume further that as part of a recent session on a content sharing platform application, the user consumed primarily country music videos. When the user ends his or her viewing session on a first client device and then initializes the content sharing platform application on a second client device (e.g., the user changes devices from a desktop computer to a mobile device as the user changes locations), the user may be prompted via the application to continue watching a playlist of country music videos instead of loading a playlist that includes electronic and gaming videos (even though these videos are the noted user's preferences based on the user's entire viewing history on the content sharing platform).
[0015] In an embodiment of the present disclosure, a technical improvement is realized by introducing a handoff feature of the content sharing platform that improves the availability of the content sharing platform. The availability is improved by providing relevant session continuity data, such as accurate navigation endpoints for resuming a session and recommended content items for the session (e.g., based on the most recently consumed content items of the session, rather than the entire viewing history of the user). This reduces the time and communication resources used (by both the client device and the server device) to resume a content session, thereby improving the content sharing platform quality, reducing processing time, reducing utilization of processing resources, and improving the user experience.
[0016] Embodiments of this disclosure often refer to video for simplicity and brevity, however, the teachings of this disclosure apply to media items generally and may be applied to various types of content or media items including, for example, video, audio, text, images, program instructions, and the like.
[0017] 1 illustrates an exemplary system architecture 100 according to one embodiment of the present disclosure. The system architecture 100 includes client devices 110A to 110Z, a network 105, a data storage device 106, a content sharing platform 120, and a server 130. In one embodiment, the network 105 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or a wide area network (WAN)), a wired network (e.g., an Ethernet network), a wireless network (e.g., an 802.11 network or a Wi-Fi network), a cellular network (e.g., a Long Term Evolution (LTE) network), a router, a hub, a switch, a server computer, and / or a combination thereof. In one embodiment, the data storage device 106 may be a memory (e.g., a random access memory), a cache, a drive (e.g., a hard drive), a flash drive, a database system, or any other type of component or device capable of storing data. Data storage 106 may also include multiple storage components (eg, multiple drives or multiple databases) that may span multiple computing devices (eg, multiple server computers).
[0018] Each of the client devices 110A to 110Z may include a computing device such as a personal computer (PC), a laptop, a mobile phone, a smartphone, a tablet computer, a netbook computer, a network-connected television, etc. In some embodiments, the client devices 110A to 110Z may also be referred to as a "user device." Each client device includes a media viewer 111. In one embodiment, the media viewer 111 may be an application that allows a user to view content such as images, videos, web pages, documents, etc. For example, the media viewer 111 may be a web browser that can access, search, present, and / or navigate content (e.g., web pages such as hypertext markup language (HTML) pages, digital media items, etc.) stored on a web server. The media viewer 111 may render, display, and / or present the content (e.g., web pages, media viewer) to the user. The media viewer 111 may also display an embedded media player (e.g., a Flash player or an HTML5 player) that is embedded in a webpage (e.g., a webpage that may provide information about products sold by an online retailer). In another example, the media viewer 111 may be a standalone application (e.g., a mobile application or app) that allows a user to view digital media items (e.g., digital videos, digital images, e-books, etc.). According to aspects of the present disclosure, the media viewer 111 may be a content sharing platform application for a user to record, edit, and / or upload content for sharing on the content sharing platform, and implements handoff functionality of the content sharing platform.In some embodiments, the content sharing platform provides a music streaming service and the media viewer 111 is a music streaming service application that provides the music content and implements handoff functionality as part of the music streaming service.
[0019] The media viewer 111 may be provided to the client devices 110A-110Z by the server 130 and / or the content sharing platform 120. For example, the media viewer 111 may be an embedded media player embedded in a web page provided by the content sharing platform 120. In another example, the media viewer 111 may be an application downloaded from the server 130.
[0020] Functions described for one embodiment as performed by the content sharing platform 120 may also be performed by the client devices 110A-110Z in other embodiments, where appropriate. In addition, functions attributed to a particular component may be performed by another or multiple components operating together. The content sharing platform 120 may also be accessed as a service offered to other systems or devices via appropriate application program interfaces, and thus is not limited to use in a website.
[0021] In one embodiment, the content sharing platform 120 can be one or more computing devices (such as a rack mount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data storage devices (e.g., hard disks, memory, databases), networks, software components, and / or hardware components that can be used to enable users to access media items and / or to provide media items to users. For example, the content sharing platform 120 enables users to consume, upload, search, approve ("like"), dislike, and / or comment on media items. The content sharing platform 120 can also include websites (e.g., web pages) or application backend software that can be used to enable users to access media items.
[0022] In embodiments of the present disclosure, a "user" may be represented as a single individual. However, other embodiments of the present disclosure encompass "users" and / or automated sources that are entities controlled by a set of users. For example, a set of individual users that are federated as a community in a social network may be considered a "user." In another example, an automated consumer may be an automated harvesting pipeline, such as a topic channel, of a content sharing platform 120.
[0023] The content sharing platform 120 can host data content such as media items 121. The data content can be digital content selected by a user, digital content made available by a user, digital content uploaded by a user, digital content selected by a content provider, digital content selected by a broadcaster, etc. Examples of media items 121 can include, but are not limited to, digital videos, digital movies, digital photos, digital music, website content, social media updates, electronic books (e-books), electronic magazines, digital newspapers, digital audiobooks, electronic journals, web blogs, Real Simple Syndication (RSS) feeds, electronic comic books, software applications, etc. In some embodiments, the media items 121 are also referred to as content items.
[0024] The media items 121 can be consumed via the Internet and / or via mobile device applications. For brevity and simplicity, online videos (hereinafter also referred to as videos) are used throughout this specification as an example of media items 121. As used herein, "media," "media items," "online media items," "digital media," "digital media items," "content," and "content items" may include electronic files that can be executed or loaded using software, firmware, or hardware configured to present digital media items to entities. In one embodiment, the content sharing platform 120 can store the media items 121 using the data storage device 106.
[0025] In one embodiment, the server 130 may be one or more computing devices (e.g., a rack-mounted server, a server computer, etc.). In one embodiment, the server 130 may be included in the content sharing platform 120. The server 130 may include a server handoff component 140 for implementing handoff functionality of the content sharing platform 120. In some embodiments, the client devices 110A-110Z may include a client handoff component 115 that operates together with the server handoff component 140 (or separately in some embodiments) to provide handoff functionality of the content sharing platform 120. The client handoff component 115 may implement embodiments of the present disclosure separately from the server handoff component 140 of the server 130, or may operate together with the server handoff component 140. Although the following description may refer to the server handoff component 140 implementing embodiments of the present disclosure, it should be understood that the functionality of the server handoff component 140 may be similarly performed alone and / or together with the client handoff component 115 in the client devices 110A-110Z.
[0026] In one embodiment, a user may consume (e.g., watch, listen, listen to, etc.) a series of content items (e.g., videos) on a first client device 110A-110Z (e.g., via a media viewer 111 provided on a web browser or an application on the client device 110A-110Z). This may be referred to as a user's session, viewing session, watching session, visit, etc. When a session ends on the first client device, the server handoff component 140 and / or the client handoff component 115 enable a handoff feature of the content sharing platform so that the session can be resumed on another client device 110A-110Z (i.e., a second client device). The handoff feature provided by the server handoff component 140 and / or the client handoff component 115 allows the user's session to be resumed on the second client device 110A-110Z at the same point (referred to herein as a navigation endpoint) at which the session ended on the first client device. Furthermore, the session continuity provided by the handoff functionality of the embodiments of the present disclosure is based on the set of content items recently consumed by the user during the session on the first client device, rather than based on the entire viewing history associated with the user on the content sharing platform.
[0027] For example, assume that a user typically watches gaming videos and electronic music videos, and occasionally watches country music videos. Further assume that as part of a recent session on a content sharing platform application, the user consumed primarily country music videos. When the user ends his viewing session on a first client device and then initializes the content sharing platform application on a second client device (e.g., the user changes the device from a desktop computer to a mobile device when changing locations), the user may be prompted via the application to continue watching a playlist of country music videos instead of loading a playlist that includes electronic videos and gaming videos (even though these videos are noted user preferences based on the user's entire viewing history on the content sharing platform). In addition, the handoff feature of an embodiment of the present disclosure prevents videos that the user has recently watched during a session on the first client device from being included in the playlist as recommended content. This ensures that the user is not presented with repetitive content items when the user changes client devices.
[0028] In some embodiments, the server handoff component 140 of the server 130 can interact with the content sharing platform 120 to implement embodiments of the present disclosure. Further descriptions of the server handoff component 140 and the client handoff component 115, and their specific functions, are described in more detail below with respect to FIG.
[0029] Although embodiments of the present disclosure are discussed with respect to a content sharing platform and with respect to providing handoff capabilities to the content sharing platform, the embodiments may also be broadly applicable to any type of social network that provides connections between users. The embodiments of the present disclosure are not limited to content sharing platforms that provide channel subscriptions to users.
[0030] Apart from the above, a user may be provided with control mechanisms that allow the user to select both if the systems, programs, or features described herein enable collection of user information (e.g., the user's social network, social actions or activities, occupation, user preferences, or the user's current location) and if content or communications are sent to the user from the server. In addition, certain data may be processed in one or more ways such that personally identifiable information is removed before it is stored or used. For example, a user's personal information may be processed such that personally identifiable information about the user cannot be determined, or, if location information is obtained, the user's geographic location may be generalized (such as to the city, zip code, or state level) such that the user's specific location cannot be determined. Thus, the user may control what information is collected about the user, how that information is used, and what information is provided to the user.
[0031] FIG. 2 is a block diagram illustrating the server handoff component 140 and the client handoff component 115 according to one embodiment of the present disclosure. As discussed above, the server handoff component 140 may interact with a single social network or may be utilized among multiple social networks (e.g., provided as a service of a content sharing platform utilized by another third-party social network). In one embodiment, the server handoff component 140 includes a session history logger 210, a handoff detector 220, a handoff notification generator 230, and a handoff instruction generator 240. Several components may be included in the server handoff component 140 without loss of generality. For example, two of the modules may be combined into a single module, or one of the modules may be split into two or more modules. In one embodiment, one or more modules may reside on separate computing devices (e.g., separate server computers, a single client device, or distributed among multiple client devices, etc.). Additionally, one or more modules may reside on separate content sharing platforms, third-party social networks, and / or external servers.
[0032] The server handoff component 140 is communicatively coupled to the handoff component 115 and the data storage 106. For example, the server handoff component 140 can be coupled to the client handoff component 115 and the data storage 106 via a network (e.g., via the network 105 shown in FIG. 1).
[0033] In one embodiment, the client handoff component 115 includes a handoff notifier 250, a handoff request generator 260, and a handoff implementer 270. Several components may be included in the client handoff component 115 without loss of generality. For example, two of the modules may be combined into a single module, or one of the modules may be split into two or more modules. In one embodiment, one or more modules may reside on separate computing devices (e.g., separate server computers, a single client device, or distributed among multiple client devices, etc.). Additionally, one or more modules may reside on separate content sharing platforms, third-party social networks, and / or external servers.
[0034] Data storage 106 may be a memory (e.g., random access memory), cache, drive (e.g., hard drive), flash drive, database system, or other type of component or device capable of storing data. Data storage 106 may also include multiple storage components (e.g., multiple drives or multiple databases) that may span multiple computing devices (e.g., multiple server computers). Data storage 106 includes content item data 290, event log data 291 (which may further include a session identifier (ID) 292, a visit ID 293, and a viewing history 294), and user data 295.
[0035] As discussed above, the server handoff component 140 and the client handoff component 115, separately and / or together, enable a session of a procedurally generated list of content items to be handed off (i.e., transferred) from one client device to another. As part of a session on the content sharing platform, a user can consume (e.g., watch, listen, listen to, etc.) a series of content items (e.g., videos from the content item data 290 of the data storage device 106) on a first client device. When the session ends on the first client device, the server handoff component 140 and / or the client handoff component 115 enable a handoff feature of the content sharing platform such that the session can be resumed / continued on the second client device at the navigation endpoint where the session ended on the first client device. Each of the user's first and second client devices can include the client handoff component 115 for enabling the handoff feature of the disclosed embodiment. Furthermore, the session continuity provided by the handoff functionality of the embodiments of the present disclosure is based on a set of content items recently consumed by the user during a session on the first client device, rather than based on the entire viewing history associated with the user on the content sharing platform.
[0036] When a session is taking place on the first client device, a session history logger 210 of the server handoff component 140 logs the user's activities during the session, including the sequence of content items the user consumes during the session. The session history logger 210 logs each event (e.g., viewing history 294 indicating the user's viewing of content items) in the event log data 291 of the data store 106. Each event (e.g., viewing history 294) is logged in the event log data 291 with a session ID 292 indicating the user, and is further logged with a visit ID 293.
[0037] A session ID 292 can be associated with any interaction by a user with the content sharing platform via a single client device on a single day. Interactions on different days with the same client device are associated with a new session ID 292 compared to the session ID 292 associated with the user's interactions on a previous day with the same client device. In addition, user interactions on different client devices on the same day are associated with different session IDs 292.
[0038] A visit ID 293 encompasses a user's interactions with the content sharing platform on a single client device that occur within a defined time interval of each other (e.g., each of the visit ID 293 interactions is not separated by inactivity exceeding a defined time interval). If the defined time interval is exceeded between interactions, a new visit ID is assigned to the user's next interaction with the content sharing platform on the same client device on the same day. Thus, a session ID 292 may encompass multiple visit IDs 293 when a user interacts with the content sharing platform on a client device at separate time intervals during the day (i.e., each visit ID interaction is separated by a time of inactivity exceeding a threshold). Each event recorded for a user on the same device is associated with the same visit ID 293 if the events occur within a defined interval and are not separated by a time threshold. The visit ID 293 is refreshed (i.e., a new visit ID 293 is generated) when the user closes the application or stops interacting with the content sharing platform for a defined period of time.
[0039] When a session on a first client device ends (e.g., a content sharing application is closed, a period of inactivity on the content sharing platform, etc.), the session can be transferred (e.g., continued, resumed, handed off, etc.) from the first client device to a second client device of the user. In one embodiment, the handoff detector 220 of the server handoff component 140 can identify when a session ends on one client device (e.g., the first client device) and / or when a user associated with the session becomes active on another client device (e.g., the second client device). The handoff detector 220 can utilize the event log data 291 to identify the end of a session on the first client device and / or the resumption of activity by the user on the second client device.
[0040] The embodiments of the present disclosure provide two variations on how a session can be transferred from one client device to another. In a first variation, the handoff notification generator 230 automatically generates and sends a session continuation notification to the second client device when the handoff detector 220 determines that the second client device is accessing the content sharing platform for the user. For example, the handoff detector 220 can determine that a user identifier (ID) associated with the user is received as part of an event corresponding to the second client device (e.g., logging into an application of the content sharing platform, requesting a content feed, etc.). In one embodiment, the handoff detector 220 determines that content associated with the content sharing platform (e.g., a home page, a feed, etc.) is requested from the second client device (e.g., when a content sharing platform application is initialized by the user on the second client device). The handoff detector 220 examines the event log data 291 to determine whether there has been a previous visit to the content sharing platform associated with the user if the previous visit involved consumption of multiple content items and occurred within a defined period of time (e.g., within the past 2-3 hours).
[0041] In response to the handoff detector 220 identifying the most recent visit that meets the above criteria, the handoff notification generator 230 generates and transmits a session continuation notification to the second client device. The session continuation notification can be presented to the user via a content sharing platform application. In one embodiment, the handoff notifier 250 of the client handoff component 115 receives and displays the session continuation notification from the handoff notification generator 230. In some embodiments, the session continuation notification can be displayed on the second client device as a system notification. The session continuation notification can include a prompt querying the user whether the user wants to resume and / or continue the previous session identified by the handoff detector 220.
[0042] 3A illustrates an example screenshot of a session notification UI 300 including an automatically generated handoff notification, according to an embodiment of the disclosure. The UI 300 can be displayed to inform a user that a session previously maintained on another client device can be continued or resumed on the user's current client device. In some embodiments, the UI 300 can include a playback portion 310 that plays a content item (e.g., obtained from the content item data 290 of the data storage device 106). The UI 300 can also include a content item description portion 320 that includes identification information (e.g., obtained from the content item data 290) corresponding to the content item provided for playback in the playback portion 310. The UI 300 can further include a session continuation notification portion 330.
[0043] In some embodiments, the session continuation notification portion 330 may include a statement 332 informing the user that the content item identified in portions 310, 320 has been previously viewed using another client device ("Device A"). The statement also prompts the user as to whether to continue the session associated with the previously viewed content item identified in portions 310, 320. The session continuation notification portion 330 includes a button 334 that, when selected, allows the session (associated with the previously viewed content item identified in portions 310, 320) to be resumed (e.g., continue, handoff, etc.) on the client device presenting the UI 300. The session continuation notification portion 330 also includes a link 336 (e.g., a HyperText Transfer Protocol (HTTP) link, a hyperlink, etc.) that allows the user to decline the session continuation notification 330 and continue a new session on the current client device presenting the UI 300.
[0044] Returning to FIG. 2, in a second variant, a session continuation notification can be generated by the handoff notification generator 230 when an indication is received by a user on a first client device that the user has selected a handoff function (e.g., the user clicks a button or selects a link associated with the handoff function). When the handoff function is selected by the user (e.g., via a link or button representing the handoff function provided in a user interface (UI) of the content sharing application), a remote procedure call (RPC) is generated by the handoff notifier 250 and sent to the handoff detector 220. The handoff detector 220 then triggers the handoff notification generator 230 to send a session continuation notification toward one or more other client devices associated with the user. In one embodiment, the handoff notification generator 230 is responsible for delivering the session continuation notification toward the client devices of users who are registered to receive notifications from the content sharing platform. The client devices of users who are registered with the content sharing platform can be identified from the user data 295 in the data storage device 106.
[0045] 3B illustrates an example screenshot of a UI 350 for enabling a manual handoff of a user's session on a content sharing platform, according to an embodiment of the disclosure. The UI 350 may include a media player 360 for playing a content item and a content item information section 370. The content item information section 370 may list an identity of a currently accessed content item shown on the media player 360. The content item information section 370 may include information such as, but not limited to, the title of the content item, the content owner of the content item, the posting date of the content item, the duration of the content item, the number of views of the content item, the number of "likes" (e.g., in favor) of the content item, the number of "dislikes" (e.g., in favor) of the content item, etc.
[0046] In one embodiment, the UI 350 includes a handoff icon 380. The handoff icon 380 may be part of the media player 360. As shown in FIG. 3B, the handoff icon 380 is part of a control area of the media player 360 located at the bottom of the media player 360. In one embodiment, when the viewing user hovers or selects the handoff icon 380, a drop-down menu 385 may be presented to the viewing user. The drop-down menu 385 may provide the viewing user with further information regarding the handoff feature. For example, the drop-down menu 385 may be selected by the viewing user to have the current viewing session handed off to another client device. In some embodiments, the drop-down menu 385 may list other potential client devices to which the viewing session may be handed off. When the handoff icon 380 or a drop-down menu 385 associated with the handoff icon 380 is selected, a push notification to resume the current viewing session (associated with the content item identified in portions 360, 370) may be generated and sent to another client device associated with the user. Other locations and configurations of handoff icon 380, including drop-down menus 385 and other types of notifications other than those described with respect to UI 350, may also be utilized in embodiments of the present disclosure.
[0047] Returning to Figure 2, in both the first and second variants described above, the session continuation notification includes a payload that includes a visit ID 293 associated with the particular session and a navigation endpoint. In one embodiment, the navigation endpoint is a timestamp that identifies the location within the content item that was being viewed when the session ended on the first client device. The payload data can be obtained from the event log data 291 by the handoff notification generator 230.
[0048] As discussed above, the handoff notifier 250 of the client handoff component 115 at the second client device receives and causes to be displayed a session continuation notification. The session continuation notification may be displayed as a notification in the UI of the content sharing platform application or browser application at the second client device and / or may be a system notification generated on the second client device. The session continuation notification may include a prompt querying the user whether the user wants to resume and / or continue a previously identified session identified by the handoff detector 220.
[0049] The user may choose to continue the session via a session continuation notification presented at the second client device, for example by selecting a link or clicking a button on the session continuation notification. In response to receiving an indication to continue the session (i.e., session handoff), the handoff request generator 260 of the client handoff component 115 on the second client device may extract the visit ID and the navigation endpoint from the session continuation notification payload and generate a client request for a new viewing page that corresponds to the received navigation endpoint. The generated client request may also include the extracted visit ID. The handoff request generator 260 sends the client request to the server handoff component 140.
[0050] When a client request is received at the server handoff component 140, the handoff instruction generator 240 can generate handoff instructions for session continuation. The handoff instructions can include (1) instructions to load a viewing page corresponding to a navigation endpoint, and (2) instructions to request additional components for the viewing page. With respect to loading the viewing page, the instructions can identify a content item to be loaded as part of the viewing page, which content item corresponds to the navigation endpoint of the session. In one embodiment, the content item can be the content item last consumed by the user (e.g., when the user was in the middle of viewing a content item). In some embodiments, the content item can be the next content item of the session (e.g., when the user was at the end of the last content item consumed in the session or between viewing content items in the session).
[0051] With regard to requesting additional components, these additional components may include a recommended set of content items to view next. In one embodiment, the recommended set of content items may be in the form of a playlist. The recommended set of content items may be identified by the recommendation generator 245 of the handoff command generator 240. The recommendation generator 245 may identify the set of recommended content items based on a set of recently consumed content items associated with a visit ID. The set of recently consumed content items associated with a visit ID may be obtained from the event log data 291 (i.e., from the viewing history 294) and may refer to the content items most recently consumed by the user during a session to be continued on the second client device. These recently consumed content items may be used by the recommendation generator 245 to seed generating a set of recommended content items.
[0052] A description of how a set of recommended content items (e.g., playlists) can be generated is as follows: First, the recommendation generator 245 takes a collection of seed content items (e.g., content items associated with the visit ID 293) and identifies a set of other user sessions that have consumed any of the seed content items, as well as any playlists that include any of the content items. Next, the identified other user sessions and playlists are weighted by the number of seed content items they contain. Next, an initial set of content items is generated, and the content items in this initial set have also been viewed by the user or have been included in playlists that are not seed content items. Finally, the content items in the initial set are scored and ranked based on the weights of the other user sessions / playlists and the number of other user sessions / playlists in which the content items are included. This results in a collection of content items that closely match the seed content items and can be used as a recommended set of content items from the recommendation generator 245.
[0053] When the handoff command is received by the client handoff component 115 at the second client device from the server handoff component 140, the handoff enforcer 270 may execute the handoff command to resume and / or continue the session on the second client device. When the handoff command is executed, the handoff enforcer 270 loads a viewing page including a set of recommended content items to view next into the UI of an application (e.g., a browser application or a content sharing platform application) of the second client device.
[0054] In one embodiment of the present disclosure, after a session is handed off to a second client as described above, a user event may be recorded in the event log data 291. The user event records the pairing of the original visit ID of the first client device with the new visit ID used for the second client device. This pairing can be used to daisy-chain the sessions together, so that if a user goes from client device A to client device B to client device C, the continuous playlist (i.e., recommended set of content items) on client device C is seeded with content items consumed on both client devices A and B.
[0055] 4 is a flow diagram illustrating a method 400 for implementing a handoff function of a content sharing platform in a server device according to one embodiment of the present disclosure. The method 400 can be performed by processing logic including hardware (e.g., circuitry, dedicated logic circuitry, programmable logic circuitry, microcode, etc.), software (e.g., instructions executed on a processing device to perform hardware simulation), or a combination thereof.
[0056] For ease of explanation, the methods of the present disclosure are depicted and described as a series of operations. However, operations according to the present disclosure may occur in various orders and / or simultaneously and with other operations not shown and described herein. Moreover, not all operations described may be required to practice a method according to the disclosed subject matter. In addition, one skilled in the art should understand and appreciate that a method may alternatively be represented as a series of interrelated states by a state diagram or events. Furthermore, it should be understood that the methods disclosed herein may be stored in an article of manufacture that facilitates the transport and transfer of such methods to a computing device. The term "article of manufacture" as used herein encompasses a computer program accessible from any computer-readable device or storage medium. In one embodiment, the method 400 may be performed by the server handoff component 140 shown in FIG. 1 and FIG. 2.
[0057] Method 400 begins at block 410, where a session history is maintained for a user's session, where the session history is maintained at a first client device. At block 420, it is determined that the session has moved from the first client device to a second client device. Then, at block 430, a session continuation notification is sent to the second client device, where the session continuation notification is associated with a visit ID and a navigation endpoint of the session at the first client device.
[0058] At block 440, a request is received from a second client device, the request being for a watch page UI for a content item corresponding to the navigation endpoint of the session. Finally, at block 450, instructions are sent to the second client device, the instructions being for loading the watch page UI and for requesting additional components of the watch page UI using the visit ID. In one embodiment, the additional components include recommended next content items that have been identified based on a set of recently viewed content items associated with the visit ID.
[0059] 5 is a flow diagram illustrating a method 500 of generating a manually activated session continuation notification for a handoff function of a content sharing platform according to some embodiments of the present disclosure. The method 500 can be performed by a processing logic circuit including hardware (e.g., a circuit, a dedicated logic circuit, a programmable logic circuit, a microcode, etc.), software (e.g., instructions executed on a processing device to perform hardware simulation), or a combination thereof. In one embodiment, the method 500 can be performed by the server handoff component 140 shown in FIG. 1 and FIG. 2.
[0060] Method 500 begins at block 510, where an indication of a selection of a handoff feature is received from a first client device, the first client device being associated with a session of a user of a content sharing platform. In one embodiment, the selection is a user selection of a button, icon, or link representing the handoff feature on the first client device. At block 520, in response to receiving the indication at block 510, one or more other client devices associated with the user are identified. Next, at block 530, a visit ID corresponding to the session on the first client device and a navigation endpoint for the session are identified.
[0061] Then, a session continuation notification is generated that includes a payload with the visit ID and the navigation endpoint at block 540. Finally, at block 550, the generated session continuation notification is sent to one or more other client devices.
[0062] 6 is a flow diagram illustrating a method 600 of providing an automatically generated session continuation notification for a handoff function of a content sharing platform according to some embodiments of the present disclosure. The method 600 can be performed by a processing logic circuit including hardware (e.g., a circuit, a dedicated logic circuit, a programmable logic circuit, a microcode, etc.), software (e.g., instructions executed on a processing device to perform hardware simulation), or a combination thereof. In one embodiment, the method 600 can be performed by the server handoff component 140 shown in FIG. 1 and FIG. 2.
[0063] Method 600 begins at block 610 where a determination is made that the content sharing platform is being accessed on a first client device, the access being associated with a user of the content sharing platform. At block 620, a most recent session of the user on the content sharing platform is identified. In one embodiment, the most recent session occurred within a determined time threshold and was held on a client device different from the first client device.
[0064] Then, a visit ID corresponding to the identified session and a navigation endpoint for the session are identified at block 630. Next, a session continuation notification is generated at block 640, where the session continuation notification includes a payload having the visit ID and the navigation endpoint. Finally, at block 650, the generated session continuation notification is sent to the first client device.
[0065] 7 is a flow diagram illustrating a method 700 for implementing a handoff function of a content sharing platform in a client device according to some embodiments of the present disclosure. The method 700 can be performed by a processing logic circuit including hardware (e.g., circuitry, dedicated logic circuitry, programmable logic circuitry, microcode, etc.), software (e.g., instructions executed on a processing device to perform hardware simulation), or a combination thereof. In one embodiment, the method 700 can be performed by the client handoff component 115 shown in FIG. 1 and FIG. 2.
[0066] The method 700 begins at block 710, where a content sharing platform is accessed from a first client device. The content sharing platform may be accessed, for example, via a content sharing platform application on the first client device or via a web browser of the first client device. At block 720, a session continuation notification is received, where the session continuation notification includes a visit ID and a navigation endpoint of the user's session conducted at the second client device. The user's session is associated with the content sharing platform.
[0067] Subsequently, at block 730, in response to the session continuation notification, a first request is sent for a watch page UI for the content item corresponding to the navigation endpoint. The request may be sent from the first client device to a server device of the content sharing platform. At block 740, instructions are received to load the watch page UI and to request additional components of the watch page UI using the visit ID. The additional components may include recommended next content items (e.g., playlists) that have been identified based on a set of recently viewed content items associated with the visit ID.
[0068] At block 750, a second request is sent for additional components of the watch page UI, the request including the visit ID. At block 760, the additional components of the watch page UI are received in response to the second request. Finally, at block 770, the watch page UI is loaded, the watch page UI including recommended content items to view next. The recommended content items are identified using the visit ID.
[0069] FIG. 8 illustrates an exemplary form of computer system 800, which is capable of executing a set of instructions that cause the machine to perform any one or more of the methodologies discussed herein. In alternative embodiments, the machine may be connected (e.g., networked) to other machines in a local area network (LAN), an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular phone, a web appliance, a server, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify operations to be performed by the machine. Additionally, although only a single machine is illustrated, the term "machine" should also be construed to include any collection of machines that individually or concatenated execute a set (or sets) of instructions to perform any one or more of the methodologies discussed herein. In one embodiment, computer system 800 may represent a server (e.g., server 102) or a client (e.g., clients 110A-110Z) executing handoff component 850, such as server handoff component 140 or client handoff component 115, discussed with respect to Figures 1 and 2.
[0070] The exemplary computer system 800 includes a processing device 802, a main memory 804 (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) (such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM)), and a static memory 806 (e.g., flash memory, static random access memory (SRAM)), and a data storage device 818, which communicate with each other via a bus 830. Any of the signals provided through the various buses described herein may be time division multiplexed with other signals and may be provided through one or more common buses. Furthermore, the interconnections between circuit components or blocks may be depicted as buses or as single signal lines. Each of the buses may alternatively be one or more single signal lines, and each of the single signal lines may alternatively be a bus.
[0071] The processing device 802 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, etc. More specifically, the processing device may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computer (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor implementing other instruction sets, or a processor implementing a combination of instruction sets. The processor device 902 may also be one or more special-purpose processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, etc. The processing device 802 is configured to execute the processing logic 826 for performing the operations and steps discussed herein.
[0072] The computer system 800 may further include a network interface device 808. The computer system 800 may also include a video display unit 810 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 812 (e.g., a keyboard), a cursor control device 814 (e.g., a mouse), and a signal generating device 816 (e.g., a speaker).
[0073] The data storage device 818 may include a computer-readable storage medium 828 (also referred to as a machine-readable storage medium) having stored thereon one or more sets of instructions 822 (e.g., software) that embody any one or more of the functional methodologies described herein. The instructions 822 may also reside, completely or at least partially, in the main memory 804 and / or in the processing device 802 during execution thereof by the computer system 800, with the main memory 804 and the processing device 802 also constituting machine-readable storage media. The instructions 822 may further be transmitted or received across the network 820 via the network interface device 808.
[0074] The computer-readable storage medium 828 may also be used to store instructions for performing a method for providing handoff functionality of a content sharing platform as described herein. Although the computer-readable storage medium 828 is shown in an exemplary embodiment as being a single medium, the term "machine-readable storage medium" should be interpreted to include a single medium or multiple media (e.g., centralized or distributed databases and / or associated caches and servers) that store one or more sets of instructions. A machine-readable storage medium includes any mechanism for storing information in a form (e.g., software, processing applications) readable by a machine (e.g., a computer). Machine-readable media may include, but are not limited to, magnetic storage media (e.g., floppy diskettes), optical storage media (e.g., CD-ROMs), magneto-optical storage media, read-only memory (ROM), random access memory (RAM), erasable programmable memory (e.g., EPROM and EEPROM), flash memory, or other types of media suitable for storing electronic instructions.
[0075] In the above description, numerous specific details have been discussed, such as examples of specific systems, components, methods, etc., to facilitate a thorough understanding of some embodiments of the present disclosure. It will be apparent to those skilled in the art that at least some embodiments of the present disclosure can be practiced without these specific details. In other instances, well-known components and methods have not been described in detail or have been presented in simple block diagram form in order to avoid unnecessarily obscuring the present disclosure. Thus, the specific details discussed are merely illustrative. Particular embodiments may differ from these illustrative details and still be considered to be within the scope of the present disclosure.
[0076] References throughout this specification to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic described with respect to that embodiment is included in at least one embodiment. Thus, the appearances of phrases such as "in one embodiment" or "in one embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment. In addition, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or."
[0077] Although the operations of the methods herein are illustrated and described in a particular order, the order of the operations of each method may be changed, such that some operations may be performed in reverse order, some operations may be performed at least in part concurrently with other operations, etc. In alternative embodiments, instructions or sub-operations of individual operations may be intermittent and / or alternating. [Explanation of symbols]
[0078] 100 System Architecture 105 Network 106 Data storage device 110A Client Device 110Z Client Device 111 Media Viewer 115 Client Handoff Components 120 Content Sharing Platform 121 Media Items 130 Server 140 Server Handoff Components 210 Session History Logger 220 Handoff Detector 230 Handoff Notification Generator 240 Handoff Instruction Generator 245 Recommended Generators 250 Handoff Notifier 260 Handoff Request Generator 270 Handoff Implementer 290 Content Item Data 291 Event Log Data 292 Session ID 293 Visit ID 294 Viewing History 295 User Data 802 Processing Device 804 Main Memory 806 Static Memory 808 Network Interface Device 810 Video Display 812 Alphanumeric Input Device 814 Cursor Control Device 816 Signal Generating Device 818 Data storage device 820 Network 822 command 826 Processing Logic Circuit 828 Machine-readable storage medium 830 Bus 850 Handoff Components
Claims
1. maintaining a session history of a session conducted at a first client device, the session history being identified by a visit identifier (ID) and including a set of recently viewed content items on a content sharing platform; determining that a user associated with the session is active on a second client device; sending, by a processing device, to the second client device, a session continuation notification associated with the visit ID and a navigation endpoint of the session at the first client device; receiving a request from the second client device in response to the session continuation notification for a viewing page user interface (UI) for a content item corresponding to the navigation endpoint of the session; by the processing device to the second client device; instructions to load the viewing page UI; and instructions for requesting additional components of the watch page UI using the visit ID wherein the additional component includes recommended next content items identified based on the set of recently viewed content items associated with the visit ID; A method comprising:
2. 2. The method of claim 1, wherein the navigation endpoint comprises an identifier of a last viewing content item on the first client device and a timestamp including a position within the last viewing content item that corresponds to a stopping point of the session on the first client device.
3. 2. The method of claim 1 , wherein the visit ID is different from a session ID, the visit ID is associated with a content sharing platform event associated with the first client device and corresponding to the user, occurrences of the content sharing platform events are separated by intervals less than a determined time interval, and the session ID is associated with the content sharing platform events occurring on the first client device throughout the course of a day.
4. receiving an indication of a user selection of a handoff feature from the first client device during the session performed at the first client device; In response to receiving the indication, identifying one or more client devices comprising at least the second client device associated with the user; generating the session continuation notification in response to receiving the indication; and transmitting the session continuation notification to the identified one or more client devices.
5. The method of claim 1 , wherein the one or more client devices are registered and identified as associated with the user in the content sharing platform.
6. determining that the content sharing platform is being accessed at the second client device, the access being associated with the user; responsive to said determining step, identifying the session of the user on the first client device; identifying the visit ID and the navigation endpoint corresponding to the session; and generating the session continuation notification.
7. 2. The method of claim 1, wherein, in response to receiving the instruction, the second client device loads the additional components into the viewing page UI on the second client device, and the viewing page UI with the additional components enables the session to be resumed on the second client device.
8. The method of claim 1 , wherein the set of recommended content items is a playlist.
9. Memory, a processing device coupled to the memory, the processing device comprising: providing access for a user of the client device to a content sharing platform via an application executed by the processing device; receiving a session continuation notification associated with a visit identifier (ID) and a navigation endpoint of a session of the user conducted on another client device, the session being associated with the content sharing platform; sending a first request for a viewing page user interface (UI) of a content item corresponding to the navigation endpoint of the session; receiving, in response to the first request, instructions to load the watch page UI and instructions to request additional components of the watch page UI using the visit ID, the additional components including recommended next content items identified based on a set of recently viewed content items associated with the visit ID; sending a second request for the additional component of the watch page UI, the second request including the visit ID; In response to receiving the additional components, providing a viewing page UI including recommended content items to view next. The client device.
10. The client device of claim 9 , wherein the application is at least one of a content sharing platform application or a browser application.
11. 10. The client device of claim 9, wherein the navigation endpoint comprises an identifier of a last viewing content item on the other client device and a timestamp including a position within the last viewing content item that corresponds to a stopping point of the session on the other client device.
12. 10. The client device of claim 9, wherein the visit ID is different from a session ID, the visit ID is associated with a content sharing platform event associated with the other client device and corresponding to the user, occurrences of the content sharing platform events are separated by intervals less than a determined time interval, and the session ID is associated with content sharing platform events occurring during a day on the other client device.
13. The client device of claim 9 , wherein the set of recommended content items is a playlist.
14. The client device of claim 9 , wherein the viewing page UI and the additional components enable the session to be resumed on the client device.
15. 10. The client device of claim 9, wherein the session continuation notification is generated in response to a user selection of a handoff feature at the other client device while the session is ongoing at the other client device.
16. The client device of claim 9 , wherein the session continuation notification is generated in the application of the client device in response to automatic detection of the access of the content sharing platform.
17. A non-transitory machine-readable storage medium storing instructions that, when executed, cause a processing device to: maintaining a session history of a session conducted at a first client device, the session history being identified by a visit identifier (ID) and including a set of recently viewed content items on a content sharing platform; determining that a user associated with the session is active on a second client device; sending, by the processing device, to the second client device a session continuation notification associated with the visit ID and a navigation endpoint of the session at the first client device; receiving a request from the second client device in response to the session continuation notification for a viewing page user interface (UI) for a content item corresponding to the navigation endpoint of the session; by the processing device to the second client device; instructions to load the viewing page UI; and sending instructions to request additional components of the viewing page UI using the visit ID, the additional components including recommended next content items identified based on the set of recently viewed content items associated with the visit ID; A non-transitory machine-readable storage medium that causes operations including
18. 20. The non-transitory machine-readable storage medium of claim 17, wherein the navigation endpoint comprises an identifier of a last viewing content item on the first client device and a timestamp including a position within the last viewing content item that corresponds to a stopping point of the user viewing session on the first client device.
19. 18. The non-transitory machine-readable storage medium of claim 17, wherein the visit ID is different from a session ID, the visit ID is associated with a content sharing platform event associated with the first client device and corresponding to the user, occurrences of the content sharing platform events are separated by intervals less than a determined time interval, and the session ID is associated with the content sharing platform events occurring on the first client device throughout the course of a day.
20. The operation further comprises: receiving an indication of a user selection of a handoff feature from the first client device during the session performed at the first client device; In response to receiving the indication, identifying one or more client devices comprising at least the second client device associated with the user; generating the session continuation notification in response to receiving the indication; and transmitting the session continuation notification to the identified one or more client devices.
21. The operation further comprises: determining that the content sharing platform is being accessed at the second client device, the access being associated with the user; responsive to said determining step, identifying the session of the user on the first client device; identifying the visit ID and the navigation endpoint corresponding to the session; and generating the session continuation notification.
22. 18. The non-transitory machine-readable storage medium of claim 17, wherein in response to receiving the instruction, the second client device loads the additional components to the watch page UI on the second client device, and the watch page UI with the additional components enables the session to be resumed on the second client device.
Citation Information
Patent Citations
Information processing system, server device, recommending method, and program
JP2008198163A
Content recommendation device and content recommendation method
JP2011257918A
Providing persistent activity sessions across client devices
US20160173540A1