Handoff feature of content sharing platform
The handoff function in content sharing platforms resumes sessions at the correct navigation endpoint based on recent consumption history, addressing inefficiencies in conventional systems and enhancing user experience.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- GOOGLE LLC
- Filing Date
- 2024-10-23
- Publication Date
- 2026-04-27
AI Technical Summary
Conventional content sharing platforms fail to provide seamless session handoff functionality that considers a user's recent session history, leading to inefficient and repetitive content recommendations when switching devices.
Implement a handoff function that transfers a session from a first client device to a second client device, resuming the session at the same navigation endpoint based on the most recently consumed content items, rather than the entire viewing history, using a visit identifier and session continuation notifications.
Enhances content sharing platform availability by reducing processing time and resource utilization, improving user experience through precise navigation endpoints and relevant content recommendations.
Smart Images

Figure 0007852011000001 
Figure 0007852011000002 
Figure 0007852011000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of content sharing platforms, and more particularly, to the handoff function of content sharing platforms.
Background Art
[0002] Content sharing platforms, as well as their corresponding websites and mobile applications ("apps"), enable users to play and view music and videos. As the availability of various media (such as content sharing platforms) for accessing services or applications increases, demands for these centralized services or applications are arising from diverse sources. Despite the different access media, the underlying reasons for using these services remain the same.
Summary of the Invention
Problems to be Solved by the Invention
[0003] The following is a brief summary of the present disclosure to facilitate a basic understanding of some aspects of the present disclosure. This summary is not an extensive overview of the present disclosure. This summary neither identifies the main or important elements of the present disclosure, nor depicts any scope of specific embodiments of the present disclosure or any scope of the claims. Its sole purpose is to present some concepts of the present disclosure in a simplified form as a prelude to the more detailed description presented later.
Means for Solving the Problems
[0004] In one aspect of the present disclosure, the method includes the steps of: maintaining a session history of a session conducted on a first client device, wherein the session history is identified by a visit identifier (ID) and includes 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 a session continuation notification to the client device, associated with the session's visit ID and navigation endpoint; receiving a request from the second client device for a view page user interface (UI) of a content item corresponding to the session's navigation endpoint; and sending an instruction to the second client device to load the view page UI and an instruction to request additional components of the view page UI using the visit ID, wherein the additional components include a recommended content item to be viewed next, identified based on the set of recently viewed content items associated with the visit ID.
[0005] In one embodiment, the navigation endpoint may include an identifier for the last viewed content on the first client device and a timestamp containing the position within the last viewed content item corresponding to the session's end point on the first client device. Furthermore, the visit ID may differ from the session ID, and the visit ID is associated with a content sharing platform event corresponding to the user associated with the first client device, where the occurrence of the content sharing platform event is divided into intervals smaller than a predetermined time interval. In addition, the session ID may be associated with content sharing platform events occurring on the first client device throughout the day.
[0006] In some embodiments, the method further includes the steps of: receiving a user selection display for a handoff function from a first client device during a session conducted on the first client device; identifying one or more client devices having at least a second client device associated with the user in response to receiving the display; generating a session continuation notification in response to receiving the display; and sending the session continuation notification to the identified one or more client devices. In addition, one or more client devices may be registered and identified as associated with the user on the content sharing platform.
[0007] In one embodiment, the method further includes the steps of determining that a content sharing platform is being accessed on a second client device and that the access is associated with a user; identifying the user's session on the first client device in response to this determining step; identifying a visit ID and navigation endpoint corresponding to the session; and generating a session continuation notification. Furthermore, the second client device may, in response to receiving a command, load additional components onto the viewing page UI on the second client device, and the viewing page UI with the additional components enables the session to resume on the second client device. In addition, a set of recommended content items may be a playlist.
[0008] Computing devices for performing the above-described methods and various embodiments described herein are disclosed. Computer-readable media for storing instructions for performing operations related to the above-described methods and various embodiments described herein are also disclosed.
[0009] This disclosure describes the figures in the attached drawings in an illustrative rather than restrictive manner. [Brief explanation of the drawing]
[0010] [Figure 1] This block diagram shows an exemplary network architecture on which embodiments of the present disclosure can be implemented. [Figure 2] This is a block diagram of a server handoff component and a client handoff component according to one embodiment of the present disclosure. [Figure 3A] This is an exemplary screenshot of the UI for the handoff function of a content sharing platform according to an embodiment of the disclosure. [Figure 3B] This is an exemplary screenshot of the UI for the handoff function of a content sharing platform according to an embodiment of the disclosure. [Figure 4] This flowchart illustrates a method for implementing the handoff function of a content sharing platform on a server device according to one embodiment. [Figure 5] This flowchart illustrates a method for generating a manually initiated session continuation notification for the handoff function of a content sharing platform, according to one embodiment. [Figure 6] This flowchart illustrates a method for providing automatically generated session continuation notifications for the handoff function of a content sharing platform, according to one embodiment. [Figure 7] This flowchart illustrates a method for implementing the handoff function of a content sharing platform on a client device, according to one embodiment. [Figure 8] A block diagram showing one embodiment of a computer system according to one embodiment. [Modes for carrying out the invention]
[0011] The aspects and embodiments of this disclosure relate to handoff functionality for content sharing platforms. In one embodiment, a number of computing devices, including desktop computing devices and mobile devices, including mobile phones and tablet devices, may be used to access the content sharing platform. Users are increasingly using various media to access the same service or application (such as a content sharing platform). For example, a user may consume (e.g., watch, listen to, view, etc.) a set of content items (e.g., videos) from a content sharing platform on a first client device (e.g., via a media viewer provided on a web browser or via an application on the client device). This may be referred to as a user's session, viewing session, viewing session, visit, etc. To enable convenient and seamless sessions, a content sharing platform may provide handoff functionality that allows a user's session to continue on a second client device used to access that session.
[0012] However, conventional systems for handing off sessions on content sharing platforms do not provide handoff functionality that corresponds to a user's specific 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. Embodiments of this disclosure enable a smooth transition during session handoff by transferring a visit identifier (ID) as part of the session handoff, which allows the session to restart at its most recent endpoint and resume from content recommendations related to the session's most recent viewing history.
[0013] Embodiments of this disclosure provide a handoff function for transferring a session from a first client device to a second client device. The handoff function of the embodiments of this 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 continuation provided by the handoff function of the embodiments of this disclosure is based on a set of content items recently consumed by the user during the session on the first client device, rather than on the entire viewing history associated with the user on the content sharing platform.
[0014] For example, suppose a user typically watches game videos and electronic music videos, and occasionally country music videos. Furthermore, assume that as part of a recent session on a content-sharing platform application, the user primarily consumed country music videos. When the user ends their viewing session on a first client device and then initializes the content-sharing platform application on a second client device (for example, when the user changes devices from a desktop computer to a mobile device due to a change of location), the application can prompt the user to continue watching a playlist of country music videos instead of loading a playlist containing electronic and game videos (even if these videos represent notable user preferences based on the user's entire viewing history on the content-sharing platform).
[0015] Embodiments of this disclosure achieve technical improvements by introducing a handoff functionality for the content sharing platform that enhances the availability of the content sharing platform. This availability is improved by providing relevant session continuity data, such as precise navigation endpoints for resuming sessions and recommended content items for the session (for example, based on the most recently consumed content items in the session rather than the user's entire viewing history). This reduces the time and communication resources used (by both client and server devices) to resume content sessions, thereby improving the quality of the content sharing platform, reducing processing time, reducing the utilization of processing resources, and improving the user experience.
[0016] In embodiments of this disclosure, video is often mentioned for simplicity and conciseness. However, the teachings of this disclosure apply to media items in general and can be applied to various types of content items or media items, including, for example, video, audio, text, images, program instructions, etc.
[0017] Figure 1 shows 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 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., random access memory), a cache, a drive (e.g., a hard drive), a flash drive, a database system, or other type of component or device capable of storing data. The data storage device 106 may also include multiple storage device components (e.g., multiple drive units or multiple databases) that may extend to multiple computing devices (e.g., multiple server computers).
[0018] Client devices 110A to 110Z may each include computing devices such as personal computers (PCs), laptops, mobile phones, smartphones, tablet computers, netbooks, and network-connected televisions. In some embodiments, client devices 110A to 110Z may also be referred to as “user devices.” Each client device includes a media viewer 111. In one embodiment, the media viewer 111 may be an application that enables a user to view content such as images, videos, web pages, and documents. For example, the media viewer 111 may be a web browser that can access, search, present, and / or navigate content stored on a web server (e.g., web pages such as hypertext markup language (HTML) pages, digital media items, etc.). 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 can also display embedded media players (e.g., Flash® player or HTML5 player) embedded in a web page (e.g., a web page that can provide information about products sold by an online retailer). In another example, the media viewer 111 can be a standalone application (e.g., a mobile application or app) that enables a user to view digital media items (e.g., digital video, digital images, ebooks, etc.). According to aspects of this disclosure, the media viewer 111 can be a content sharing platform application for a user to record, edit, and / or upload content for sharing on a content sharing platform, and implements the 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 music content and implements a handoff function as part of the music streaming service.
[0019] The media viewer 111 may be provided to client devices 110A through 110Z by the server 130 and / or the content sharing platform 120. For example, the media viewer 111 can be an embedded media player embedded in a web page provided by the content sharing platform 120. In another example, the media viewer 111 can be an application downloaded from the server 130.
[0020] The functions described for one embodiment, such as those executed by the content sharing platform 120, can also be executed on client devices 110A through 110Z in another embodiment, where appropriate. Additionally, the functions belonging to a particular component can also be executed by another, or multiple, components operating together. The content sharing platform 120 can also be accessed as a service provided to other systems or devices through a suitable application program interface, and thus is not limited to use on a website.
[0021] In one embodiment, the content sharing platform 120 can be one or more computing devices (such as rack-mounted servers, router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, desktop computers, etc.), data storage devices (e.g., hard disks, memories, databases), networks, software components, and / or hardware components, which can be used to enable users to access media items and / or 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 a website (such as a web page) 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 sometimes be represented as just one individual. However, other embodiments of the present disclosure include a "user" that is an entity controlled by a group of users and / or an automated source. For example, a group of individual users associated as a community within a social network may be regarded as the "user". In another example, an automated consumer can be an automated collection pipeline of the content sharing platform 120, such as a topic channel.
[0023] The content sharing platform 120 can host data content such as media items 121. Data content may include digital content selected by users, digital content made available by users, digital content uploaded by users, digital content selected by content providers, and digital content selected by broadcasters. Examples of media items 121 may include, but are not limited to, digital video, digital film, digital photograph, digital music, website content, social media updates, ebooks, e-magazines, digital newspapers, digital audiobooks, e-journals, web blogs, Real Simple Syndication (RSS) feeds, e-comic books, and software applications. In some embodiments, media items 121 are also referred to as content items.
[0024] Media item 121 can be consumed via the internet and / or via a mobile device application. For brevity and simplicity, online video (hereinafter also referred to as video) is used throughout this specification as an example of media item 121. As used herein, “media,” “media item,” “online media item,” “digital media,” “digital media item,” “content,” and “content item” may include electronic files that can be executed or loaded using software, firmware, or hardware configured to present digital media items to an entity. In one embodiment, content sharing platform 120 may store media item 121 using data storage device 106.
[0025] In one embodiment, server 130 may be one or more computing devices (e.g., rack-mount servers, server computers, etc.). In one embodiment, server 130 may be included in content sharing platform 120. Server 130 may include server handoff components 140 for performing the handoff functionality of content sharing platform 120. In some embodiments, client devices 110A-110Z may include client handoff components 115 that operate together with (or separately in some embodiments) the server handoff components 140 to provide the handoff functionality of content sharing platform 120. Client handoff components 115 may perform embodiments of the present disclosure independently of or together with the server handoff components 140 of server 130. In the following description, server handoff components 140 that perform embodiments of the present disclosure may be referred to, but it should be understood that the functionality of server handoff components 140 can be performed equally by client handoff components 115 in client devices 110A-110Z alone and / or together with them.
[0026] In one embodiment, a user can consume (e.g., watch, listen to, view, etc.) a set 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 via an application on the client devices 110A-110Z). This may be referred to as a user session, viewing session, viewing session, visit, etc. If the session ends on the first client device, the server handoff component 140 and / or the client handoff component 115 enable the handoff functionality 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 functionality provided by the server handoff component 140 and / or the client handoff component 115 enables the user's session to be resumed on the second client device 110A-110Z at the same point (referred to herein as the navigation endpoint) where the session ended on the first client device. Furthermore, the session continuation provided by the handoff functionality of the embodiments of this disclosure is based on a set of content items recently consumed by the user during the session on the first client device, rather than on the entire viewing history associated with the user on the content sharing platform.
[0027] For example, suppose a user typically watches game videos and electronic music videos, and occasionally country music videos. Furthermore, suppose that as part of a recent session on a content sharing platform application, the user has primarily consumed country music videos. When the user ends their viewing session on a first client device and then initializes the content sharing platform application on a second client device (for example, when the user changes devices from a desktop computer to a mobile device as they change locations), the user can be prompted through the application to continue watching a playlist of country music videos instead of loading a playlist that includes electronic and game videos (even if these videos are notable user preferences based on the user's entire viewing history on the content sharing platform). In addition, the handoff functionality of the embodiments of this disclosure ensures that videos recently watched by the user during a session on the first client device are not included in the playlist as recommended content. This prevents the user from being 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 realize embodiments of the 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 reference to Figure 2.
[0029] While embodiments of this disclosure are discussed with respect to a content sharing platform and providing a handoff function to the content sharing platform, embodiments can also be broadly applied to any type of social network that facilitates connections between users. Embodiments of this disclosure are not limited to a content sharing platform that provides channel subscriptions to users.
[0030] Apart from the above description, users may be provided with control mechanisms that allow them to choose whether the systems, programs, or functions described herein enable the collection of user information (e.g., the user's social networks, social behavior or activities, occupation, user preferences, or current location) and whether content or communications are transmitted to the user from the server. In addition, certain data may be processed in one or more ways so that personally identifiable information is removed before it is stored or used. For example, a user's personal information may be processed so that personally identifiable information about that user cannot be determined, or, if location information is available, the user's geographical location may be generalized (to the city, zip code, or state level, etc.) so that the user's specific location cannot be determined. Thus, users can control what information is collected about them, how that information is used, and what information is provided to them.
[0031] Figure 2 is a block diagram showing a server handoff component 140 and a client handoff component 115 according to one embodiment of the present disclosure. As discussed above, the server handoff component 140 can interact with a single social network or can be used between multiple social networks (for example, provided as a service of a content sharing platform used 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. Some components may be included in the server handoff component 140 without loss of generality. For example, two of the modules can be combined to form a single module, or one of the modules can be split into two or more modules. In one embodiment, one or more modules may reside on separate computing devices (for example, separate server computers, a single client device, or distributed among multiple client devices). Furthermore, 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 device 106. For example, the server handoff component 140 can be coupled to the client handoff component 115 and the data storage device 106 via a network (for example, via the network 105 shown in Figure 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. Some components may be included in the client handoff component 115 without loss of generality. For example, two of the modules may be combined to form 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). Furthermore, one or more modules may reside on separate content sharing platforms, third-party social networks, and / or external servers.
[0034] The data storage device 106 can be memory (e.g., random access memory), a cache, a drive (e.g., a hard drive), a flash drive, a database system, or other types of components or devices capable of storing data. The data storage device 106 may also include multiple storage device components (e.g., multiple drive units or multiple databases) that may extend to multiple computing devices (e.g., multiple server computers). The data storage device 106 includes content item data 290, event log data 291 (which may further include session identifiers (IDs) 292, visit IDs 293, and viewing history 294), and user data 295.
[0035] As discussed above, the server handoff component 140 and the client handoff component 115 enable the handoff (i.e., transfer) of a session of a procedurally generated list of content items from one client device to another, separately and / or together. As part of a session on the content sharing platform, a user can consume (e.g., watch, listen to, view, etc.) a set of content items (e.g., video from content item data 290 in data storage device 106) on a first client device. If the session ends on the first client device, the server handoff component 140 and / or the client handoff component 115 enable the handoff functionality of the content sharing platform so that the session can be resumed / continued on a 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 may include a client handoff component 115 to enable the handoff functionality of the embodiments of this disclosure. Furthermore, the session continuation provided by the handoff functionality of the embodiments of this disclosure is based on a set of content items recently consumed by the user during the session on the first client device, rather than on the entire viewing history associated with the user on the content sharing platform.
[0036] When a session is running on the first client device, the session history logger 210 of the server handoff component 140 logs the user's activity during the session, including a set of content items consumed by the user during the session. The session history logger 210 logs each event (for example, viewing history 294 indicating the user's viewing of a content item) in the event log data 291 of the data storage device 106. Each event (for example, viewing history 294) is logged in the event log data 291 along with a session ID 292 that identifies the user, and further logged along with another visit ID 293.
[0037] Session ID 292 can be associated with any user interaction with the content sharing platform on a single client device during a given day. Interactions on different days using the same client device are associated with a new Session ID 292 compared to Session ID 292 associated with the user's interactions on previous days using the same client device. In addition, user interactions on different client devices on the same day are associated with different Session ID 292.
[0038] 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 between them (for example, each interaction under Visit ID 293 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. Therefore, Session ID 292 may encompass multiple Visit IDs 293 if a user interacts with the content sharing platform on a client device at different time intervals throughout the day (i.e., each interaction under Visit ID is separated by 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 at a defined interval and are not separated by a time threshold. 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.
[0039] When a session on a first client device ends (for example, when a content sharing application is closed, or when there is a predetermined period of inactivity on the content sharing platform), the session can be transferred from the first client device to the user's second client device (for example, to continue, resume, or hand off). In one embodiment, the handoff detector 220 of the server handoff component 140 can identify when a session ended on one client device (for example, the first client device) and / or when the user associated with that session became active on another client device (for example, the second client device). The handoff detector 220 can use 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] Embodiments of this disclosure provide two variations on how a session can be transferred from one client device to another. In the 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 on behalf of the user. For example, the handoff detector 220 may determine that a user identifier (ID) associated with the user has been received as part of an event corresponding to the second client device (e.g., logging to an application on the content sharing platform, requesting content delivery, etc.). In one embodiment, the handoff detector 220 determines that content associated with the content sharing platform (e.g., homepage, feed, etc.) has been requested from the second client device (e.g., when the 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 if there was a previous visit to a content sharing platform associated with the user, provided that the previous visit involved the consumption of multiple content items and occurred within a specified period (for example, within the last 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 a session continuation notification and sends it to a second client device. The session continuation notification can be shown 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 to the second client device as a system notification. The session continuation notification may include a prompt asking the user whether they wish to resume and / or continue the previous session identified by the handoff detector 220.
[0042] Figure 3A shows an exemplary screenshot of a session notification UI 300, including an automatically generated handoff notification, according to an embodiment of the present disclosure. The UI 300 may display to inform the user that a session previously held on another client device can be continued or resumed on the user's current client device. In some embodiments, the UI 300 may include a playback section 310 for playing back content items (e.g., obtained from content item data 290 in a data storage device 106). The UI 300 may also include a content item description section 320, which includes identification information (e.g., obtained from content item data 290) corresponding to the content items supplied for playback in the playback section 310. The UI 300 may further include a session continuation notification section 330.
[0043] In some embodiments, the session continuation notification portion 330 may include a statement 332 that informs the user that the content item identified in portions 310, 320 has been previously viewed using another client device ("Device A"). This statement also asks the user whether they wish 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, which, when selected, allows the session (associated with the previously viewed content item identified in portions 310, 320) to be resumed (e.g., continued, handed off, 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 Figure 2, in the second variant, a session continuation notification can be generated by the handoff notification generator 230 when a display is received by the user on the first client device when the user selects a handoff function (for example, the user clicks a button or selects a link associated with the handoff function). When the handoff function is selected by the user (for example, via a link or button representing the handoff function provided in the user interface (UI) of the content sharing application), a remote procedure call (RPC) is generated by the handoff notification generator 250 and sent to the handoff detector 220. The handoff detector 220 then activates the handoff notification generator 230 to send a session continuation notification to one or more other client devices associated with the user. In one embodiment, the handoff notification generator 230 is responsible for distributing the session continuation notification to the user's client devices that are registered to receive notifications from the content sharing platform. The user's client devices registered with the content sharing platform can be identified from the user data 295 in the data storage device 106.
[0045] Figure 3B shows an exemplary screenshot of a UI 350 that enables manual handoff of a user's session on a content sharing platform according to an embodiment of the present disclosure. The UI 350 may include a media player 360 that plays a content item and a content item information section 370. The content item information section 370 may enumerate identification information for the currently accessed content item shown in the media player 360. The content item information section 370 may include, but is not limited to, information such as 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., upvotes) of the content item, and the number of "dislikes" (e.g., downvotes) of the content item.
[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 Figure 3B, the handoff icon 380 is part of the control area of the media player 360, located at the bottom of the media player 360. In one embodiment, when a viewer hovers over or selects the handoff icon 380, a dropdown menu 385 may be presented to the viewer. The dropdown menu 385 can provide the viewer with further information about the handoff functionality. For example, the dropdown menu 385 may be selected by the viewer to hand off the current viewing session to another client device. In some embodiments, the dropdown menu 385 may enumerate other potential client devices from which the viewing session can be handed off. When the handoff icon 380, or the dropdown 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 parts 360, 370) may be generated and sent to another client device associated with the user. Other locations and configurations of the handoff icon 380, including dropdown menus 385 and other notification types, other than those described with respect to UI 350, may also be available in embodiments of this disclosure.
[0047] Returning to Figure 2, in both the first and second variants described above, the session continuation notification includes a payload. This payload includes a visit ID 293 associated with a specific session and a navigation endpoint. In one embodiment, the navigation endpoint is a timestamp that identifies the location within the content item being viewed on the first client device when the session ended. 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 in the second client device receives and displays a session continuation notification. The session continuation notification can be displayed as a notification within the UI of a content sharing platform application or browser application on the second client device, and / or as a system notification generated on the second client device. The session continuation notification may include a prompt asking the user whether they wish to resume and / or continue a previous specific session identified by the handoff detector 220.
[0049] The user can choose to continue the session via a session continuation notification presented on the second client device, for example, by selecting a link or clicking a button in the session continuation notification. In response to receiving the 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 can extract the visit ID and navigation endpoint from the session continuation notification payload and generate a client request requesting a new viewing page corresponding to the received navigation endpoint. The generated client request may also include the extracted visit ID. The handoff request generator 260 sends this client request to the server handoff component 140.
[0050] When a client request is received by the server handoff component 140, the handoff instruction generator 240 can generate a session continuation handoff instruction. The handoff instruction may include (1) an instruction to load a viewing page corresponding to a navigation endpoint, and (2) an instruction to request additional components for the viewing page. With respect to loading the viewing page, the instruction may identify a content item to be loaded as part of the viewing page, which corresponds to the session's navigation endpoint. In one embodiment, the content item may be the last content item consumed by the user (for example, when the user was in the process of viewing the content item). In some embodiments, the content item may be the next content item in the session (for example, when the user is at the end of the last content item consumed in the session, or between viewing content items in the session).
[0051] Regarding the request for additional components, these additional components may include a recommended set of content items to be viewed next. In one embodiment, the recommended set of content items may be in the form of a playlist. The recommended set of content items can be identified by the recommendation generator 245 of the handoff instruction generator 240. The recommendation generator 245 can identify a 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 can be obtained from event log data 291 (i.e., from viewing history 294) and may refer to the most recently consumed content items by the user during a session to be continued on the second client device. These recently consumed content items can be used by the recommendation generator 245 to sow the seeds for generating a set of recommended content items.
[0052] The following describes how a set of recommended content items (e.g., a playlist) can be generated. First, the recommendation generator 245 takes in a collection of seed content items (e.g., content items associated with visit ID 293) and identifies a set of other user sessions that have consumed any of these seed content items, as well as any playlists that contain any of those content items. Next, the identified other user sessions and playlists are weighted by the number of seed content items they contain. Then, an initial set of content items is generated, in which the content items have also been viewed by the user or 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 that contain the content items. 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 a handoff command is received by the client handoff component 115 on the second client device from the server handoff component 140, the handoff implementer 270 executes the handoff command, allowing the session to be resumed and / or continued on the second client device. Once the handoff command is executed, the handoff implementer 270 loads a viewing page containing a set of recommended content items to be viewed next into the UI of the application (e.g., a browser application or a content sharing platform application) on the second client device.
[0054] In one embodiment of the present disclosure, a user event may be recorded in event log data 291 after a session has been handed off to a second client in accordance with the above. The user event records the pairing of the original visit ID of the first client device with the new visit ID to be used on the second client device. This pairing can be used to daisy-chain each session together so that, as a user moves from client device A to client device B and then to client device C, the seeds of the content items consumed on both client devices A and B are sown in the continuous playback list (i.e., recommended set of content items) on client device C.
[0055] Figure 4 is a flowchart illustrating a method 400 for implementing a content sharing platform handoff function on a server device according to one embodiment of the present disclosure. Method 400 can be implemented by a processing logic circuit including hardware (e.g., circuits, dedicated logic circuits, programmable logic circuits, microcode, etc.), software (e.g., instructions executed on a processing device to perform hardware simulation), or a combination thereof.
[0056] For the sake of simplicity, the methods of this disclosure are described and portrayed as a series of operations. However, the operations of this disclosure may be performed in various orders and / or simultaneously, and in conjunction with other operations not presented and described herein. Furthermore, not all described operations may be necessary to carry out the methods of the disclosed subject matter. In addition, those skilled in the art will understand and recognize that the methods may be alternatively represented as a series of interrelated states by a state diagram or by events. Furthermore, it should be understood that the methods disclosed herein may be stored in a product that facilitates the transport and transfer of such methods to a computing device. As used herein, “product” includes a computer program accessible from any computer-readable device or storage medium. In one embodiment, method 400 can be carried out by the server handoff component 140 shown in Figures 1 and 2.
[0057] Method 400 begins in block 410, where the session history of the user's session is maintained, and this session history is maintained on the first client device. In block 420, it is determined that the session has moved from the first client device to the second client device. Subsequently, in block 430, a session continuation notification is sent to the second client device, which is associated with the visit ID and the session navigation endpoint on the first client device.
[0058] In block 440, a request is received from a second client device, which requests a viewing page UI for a content item corresponding to the session's navigation endpoint. Finally, in block 450, an instruction is sent to the second client device, which is to load the viewing page UI and to request additional components of the viewing page UI using the visit ID. In one embodiment, the additional components include a recommended content item to view next, which is identified based on a set of recently viewed content items associated with the visit ID.
[0059] Figure 5 is a flowchart illustrating a method 500 for generating a manually initiated session continuation notification for a handoff function of a content sharing platform, according to several embodiments of the present disclosure. The method 500 can be implemented by a processing logic circuit, including hardware (e.g., circuits, dedicated logic circuits, programmable logic circuits, 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 implemented by a server handoff component 140 shown in Figures 1 and 2.
[0060] Method 500 begins in block 510, where a selection display of a handoff function is received from a first client device, which is associated with a session of a user on a content sharing platform. In one embodiment, this selection is a user selection of a button, icon, or link representing the handoff function on the first client device. In block 520, one or more other client devices associated with the user are identified in response to receiving the display in block 510. Next, in block 530, the visit ID corresponding to the session on the first client device and the navigation endpoint for that session are identified.
[0061] Next, in block 540, a session continuation notification is generated, which includes a payload containing the visit ID and navigation endpoint. Finally, in block 550, the generated session continuation notification is sent to one or more other client devices.
[0062] Figure 6 is a flowchart illustrating a method 600 that provides automatically generated session continuation notifications for a handoff function of a content sharing platform, according to several embodiments of the present disclosure. The method 600 can be implemented by a processing logic circuit including hardware (e.g., circuits, dedicated logic circuits, programmable logic circuits, 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 implemented by a server handoff component 140 shown in Figures 1 and 2.
[0063] Method 600 begins in block 610, where it is determined that the content sharing platform is being accessed on a first client device and that this access is associated with a user of the content sharing platform. In block 620, the most recent user session on the content sharing platform is identified. In one embodiment, the most recent session occurred within a defined time threshold and was held on a client device different from the first client device.
[0064] Next, in block 630, the visit ID corresponding to the identified session and the navigation endpoint for that session are identified. Then, in block 640, a session continuation notice is generated, which includes a payload containing the visit ID and the navigation endpoint. Finally, in block 650, the generated session continuation notice is sent to the first client device.
[0065] Figure 7 is a flowchart illustrating a method 700 for implementing a content sharing platform handoff function on a client device, according to several embodiments of the present disclosure. The method 700 can be implemented by a processing logic circuit including hardware (e.g., circuits, dedicated logic circuits, programmable logic circuits, 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 implemented by the client handoff component 115 shown in Figures 1 and 2.
[0066] Method 700 begins in block 710, where the content sharing platform is accessed from a first client device. The content sharing platform can be accessed, for example, via a content sharing platform application on the first client device, or via a web browser on the first client device. In block 720, a session continuation notification is received, which includes the visit ID and navigation endpoint of the user's session conducted on a second client device. The user's session is associated with the content sharing platform.
[0067] Next, in block 730, a first request is sent in response to the session continuation notification, requesting the viewing page UI for the content item corresponding to the navigation endpoint. The request can be sent from the first client device to the server device of the content sharing platform. In block 740, a command is received to load the viewing page UI and a command to request additional components of the viewing page UI using the visit ID. The additional components may include recommended content items to watch next (e.g., playlists) identified based on the set of recently viewed content items associated with the visit ID.
[0068] In block 750, a second request is sent for additional components of the viewing page UI, which includes the visitor ID. In block 760, the additional components of the viewing page UI are received in response to the second request. Finally, in block 770, the viewing page UI is loaded, which includes the recommended content item to view next. The recommended content item is identified using the visitor ID.
[0069] Figure 8 shows a diagram of a machine in an exemplary form of computer system 800, which can execute a set of instructions that cause the machine to perform one or more of the methodologies discussed herein. In alternative embodiments, the machine may be connected to (e.g., networked) other machines in a local area network (LAN), intranet, extranet, or internet. The machine may operate within the capacity of a server or 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), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular telephone, web device, server, network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify the actions to be performed by the machine. Furthermore, although only a single machine is illustrated, the term “machine” should also be interpreted to include any collection of machines that, individually or concatenated, execute one or more sets of instructions to perform one or more of the methodologies discussed herein. In one embodiment, the computer system 800 may represent a server (such as server 102) or a client (such as clients 110A to 110Z) running the handoff component 850, such as a server handoff component 140 or a client handoff component 115, as discussed with respect to Figures 1 and 2.
[0070] An exemplary computer system 800 includes a processing device 802, 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 static memory 806 (e.g., flash memory, static random access memory (SRAM)), and data storage device 818, which communicate with each other via bus 830. Any of the signals supplied through the various buses described herein can be time-division multiplexed with other signals and supplied through one or more common buses. Furthermore, interconnections between circuit components or blocks may be represented as buses or as single signal lines. Each bus may, in other words, be one or more individual signal lines, and each individual signal line may, in other words, be a bus.
[0071] The processing device 802 represents one or more general-purpose processing devices, such as a microprocessor or a central processing unit. 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 that implements other instruction sets, or a processor that implements a combination of instruction sets. The processor device 902 may also be one or more application-specific processing devices, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), or a network processor. The processing device 802 is configured to execute 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 called a machine-readable storage medium) which stores one or more sets of instructions 822 (e.g., software) that embody one or more of the functional methodologies described herein. The instructions 822 may also reside entirely or at least partially in the main memory 804 and / or in the processing device 802 during their execution by the computer system 800, the main memory 804 and processing device 802 also constituting a machine-readable storage medium. The instructions 822 may further be transmitted or received over the entire 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 of providing a handoff function for a content sharing platform, as described herein. Although the computer-readable storage medium 828 is shown in exemplary embodiments as a single medium, the term “machine-readable storage medium” should be interpreted to include a single medium or multiple mediums (e.g., a centralized or distributed database, and / or associated caches and servers) that store one or more sets of instructions. A machine-readable storage medium includes any mechanism that stores information in a form that can be read by a machine (e.g., a computer) (e.g., software, processing applications). A machine-readable medium may include, but is 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, such as examples of specific systems, components, and methods, have been discussed in order to facilitate understanding of some embodiments of the Disclosure. Those skilled in the art will see that at least some embodiments of the Disclosure can be implemented without these specific details. In other instances, well-known components and methods are either not described in detail or are presented in simple block diagrams to avoid unnecessarily obscuring the Disclosure. Therefore, the specific details discussed are illustrative only. Certain embodiments may differ from these exemplary details but are still considered to fall within the scope of the Disclosure.
[0076] Throughout this specification, any reference to “one embodiment” or “one embodiment” means that any particular feature, structure, or characteristic described in relation to that embodiment is included in at least one embodiment. Therefore, even if phrases such as “in one embodiment” or “in one embodiment” appear in various places throughout this specification, they do not all refer to the same embodiment. In addition, the term “or” is meant to be inclusive, not exclusive.
[0077] Although the operations of the methods described herein are illustrated and described in a specific order, the order of the operations of each method can be changed, so that some operations may be performed in reverse order, and some operations may be performed at least partially concurrently with other operations. In another embodiment, the instructions or subordinate operations of individual operations may be intermittent and / or alternating. [Explanation of symbols]
[0078] 100 System Architectures 105 Network 106 Data Storage Devices 110A Client Device 110Z Client Device 111 Media Viewer 115 Client Handoff Components 120 Content Sharing Platforms 121 Media Items 130 servers 140 Server Handoff Components 210 Session History Logger 220 Handoff Detectors 230 Handoff Notification Generator 240 Handoff Instruction Generator 245 Recommended Generators 250 Handoff Notifications 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 devices 814 Cursor control device 816 Signal Generating Devices 818 Data Storage Devices 820 Network 822 command 826 Processing Logic Circuit 828 Machine-readable storage medium 830 Bus 850 Handoff Components
Claims
1. A method to be performed on a server device, The steps include receiving information from the first client device indicating that the user has selected the handoff function during a session associated with the first client device, wherein the first client device is associated with the user, The steps include identifying a second client device associated with the user, The steps include identifying the visit ID corresponding to the aforementioned session, A step of identifying the navigation endpoint of the session, wherein the navigation endpoint is the point where the session ended on the first client device, and the handoff function allows the user's session to be resumed on a second client device at the navigation endpoint. A step of generating a session continuation notification, which includes a payload having the visit ID and the navigation endpoint, The session continuation notification enables the second client device to request a command to load an initial content item and a recommended content item to be consumed when the consumption of the initial content item is complete. A step in which content items consumed during the session associated with the first client device are excluded from the recommended content items, The steps include sending the session continuation notification to the identified second client device. Methods that include...
2. The method according to claim 1, wherein the navigation endpoint includes an identifier of the last consumed content item on the first client device and a timestamp including a position within the last consumed content item, the position corresponding to the end point of the session on the first client device.
3. The method according to claim 1, wherein the first client device and the second client device are registered and identified as being associated with the user in the content sharing platform.
4. The method according to claim 1, wherein the session history of the session that occurred on the first client device is maintained by the content sharing platform.
5. The method according to claim 4, wherein the session history includes a set of content items recently consumed on the content sharing platform.
6. The session history is as follows for each event of the session: Logging a session ID, wherein the session ID is associated with a content sharing platform event related to the user and logged in the event log data, The log of a visit ID different from the session ID, wherein the visit ID is associated with the first client device and the content sharing platform event corresponding to the user. The method according to claim 4, which is held by
7. The method according to claim 1, wherein the session continuation notification enables the second client device to request a command to load the last consumed content item.
8. The method according to claim 1, wherein the recommended content item is identified based on a set of recently consumed content items associated with the visit ID.
9. The method according to claim 1, wherein the recommended content item is a playlist.
10. A method performed by a server device, The content sharing platform determines that it is being accessed by a user on a second client device, The steps include identifying the session associated with the user's first client device, The steps include identifying the visit ID corresponding to the aforementioned session, A step of identifying the navigation endpoint of the session, wherein the navigation endpoint is the point where the session ended on the first client device, and the handoff function allows the user's session to be resumed on a second client device at the navigation endpoint. A step of generating a session continuation notification, which includes a payload having the visit ID and the navigation endpoint, The session continuation notification enables the second client device to request a command to load an initial content item and a recommended content item to be consumed when the consumption of the initial content item is complete. A step in which content items consumed during the session associated with the first client device are excluded from the recommended content items, The steps include sending the session continuation notification to the second client device and Methods that include...
11. The method according to claim 10, wherein the navigation endpoint includes an identifier of the last consumed content item on the second client device and a timestamp including a position within the last consumed content item, the position corresponding to the end point of the session on the second client device.
12. The method according to claim 10, wherein the first client device and the second client device are registered and identified as being associated with the user in the content sharing platform.
13. The method according to claim 10, wherein the session history of the session that occurred on the second client device is maintained by the content sharing platform.
14. The method according to claim 13, wherein the session history includes a set of content items recently consumed on the content sharing platform.
15. The session history is as follows for each event of the session: Logging a session ID, wherein the session ID is associated with a content sharing platform event related to the user and logged in the event log data, The log of a visit ID different from the session ID, wherein the visit ID is associated with the second client device and the content sharing platform event corresponding to the user. The method according to claim 13, which is held by
16. The method according to claim 10, wherein the session continuation notification enables the first client device to request a command to load the last consumed content item.
17. The method according to claim 10, wherein the recommended content item is identified based on a set of recently consumed content items associated with the visit ID.
18. The method according to claim 1, wherein the recommended content item is a playlist.
19. A server device, Memory and A processing device coupled to the memory and The processing device is equipped with an operation, and the operation is, An operation in which, during a session associated with a first client device, information is received from the first client device indicating that the user has selected the handoff function, wherein the first client device is associated with the user, An operation to identify a second client device associated with the aforementioned user, The operation of identifying the visit ID corresponding to the aforementioned session, An operation to identify the navigation endpoint of the session, wherein the navigation endpoint is the point where the session ended on the first client device, and the handoff function allows the user's session to be resumed on the second client device at the navigation endpoint. An operation to generate a session continuation notification, which includes a payload having the visit ID and the navigation endpoint, The session continuation notification enables the second client device to request a command to load an initial content item and a recommended content item to be consumed when the consumption of the initial content item is complete. The content items consumed during the session associated with the first client device are excluded from the recommended content items, and the operation is as follows: The operation of sending the session continuation notification to the identified second client device. Server devices, including those mentioned above.
20. A server device, Memory and A processing device coupled to the memory and The processing device is equipped with an operation, and the operation is, The content sharing platform determines that it is being accessed by a user on a second client device, The steps include identifying the session associated with the user's first client device, The steps include identifying the visit ID corresponding to the aforementioned session, A step of identifying the navigation endpoint of the session, wherein the navigation endpoint is the point where the session ended on the first client device, and the handoff function allows the user's session to be resumed on a second client device at the navigation endpoint. A step of generating a session continuation notification, which includes a payload having the visit ID and the navigation endpoint, The session continuation notification enables the second client device to request a command to load an initial content item and a recommended content item to be consumed when the consumption of the initial content item is complete. A step in which content items consumed during the session associated with the first client device are excluded from the recommended content items, The steps include sending the session continuation notification to the second client device and Server devices, including those mentioned above.
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