CN110869908A - Interactive viewing interface for live video - Google Patents

Interactive viewing interface for live video Download PDF

Info

Publication number
CN110869908A
CN110869908A CN201780092965.XA CN201780092965A CN110869908A CN 110869908 A CN110869908 A CN 110869908A CN 201780092965 A CN201780092965 A CN 201780092965A CN 110869908 A CN110869908 A CN 110869908A
Authority
CN
China
Prior art keywords
user
computing system
user device
live video
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201780092965.XA
Other languages
Chinese (zh)
Inventor
卡尔文·帕特里克·格鲁尼沃尔德
斯蒂芬·埃利斯
雅各布·普德勒克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Facebook Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Facebook Inc filed Critical Facebook Inc
Publication of CN110869908A publication Critical patent/CN110869908A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Tourism & Hospitality (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Operations Research (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

In one embodiment, a method comprises: the system receives a first request to publish live video and a first network address associated with a third party system. The system may receive a second request for content from the first user device and, in response, send display instructions, the associated first network address, a second network address from which live video is available, and a third network address from which the interface application is available. The display instructions may be configured to cause the first user equipment to: configuring the video player application to display live video obtained using the second network address; obtaining an interface application using the third network address; the interface application is configured to be displayed on at least a portion of the live video and to communicate with a third party computing system using the first network address.

Description

Interactive viewing interface for live video
Technical Field
The present disclosure relates generally to a framework that allows developers to develop and deploy interactive interfaces for live content.
Background
Users of the social networking system may post live videos through the social networking system. Video content may be sent to the social networking system from any source, including the user's own mobile device or computer, third party applications and their servers, third party streaming services, and so forth. The social networking system may post the live video on a website or through an application associated with the social networking system. Other users watching the live video may post comments related to the live video on the social networking platform.
A social networking system, which may include a social networking website, may enable its users (e.g., individuals or organizations) to interact with it and with each other through it. The social networking system may create and store a user profile (user profile) associated with the user in the social networking system with input from the user. The user profile may include demographic information, communication channel information, and information about the user's personal interests. The social networking system may also create and store records of the user's relationships with other users of the social networking system with input from the user, as well as provide services (e.g., wall post, photo sharing, event organization, messaging, games, or advertisements) to facilitate social interactions between or among users.
The social networking system may send content or messages related to its services to the user's mobile device or other computing device over one or more networks. The user may also install a software application on the user's mobile device or other computing device for accessing the user's user profile and other data within the social-networking system. The social networking system may generate a set of personalized content objects for display to the user, such as news feeds (news feeds) that are related (connect) to the summary stories (storeys) of other users of the user.
A mobile computing device (e.g., a smartphone, tablet computer, or laptop computer) may include functionality for determining its position, direction, or orientation, such as a GPS receiver, compass, gyroscope, or accelerometer. Such devices may also include functionality for wireless communications, such as bluetooth communications, Near Field Communications (NFC), or Infrared (IR) communications, or communications with a Wireless Local Area Network (WLAN) or a cellular telephone network. Such devices may also include one or more cameras, scanners, touch screens, microphones, or speakers. The mobile computing device may also execute software applications, such as games, web browsers, or social networking applications. Using social networking applications, users can connect, communicate, and share information with other users in their social networks.
Summary of the specific embodiments
Embodiments disclosed herein relate to systems and methods that enable users of a content distribution platform (e.g., a social networking system) to not only passively view live content, but also actively interact with, for example, other viewers, content promoters, and the content itself. Thus, the act of passively watching or watching (watching) is translated into an interactive experience. Furthermore, embodiments disclosed herein enable third party developers to control and customize the interactive experience for their specific live content. In particular embodiments, the social networking system may provide a framework through which developers may publish live videos and provide interactive viewing interfaces. The interactive viewing interface may be overlaid on top of the live video. The interface may contain a transparent portion that allows the user to see the underlying live video. The interface may be custom designed by the developer to communicate with the developer's system and provide interactive features tailored to the developer's live video.
The embodiments disclosed herein are merely examples, and the scope of the present disclosure is not limited to them. Particular embodiments may include all, some, or none of the components, elements, features, functions, operations, or steps of the above-disclosed embodiments. Embodiments in accordance with the present invention are specifically disclosed in the accompanying claims directed to methods, storage media, systems, and computer program products, wherein any feature referred to in one claim category (e.g., method) may also be claimed in another claim category (e.g., system). The dependencies or back-references in the appended claims are chosen for formal reasons only. However, any subject matter resulting from an intentional back-reference to any preceding claim (especially multiple claims) may also be claimed, such that any combination of a claim and its features is disclosed and may be claimed, irrespective of the chosen dependencies in the appended claims. The subject matter which can be claimed comprises not only the combination of features as set forth in the appended claims, but also any other combination of features in the claims, wherein each feature mentioned in the claims can be combined with any other feature or combination of other features in the claims. Furthermore, any of the embodiments and features described or depicted herein may be claimed in a separate claim and/or in any combination with any of the embodiments or features described or depicted herein or in any combination with any of the features of the appended claims.
In an embodiment according to the invention, a method comprises:
receiving, by a computing system associated with a social network, a first request to publish a live video, the first request received from a third-party computing system with respect to the social network, the first request including a first network address associated with the third-party computing system;
receiving, by the computing system, a second request for content from a first user device associated with the first user; and
in response to the second request, sending, by the computing system, to the first user device, a display instruction, a first network address associated with the third-party computing system, a second network address from which the live video is available, and a third network address from which the interface application is available;
wherein the display instructions are configured to cause the first user equipment to:
configuring the video player application to display live video obtained using the second network address;
obtaining an interface application using the third network address;
configuring an interface application for display on at least a portion of the live video; and
the interface application is configured to communicate with a third party computing system using the first network address.
In an embodiment according to the invention, a method may comprise:
receiving, by a computing system, a deep link from a third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
sending, by the computing system, the deep link to the first user device in response to the second request;
wherein the display instructions are further configured to cause the first user device to receive an input to activate the deep link and launch an application associated with the deep link installed on the first user device in response to the input.
The instructions contained in the deep link may be associated with content in the live video.
The content in the live video may have a gaming application installed on the second user device being played in the gaming session.
The deep link may be configured to cause a gaming application installed on the first user device to be launched.
The action initiated by the instruction in the deep link may cause a gaming application installed on the first user device to interact with a gaming application installed on the second user device through a gaming session.
The live video may have content posted by a second user of the social network through an application associated with the third-party computing system, wherein the application may be executed on a second user device associated with the second user;
wherein, the method can comprise the following steps:
in response to issuing the first request for live video, a live video object in the social graph is generated by the computing system, the live video object being associated with a user object representing the second user in the social graph.
The first user and the second user may be represented within a threshold degree of separation in the social graph.
In an embodiment according to the invention, a method may comprise:
presenting, by a computing system, a live video in a news feed associated with a social network on a first user device, wherein the live video is associated with an activation element;
wherein the display instruction is executed upon user activation of the activation element.
The interface application may be configured to:
receiving an input from a first user;
sending data corresponding to the input to a third party computing system; and
processing instructions from a third party computing system.
The live video may have content posted by a second user of the social network through an application associated with the third-party computing system, wherein the application may be executed on a second user device associated with the second user; wherein the data corresponding to the input from the first user may be configured to cause the third party computing system to cause the application on the second user device to display information associated with the input from the first user.
The interface application may be configured to:
sending a reaction or comment of the first user; and
responses or comments from other users viewing the live video on their respective user devices are received and displayed.
In embodiments consistent with the invention, one or more computer-readable non-transitory storage media may embody software that, when executed, is operable to cause a computing system associated with a social network to:
receiving a first request to publish a live video, the first request received from a third party computing system with respect to a social network, the first request including a first network address associated with the third party computing system;
receiving a second request for content from a first user device associated with the first user; and
in response to the second request, sending a display instruction, a first network address associated with the third-party computing system, a second network address from which live video is available, and a third network address from which the interface application is available to the first user device;
wherein the display instructions are configured to cause the first user equipment to:
configuring the video player application to display live video obtained using the second network address;
obtaining an interface application using the third network address;
configuring an interface application for display on at least a portion of the live video; and
the interface application is configured to communicate with a third party computing system using the first network address.
The software when executed is further operable to:
receiving a deep link from a third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
in response to the second request, sending the deep link to the first user equipment;
wherein the display instructions are further configured to cause the first user device to receive an input to activate the deep link and to launch an application associated with the deep link installed on the first user device in response to the input.
The instructions contained in the deep link may be associated with content in the live video.
The content in the live video may have a gaming application installed on the second user device being played in the gaming session.
The deep link may be configured to cause a gaming application installed on the first user device to be launched.
The action initiated by the instruction in the deep link may cause a gaming application installed on the first user device to interact with a gaming application installed on the second user device through a gaming session.
The interface application may be configured to:
receiving an input from a first user;
sending data corresponding to the input to a third party computing system; and
processing instructions from a third party computing system.
In an embodiment consistent with the invention, a computing system associated with a social network may include:
one or more processors; and
one or more computer-readable non-transitory storage media coupled to one or more processors and comprising instructions that, when executed by the one or more processors, are operable to cause a system to:
receiving a first request to publish a live video, the first request received from a third party computing system with respect to a social network, the first request including a first network address associated with the third party computing system;
receiving a second request for content from a first user device associated with the first user; and
in response to the second request, sending a display instruction, a first network address associated with the third-party computing system, a second network address from which live video is available, and a third network address from which the interface application is available to the first user device;
wherein the display instructions are configured to cause the first user equipment to:
configuring the video player application to display live video obtained using the second network address;
obtaining an interface application using the third network address;
configuring an interface application for display on at least a portion of the live video; and
the interface application is configured to communicate with a third party computing system using the first network address.
The processor, when executing the instructions, is further operable to:
receiving a deep link from a third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
in response to the second request, sending the deep link to the first user equipment;
wherein the display instructions are further configured to cause the first user device to receive an input to activate the deep link and launch an application associated with the deep link installed on the first user device in response to the input.
The instructions contained in the deep link may be associated with content in the live video.
The content in the live video may have a gaming application installed on the second user device being played in the gaming session.
The deep link may be configured to cause a gaming application installed on the first user device to be launched.
The action initiated by the instruction in the deep link may cause a gaming application installed on the first user device to interact with a gaming application installed on the second user device through a gaming session.
The interface application may be configured to:
receiving an input from a first user;
sending data corresponding to the input to a third party computing system; and
processing instructions from a third party computing system.
In embodiments according to the invention, one or more computer-readable non-transitory storage media may embody software that is operable when executed to perform a method according to the invention or any of the above-mentioned embodiments.
In an embodiment according to the invention, the system may comprise: one or more processors; and at least one memory coupled to the processor and comprising instructions executable by the processor, the processor being operable when executing the instructions to perform a method according to the invention or any of the above mentioned embodiments.
In an embodiment according to the invention, a computer program product, preferably comprising a computer-readable non-transitory storage medium, may be operable when executed on a data processing system to perform a method according to the invention or any of the above-mentioned embodiments.
Brief Description of Drawings
FIG. 1 shows an example block diagram of an embodiment in which a viewing interface is overlaid on a video player.
FIG. 2 illustrates an example block diagram of an embodiment in which a viewing interface is configured to render live content.
FIG. 3 illustrates an example flow diagram for providing an interactive viewing interface.
FIG. 4 illustrates an example network environment associated with a social networking system.
FIG. 5 illustrates an example social graph.
FIG. 6 illustrates an example computer system.
Description of example embodiments
Certain embodiments described herein relate to systems and methods for converting a viewing experience into an interactive experience. For example, a user of a social networking system may watch others playing a game, some of which may be live streamed in real time. Certain embodiments described herein enable a viewer (viewer) to not only view the game, but also actively participate in the game by, for example, posting live responses, emotions, and/or comments for viewing by the current gamer and other viewers. In addition, a viewer may join the game and play with a game player or another viewer by clicking/tapping on an activation element presented with the streaming content. Triggering the activation element may cause a native game application installed on the user's system to launch and automatically establish the necessary connections to join the game. Such examples of interactive viewing features drive interactions between social networking users around content (e.g., games) as well as with the games themselves, benefiting end users, social networking systems, and game developers.
The systems and methods described with reference to particular embodiments provide a framework for developers to develop interactive viewing experiences that are customized for content streamed by the developers over a social networking system. By leaving the implementation details of the viewing interface to the developer, the interface may be custom-made for each individual content (e.g., game) being broadcast, rather than a generic interface provided by a social networking system. For example, a developer's game server may leverage its game state knowledge to provide dynamic features for a viewing interface.
FIG. 1 shows an example block diagram of an embodiment in which an interactive viewing interface is overlaid on a video player. For example, at a high level, live video may be overlaid by an interactive viewing interface (which may be implemented using, for example, HTML 5). The interface may be designed by a third-party developer of an application (as opposed to a social networking system) that is configured to cause live content to be streamed over the social networking system. In particular embodiments, the interface may be uploaded to a social networking system. In particular embodiments, the interface may include a transparent portion that allows the underlying content to be visible. The interface may also include any control and display elements for supporting the developer's viewing interface design. Through the interface, the viewer can provide input to and receive updates from a system associated with a third party developer (e.g., a game server associated with a game developer). For example, because the game server may be aware of the game state/features and control them, the game server will be able to provide interaction opportunities and/or feedback based on the game state/features. An example of a system infrastructure for enabling third party developers to design and deploy such interactive viewing overlays (overlays) is shown in FIG. 1.
In particular embodiments, the system and process shown in FIG. 1 may be used to provide a live broadcast of a game with an interactive viewing interface. It should be appreciated that although the example embodiment is described in the context of a game, the present disclosure contemplates integrating an interactive viewing interface with any suitable content (e.g., video/audio broadcasts). In particular embodiments, a user or game player may play native game app 103 on his/her mobile device. The player may log into game 103 and game 103 may communicate with a respective game server 130 associated with the developer of the game. In particular embodiments, the player may also authenticate himself using the social networking system. When a player wishes to broadcast his live game play (live game play) over the social networking system, in particular embodiments his device may communicate 110 with game server 130 and send a stream key, a player access token, and/or a broadcast license/target (target), each of which game server 130 may use to request that the social networking system broadcast the live game play. The streaming key may represent an identification or reference to a streaming session for the game being played. The player access token may be a token that authenticates and identifies the player on the social networking system. For example, the player access token may be generated in response to the player successfully authenticating himself with the social networking system. Authentication may be performed in any conventional manner, such as a player logging into the social networking system at the time the game is initiated. The broadcast permissions/goals that may ultimately be communicated to the social networking system may inform the social networking system of the desired permissions and/or goals for the live stream of the game. For example, the permissions may limit potential viewers to those within a particular group in the social networking system or within a threshold degree of separation (threshold degree of separation) from 16 players. As another example, the target may specify which users or types of users may be displayed with live content.
The game 103 and game server 130 may also communicate 110 during the game. For example, game 103 may send game control packets to game server 130 during game play. This may include, for example, user commands, purchases, game status, and other game related data. The game server 130 may also send, for example, server-side game status, instructions, and advertisements to the game 103. For example, certain game states may be determined by the server, and such game states may be transmitted to game app 103 during game play. As another example, game server 130 may send player community game updates, which may relate to game states and/or commands from other players playing with the player.
As discussed above, player game play may be broadcast live through the social networking system. In particular embodiments, the live broadcast request may be sent from game developer's cloud 120 to social networking cloud 160. In particular embodiments, game developer's cloud 120 may include a game server 130 and an encoding service 140, the encoding service 140 configured to generate and/or encode video of a player playing a game for distribution to social networking cloud 160. In particular embodiments, the game developer's cloud 120 may establish a streaming session with the social networking system by submitting a live video request. The live video request may be sent from, for example, the encoding service 140 or the game server 130. In embodiments where the encoding service 140 is configured to interface with the social network cloud 160, the game server 130 may communicate 135 the game server URI to the encoding service 140. As will be described in greater detail below, this game server URI may then be used by the interactive viewing interface to communicate directly with the game server 130. In particular embodiments, game server 130 may also pass 135 the player's player access token and/or broadcast license/goal information to encoding service 140. The player access token may be used to display to social network cloud 160 who the player is and he is authorized to post content through his account with the social networking system. The broadcast permissions/targets may also be part of request 143 to notify social network cloud 160 of the desired audience for the live video. In particular embodiments, game server 130 may also send the streaming key to encoding service 140. The streaming key may be used by the encoding service 140 to identify a particular streaming session established with the social network cloud 160 for streaming live video. For example, when the game server 130 generates new content, the content may be sent 135 to the encoding service 140 along with the appropriate stream key to inform the encoding service 140 which stream to use.
In particular embodiments, game developer cloud 120 may request social networking cloud 160 to publish live videos. Social network cloud 160 may include a graphics API 170 and a streaming service 180. The graphics API 170 may be configured to process live video requests and respond by generating and inserting live video objects into a social graph maintained by the social networking system. The streaming service 180 may be configured to receive and distribute live video. In particular embodiments, the live video creation request may be sent to graphics API 170. In particular embodiments, as discussed above, the live video request 143 may be accompanied by a player access token and/or a broadcast license/target. In particular embodiments, the request may also include a user identifier within the social networking system that identifies the player and/or any other players with whom the player is playing the game. For example, the user identifier may be used by the social networking system to determine where to post the requested live video (e.g., a news feed associated with the player and/or his friends). In particular embodiments, request 143 may also include story attribute data, which may include any metadata of a social media story that may be used to generate live video. For example, story attribute data may include information related to the current game state (e.g., how long a player is fighting a particular leader in a game), how long the player has played, the player's score, the player's opponents, and any other information that may be helpful in generating a textual context for a live video. In particular embodiments, as discussed above, the request 143 may include a URI or connection address (e.g., a web socket) of the game server. In particular embodiments, request 143 may also include horizontal/vertical cropping rules that may be used by the social networking system to determine how the live video should be cropped when displayed in different viewing orientations. In particular embodiments, request 143 may also include a deep link (deeplink) generated by game developer cloud 120. As will be described in greater detail below, the deep link may be used by the viewing interface to launch an appropriate gaming application on the user's device and provide instructional data to the gaming application to automatically perform certain actions (e.g., start a gaming session with a game server).
In particular embodiments, graphics API 170 may receive live video requests and, in response, generate and inject live video objects into the social graph. In particular embodiments, the live video object may be associated with an object in the social graph that is associated with the player and/or other players playing the game. In particular embodiments, the graphics API 170 may send 143 a reference to the live video object back to the game developer cloud 120 (e.g., the encoding service 140 of the cloud 120). The live video object may include an RTMP (real time messaging protocol) URI to which video frames may be pushed (any content source (including streaming services, a user's phone, etc.) may push video frames to the URI). In particular embodiments, the RTMP URI may point to a streaming service 180 of the social network cloud 160. The streaming service 180 may accumulate received frames and transmit live video upon request.
A specific embodiment of a live video streaming flow (streaming flow) may be as follows. While the game is being played, the game server 130 may simulate the game and render the corresponding frames and provide 135 them to the encoding service 140 for distribution. In particular embodiments, the stream key may be sent with the video frame to inform the encoding service 140 of the stream to which the video frame belongs. The encoding service 140 may then send 147 the video frames to a streaming service 180 of the social networking system using the RTMP RUI associated with the live video object associated with the live video. In particular embodiments, the encoding service may utilize any streaming service 150 (which may be a third party service external to the game developer system) to distribute the video stream to the social network cloud 160. Video frames may be accumulated by the streaming service 180 and frames may be distributed upon request.
In particular embodiments, the social networking system may publish live videos in news feeds. In particular embodiments, social network cloud 160 may include feed back server 190. Feed back-end server 190 may communicate 175 with graphics API 170 and/or streaming service 180 to obtain story data. The story data (which may include the aforementioned story attribute data) may be used to generate stories for live content in the news feed. In particular embodiments, feed back-end server 190 may receive feed request 195 from a user device configured to display news feed 101. For example, a user of a device may log into a social networking system through an associated app or browser. The feed back-end server 190 may identify the requesting user and determine what news feeds to provide. In particular embodiments, server 190 may use the social graph to determine that the news feed of the requesting user should include live video associated with the created live video object (e.g., the requesting user may be within a threshold degree of separation (e.g., 1) from the player who published the live video). In particular embodiments, feed back end server 190 may also consider broadcast permissions/target instructions to determine whether live video should be displayed to the requesting user. If server 190 determines that live video should be displayed, it may send 195 one or more of the following data. In particular embodiments, server 190 may transmit 195 one or more feed stories (feed stories), one of which may be a story generated using story attribute data, to provide context and/or market live video. In particular embodiments, a story may include one or more video frames associated with live video. In particular embodiments, live video (without an interactive viewing interface) may be streamed through a news feed as part of a story. In particular embodiments, live video presented in the news feed may be overlaid by an interactive viewing interface, as will be described in more detail below. In particular embodiments, server 190 may send a video stream URI from which to download live video or a preview (e.g., one or more frames) of live video, a game server URI as described above, and/or an instant overlay URI from which to download an interactive viewing interface. In particular embodiments, the interactive viewing interface may be implemented using HTML5 and/or JavaScript and packaged in a zip file. An interactive viewing interface may be designed and implemented by a game developer and uploaded to a server associated with a social networking system. Through the instant overlay URI, a particular interactive viewing interface for the game may be downloaded. In particular embodiments, the social networking system may determine which instant overlay URI to provide based on information provided with a live video creation request (e.g., the request may specify an identifier assigned to the instant overlay or any other information that may map to a particular instant overlay, such as a deep link or game ID).
In particular embodiments, server 190 may send 195 display instructions (e.g., in HTML) that specify how the information being sent should be configured in the user's news feed 101. In particular embodiments, a story associated with live video may be configured to process activation input. Upon receiving such activation input 198 (e.g., a user clicking or tapping on a story or live video), the news feed 101 may transition to mode 102, in which mode 102 the live video is presented with an interactive viewing interface. In particular embodiments, a live video stream may be loaded and launched in the video player (e.g., downloading 185 video from streaming service 180 using a video stream URI). In particular embodiments, the video player may be displayed within the social networking platform (e.g., within a news feed, in a separate window/interface originating from the news feed, within an associated chat interface/messenger, etc.). In particular embodiments, social network cloud 160 (e.g., via streaming service 180) may also send 185 to the user device commands and/or reaction data that the user published in response to the live video.
In particular embodiments, the instructions provided by server 190 may also cause the client device to download a package (e.g., a zip file) containing an interactive viewing interface (e.g., HTML5, JavaScript, and image resources) using the instant overlay URI. The viewing interface may then be loaded and launched using the downloaded package. In particular embodiments, the viewing interface may run in the web view as an HTML5 app with an injected JavaScript SDK that allows the HTML5 app to talk to surrounding apps (e.g., apps associated with the social networking system) and utilize the social context embedded in HTML 5. In particular embodiments, a third party game server URI may be injected into the interactive viewing interface to allow the interactive viewing interface to communicate 187 with the game server. Through this link 187, viewer responses, comments, and/or commands entered through the viewing interface may be sent to game server 130 and processed by game server 130. For example, comments and/or reactions may be shared with others (e.g., game players and other viewers) through game server 130. In particular embodiments, the developer-defined interaction package may be sent from the interactive viewing interface 102 to the game server 130 for processing. The game server may process the received packets in whatever manner it chooses. For example, the package, which may be sent in response to input completed by the viewer, may be configured to affect actual game play and/or trigger any ancillary action (e.g., gift presentation, comment, challenge, etc.). Thus, the viewer can not only enter reactions and/or comments on the streaming content, but can also affect the content and communicate with the originator of the content (e.g., the player). This is possible, in part, because the game server 130 knows and controls the game state. Game server 130 may also send 187 viewing interface 102 instructions (e.g., developer-defined interaction opportunities, which may depend on the current game state) and/or data to be displayed. Since the viewing interface is designed by the game developer, it is configured to appropriately process the instructions of the game server 130.
With the above embodiments, an interactive viewing experience may be provided to a viewer of live video. Live video content (e.g., of a game) may be streamed through a (streaming through) video player that may be overlaid (e.g., fully or partially overlaid) with an interactive viewing interface capable of receiving input from a viewer and sending/receiving data and instructions to game server 130. In particular embodiments, the interactive viewing interface 102 may be a custom HTML5 app developed by a game developer, and the interactive viewing interface 102 may be configured to connect to a third party game server 130 endpoint (endpoint) and indicate an action to perform. In particular embodiments, the interactive viewing interface may implement certain common features (via an SDK provided by the social networking system). For example, each interactive viewing interface may support a slide left feature that allows comments and reactions to be displayed on the video.
In particular embodiments, the interactive viewing interface may be configured to support deep link activation. In particular embodiments, deep links provided by the game server 130 to the social networking system may be integrated into the viewing interface. For example, display instructions sent from the feed back-end server 190 to the user device may configure a handler for receiving deep link activation input from a viewer. Upon activation 199 of the deep link, the deep link may attempt to launch an appropriate app (e.g., a game being streamed in live video) installed on the viewer's device. If the app is not available, the viewer may be redirected to an app store or source where the app may be downloaded. While in the above description, game app 103 represents a player's device and a content source of the live video being streamed, in the current context, game app 103 represents a viewer's device that activates the native game app. The game developer may design the deep link to include any information (e.g., application scheme (app scheme) registered by the developer, game session ID associated with the game streamed in live video, instructions, etc.) and trigger any type of action within the developer's game app 103. For example, activating a deep link may launch an app and instruct the app to automatically queue a viewer to join a game (tournament or competition) with a player and/or other viewers based on the type of game being streamed (e.g., to race out the winner of the last game). As another example, the viewer gives a gift in the game directly through the deep link. It should be appreciated that game developers have the flexibility to implement specific actions that may be performed. Through deep linking, the viewer can interact with the game developer through the game developer's native game app.
Fig. 2 illustrates an example block diagram of an embodiment in which a viewing interface is configured to render live content (e.g., a live game). In the embodiment shown, only HTML5 app 202 will run on the viewer's device without using a video player. Instead of streaming live video through the player, game play live may be rendered by HTML5 app 202 on the viewer's device based on game state data sent by game server 230. In addition to recreating games for viewers, HTML5 app 202 may also include any viewing interface features. As described above with reference to FIG. 1, the viewing interface may communicate directly with the game server 230. Since no video is involved, video processing and transmission is no longer required, which may be desirable for efficiency reasons.
In particular embodiments, in the process shown in fig. 2 (similar to the process of fig. 1), game app 203 on the player's device may communicate 210 with game developer cloud 220, which game developer cloud 220 may include game server 230. The game app 203 may similarly (1) send player access tokens, broadcast permissions/target rules, and/or game control packages, and (2) receive server game updates and transmit the game updates. However, since no video streaming is done in the embodiment shown in fig. 2, the stream key may not be sent in certain embodiments. For the same reason, game developer cloud 220 may not use encoding services and/or other streaming platforms because no video is broadcast. Further, in particular embodiments, game server 230 may no longer simulate the game and render the corresponding video frames for distribution.
In particular embodiments, game developer cloud 220 (e.g., via game server 230) may request social network cloud 260 to create a game story. In particular embodiments, game developer cloud 220 may provide the player access token to the social networking system to authenticate the player and request that the social networking system comply with the broadcast permission/targeting rules. Similar to the process described with reference to fig. 1, the game server 230 may communicate 235 with a graphics API 270 associated with the social network cloud 260 to submit the request. In particular embodiments, the request may include information such as a user identifier, story attributes, game server URI or connection address, deep links, and/or horizontal/vertical clipping rules, similar to those described with reference to fig. 1. In particular embodiments, game server 230 may additionally send 235 art assets (art assets) that may be used by the social networking system to generate stories. In particular embodiments, graphics API 270 may create a game story object based on the received information and insert the game story object into a social graph maintained by the social networking system. In particular embodiments, a game story object may be associated with a player and/or other players participating in the same game.
In particular embodiments, feed back-end server 290 may obtain 275 story data from graphics API 270 to create a game story. In a manner similarly described with reference to fig. 1, the feed back-end server 290 may respond to a feed request 295 from a viewer device running the news feed application 201 and return a feed story. One of the feed stories may be an overlay-enabled game story generated using story attributes from the game developer cloud 220. In addition, the server 290 may send an instant overlay URI from which the interactive viewing interface may be downloaded, and a game server URI. The overlay-enabled game story may be configured to render a snapshot or short movie (short movie) of the game in progress based on game state data provided by the game developer cloud 220.
In particular embodiments, instructions from feed back-end server 290 may configure the game story to handle an activation event, which upon triggering 298 may load and launch interactive viewing interface 202. In particular embodiments, the interactive viewing interface 202 (e.g., an HTML5/JavaScript package developed and uploaded by a game developer) may be downloaded using an instant overlay URI provided by the feed back-end server 290. In particular embodiments, the interactive viewing interface 202 may be populated with game server URIs, which may be used to communicate 287 with the game server 230. In particular embodiments, interactive viewing interface 202 may send a developer-defined interaction package that may be processed by game server 230 to perform any action. In particular embodiments, game server 230 may send developer-defined interaction opportunities and game states to interface 202, including server game updates and/or community game updates, as described above. The interactive viewing interface 202 may be configured by the game developer to render the game based on the received game state. Thus, rather than using a video player to play the video of the game, the embodiment shown in FIG. 2 uses interface app 202 to recreate the game scene. Similar to the interactive viewing interface described with reference to fig. 1, the interface 202 may also be configured to handle viewing features, such as allowing a viewer to enter reactions/comments to the game and any other developer-defined game state-based interaction opportunities. In particular embodiments, interface 202 may also receive 285 review and reaction data from social network cloud 260.
Similar to the deep link feature described with reference to FIG. 1, the embodiment shown in FIG. 2 may also support the deep link feature. For example, interactive viewing interface 202 may be configured to handle deep link activation. As described above, upon receiving the activation event 299, the interactive viewing interface 202 may launch the app 203 (e.g., game app) referenced by the deep link and automatically perform any action encoded in the deep link.
FIG. 3 illustrates an example method 300 for providing an interactive viewing interface. The method may begin at step 310, where a computing system associated with a social network may receive a first request to publish a live video at step 310. In particular embodiments, deep links may also be received. The first request may be received from a third-party computing system with respect to the social network, and the first request may include a first network address associated with the third-party computing system. At 320, the computing system may receive a second request for content from a first user device associated with the first user. At 330, in response to the second request, the computing system may send display instructions, a first network address associated with the third party computing system, a second network address from which live video is available, and a third network address from which the interface application is available to the first user device. In particular embodiments, the computing system may also send deep links. At step 340, the display instructions may be configured to cause the first user device to configure the video player application to display live video obtained using the second network address. The user device may also be caused to obtain the interface application using the third network address at step 350. At step 360, the user device may be caused to configure an interface application for display on at least a portion of the live video. At step 370, the user device may be caused to configure the interface application to communicate with the third party computing system using the first network address. At 380, the user device can be caused to be configured to receive an input that activates a deep link and, in response to the input, launch an application associated with the deep link that is installed on the first user device. Particular embodiments may repeat one or more steps of the method of fig. 3 where appropriate. Although this disclosure describes and illustrates particular steps of the method of fig. 3 as occurring in a particular order, this disclosure contemplates any suitable steps of the method of fig. 3 occurring in any suitable order. Moreover, although this disclosure describes and illustrates an example method for providing an interactive viewing interface that includes particular steps of the method of fig. 3, this disclosure contemplates any suitable method for providing an interactive viewing interface that includes any suitable steps, which may include all, some, or none of the steps of the method of fig. 3, where appropriate. Moreover, although this disclosure describes and illustrates particular components, devices, or systems performing particular steps of the method of fig. 3, this disclosure contemplates any suitable combination of any suitable components, devices, or systems performing any suitable steps of the method of fig. 3.
FIG. 4 illustrates an example network environment 400 associated with a social networking system. Network environment 400 includes client system 430, social-networking system 460, and third-party system 470 connected to each other through network 410. Although fig. 4 illustrates a particular arrangement of client system 430, social-networking system 460, third-party system 470, and network 410, this disclosure contemplates any suitable arrangement of client system 430, social-networking system 460, third-party system 470, and network 410. By way of example and not by way of limitation, two or more of client system 430, social-networking system 460, and third-party system 470 may be directly connected to each other, bypassing network 410. As another example, two or more of client system 430, social-networking system 460, and third-party system 470 may be wholly or partially physically or logically co-located with each other. Moreover, although fig. 4 illustrates a particular number of client systems 430, social-networking systems 460, third-party systems 470, and networks 410, the present disclosure contemplates any suitable number of client systems 430, social-networking systems 460, third-party systems 470, and networks 410. By way of example, and not by way of limitation, network environment 400 may include a plurality of client systems 430, social-networking system 460, third-party system 470, and network 410.
The present disclosure contemplates any suitable network 410. By way of example and not limitation, one or more portions of network 410 may include an ad hoc network, an intranet, an extranet, a Virtual Private Network (VPN), a Local Area Network (LAN), a wireless LAN (wlan), a Wide Area Network (WAN), a wireless WAN (wwan), a Metropolitan Area Network (MAN), a portion of the internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, or a combination of two or more of these. The network 410 may include one or more networks 410.
Links 450 may connect client system 430, social-networking system 460, and third-party system 470 to communication network 410 or to each other. The present disclosure contemplates any suitable links 450. In particular embodiments, one or more links 450 include one or more wired (e.g., Digital Subscriber Line (DSL) or cable-based data service interface specification (DOCSIS)) links, wireless (e.g., Wi-Fi or Worldwide Interoperability for Microwave Access (WiMAX)) links, or optical (e.g., Synchronous Optical Network (SONET) or Synchronous Digital Hierarchy (SDH)) links. In particular embodiments, one or more links 450 each include an ad hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, a portion of the internet, a portion of the PSTN, a cellular technology-based network, a satellite communication technology-based network, another link 450, or a combination of two or more such links 450. Links 450 need not be the same throughout network environment 400. The one or more first links 450 may differ in one or more respects from the one or more second links 450.
In particular embodiments, client system 430 may be an electronic device that includes hardware, software, or embedded logic components, or a combination of two or more such components, and is capable of performing the appropriate functions implemented or supported by client system 430. By way of example, and not limitation, client system 430 may include a computer system, such as a desktop computer, notebook or laptop computer, netbook, tablet computer, e-book reader, GPS device, camera, Personal Digital Assistant (PDA), handheld electronic device, cellular telephone, smartphone, augmented/virtual reality device, other suitable electronic device, or any suitable combination thereof. The present disclosure contemplates any suitable client system 430. Client system 430 may enable a network user at client system 430 to access network 410. Client system 430 may enable its user to communicate with other users at other client systems 430.
In particular embodiments, client system 430 may include a web browser 432, such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME, or MOZILLA FIREFOX, and may have one or more add-ons, plug-ins, or other extensions, such as TOOLBAR or YAHOO TOOLBAR. A user at client system 430 may enter a Uniform Resource Locator (URL) or other address directing web browser 432 to a particular server, such as server 462 or a server associated with third-party system 470, and web browser 432 may generate a hypertext transfer protocol (HTTP) request and communicate the HTTP request to the server. The server may accept the HTTP request and deliver one or more hypertext markup language (HTML) files to client system 430 in response to the HTTP request. Client system 430 may render the web page based on the HTML files from the server for presentation to the user. The present disclosure contemplates any suitable web page files. By way of example and not limitation, web pages may be rendered from HTML files, extensible hypertext markup language (XHTML) files, or extensible markup language (XML) files, according to particular needs. Such pages may also execute scripts (e.g., without limitation, scripts written in JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT), combinations of markup languages and scripts (e.g., AJAX (asynchronous JAVASCRIPT and XML)), and the like. Herein, reference to a web page includes one or more corresponding web page files (which a browser may use to render the web page), and vice versa, where appropriate.
In particular embodiments, social-networking system 460 may be a network-addressable computing system that may host an online social network. Social-networking system 460 may generate, store, receive, and send social-networking data (e.g., user-profile data, concept-profile data, social-graph information, or other suitable data related to an online social network). Social-networking system 460 may be accessed by other components of network environment 400, either directly or via network 410. By way of example and not by way of limitation, client system 430 may access social-networking system 460 directly or via network 410 using web browser 432 or a native application associated with social-networking system 460 (e.g., a mobile social-networking application, a messaging application, another suitable application, or any combination thereof). In particular embodiments, social-networking system 460 may include one or more servers 462. Each server 462 may be a single server (unity server) or a distributed server spanning multiple computers or multiple data centers. The server 462 may be of various types, such as, without limitation, a web server, a news server, a mail server, a messaging server, an advertising server, a file server, an application server, an exchange server, a database server, a proxy server, another server suitable for performing the functions or processes described herein, or any combination thereof. In particular embodiments, each server 462 may include hardware, software, or embedded logic components, or a combination of two or more such components for performing the appropriate functions implemented or supported by server 462. In particular embodiments, social-networking system 460 may include one or more data stores 464. Data storage 464 may be used to store various types of information. In particular embodiments, the information stored in data storage 464 may be organized according to particular data structures. In particular embodiments, each data store 464 may be a relational database, column (column) database, a relational database, or other suitable database. Although this disclosure describes or illustrates a particular type of database, this disclosure contemplates any suitable type of database. Particular embodiments may provide an interface that enables client system 430, social-networking system 460, or third-party system 470 to manage, retrieve, modify, add, or delete information stored in data store 464.
In particular embodiments, social-networking system 460 may store one or more social graphs in one or more data stores 464. In particular embodiments, the social graph may include a plurality of nodes, which may include a plurality of user nodes (each corresponding to a particular user) or a plurality of concept nodes (each corresponding to a particular concept), and a plurality of edges connecting the nodes. Social-networking system 460 may provide users of an online social network with the ability to communicate and interact with other users. In particular embodiments, a user may join an online social network via social networking system 460 and then add an affiliation (e.g., a relationship) to a plurality of other users in social networking system 460 that they want to be affiliated with. Herein, the term "friend" may refer to any other user of social-networking system 460 with whom the user forms an association (connection), association, or relationship via social-networking system 460.
In particular embodiments, social-networking system 460 may provide users with the ability to take actions on various types of items or objects supported by social-networking system 460. By way of example and not by way of limitation, items and objects may include groups or social networks to which a user of social-networking system 460 may belong, events or calendar entries that may be of interest to the user, computer-based applications that may be used by the user, transactions that allow the user to purchase or sell goods via a service, interactions with advertisements that the user may perform, or other suitable items or objects. The user may interact with anything that can be represented in the social networking system 460 or by a system external to the third-party system 470, the third-party system 470 being separate from the social networking system 460 and coupled to the social networking system 460 via the network 410.
In particular embodiments, social-networking system 460 may be capable of linking various entities. By way of example and not limitation, social-networking system 460 may enable users to interact with each other and receive content from third-party systems 470 or other entities, or allow users to interact with these entities through an Application Programming Interface (API) or other communication channel.
In particular embodiments, third-party system 470 may include one or more types of servers, one or more data stores, one or more interfaces (including but not limited to APIs), one or more web services, one or more content sources, one or more networks, or any other suitable components (e.g., with which a server may communicate). The third-party system 470 may be operated by an entity different from the entity operating the social-networking system 460. However, in particular embodiments, social-networking system 460 and third-party system 470 may operate in conjunction with each other to provide social-networking services to users of social-networking system 460 or third-party system 470. In this sense, the social networking system 460 may provide a platform or backbone that other systems (e.g., third-party systems 470) may use to provide social networking services and functionality to users over the entire internet.
In particular embodiments, third-party system 470 may include a third-party content object provider. The third-party content object provider may include one or more sources of content objects that may be delivered to client system 430. By way of example and not limitation, content objects may include information about things or activities of interest to a user, such as movie show times, movie reviews, restaurant menus, product information and reviews, or other suitable information, for example. As another example and not by way of limitation, the content object may include an incentive content object (e.g., a coupon, discount coupon, gift coupon, or other suitable incentive object).
In particular embodiments, social-networking system 460 also includes user-generated content objects that may enhance user interaction with social-networking system 460. User-generated content may include any content that a user may add, upload, send, or "post" to social-networking system 460. By way of example and not by way of limitation, a user communicates a post from client system 430 to social-networking system 460. Posts may include data such as status updates or other textual data, location information, photos, videos, links, music, or other similar data or media. Content may also be added to social-networking system 460 by third parties through "communication channels" (e.g., news feeds or streams).
In particular embodiments, social-networking system 460 may include various servers, subsystems, programs, modules, logs, and data stores. In particular embodiments, social-networking system 460 may include one or more of the following: web servers, action recorders, API request servers, relevance and ranking engines, content object classifiers, notification controllers, action logs, third-party content object exposure logs, inference modules, authorization/privacy servers, search modules, ad-targeting modules, user interface modules, user profile storage, connected storage, third-party content storage, or location storage. Social-networking system 460 may also include suitable components, such as network interfaces, security mechanisms, load balancers, failover servers, management and network operations consoles, other suitable components, or any suitable combination thereof. In particular embodiments, social-networking system 460 may include one or more user-profile stores for storing user profiles. The user profile may include, for example, biographical information, demographic information, behavioral information, social information, or other types of descriptive information (e.g., work experience, educational history, hobbies or preferences, interests, affinities, or locations). The interest information may include interests associated with one or more categories. The categories may be general or specific. By way of example and not by way of limitation, if a user "likes" an article about a brand of shoes, the category may be the brand, or the general category of "shoes" or "clothing". The associative memory may be used to store information that is associative with the user. The relational information may indicate users who have similar or common work experiences, group memberships, hobbies, educational history, or are related or share common attributes in any manner. The relational information may also include user-defined relations between different users and the content (internal and external). web servers may be used to link social-networking system 460 to one or more client systems 430 or one or more third-party systems 470 via network 410. The web server may include a mail server or other messaging functionality for receiving and routing messages between social-networking system 460 and one or more client systems 430. The API request server may allow third-party systems 470 to access information from social-networking system 460 by calling one or more APIs. The action recorder may be used to receive communications from the web server regarding the user's actions on or off of social-networking system 460. In conjunction with the action log, a third-party content object log may be maintained regarding user exposures to third-party content objects. The notification controller may provide information about the content object to client system 430. The information may be pushed to client system 430 as a notification, or the information may be pulled from client system 430 in response to a request received from client system 430. Authorization servers may be used to enforce one or more privacy settings of users of social-networking system 460. The privacy settings of the user determine how particular information associated with the user may be shared. The authorization server may allow users to opt-in or opt-out of having their actions recorded by social-networking system 460 or shared with other systems (e.g., third-party system 470), for example, by setting appropriate privacy settings. The third-party content object store may be used to store content objects received from third parties (e.g., third-party system 470). The location store may be used to store location information received from a client system 430 associated with a user. The advertisement pricing module may combine social information, current time, location information, or other suitable information to provide relevant advertisements to the user in the form of notifications.
FIG. 5 illustrates an example social graph 500. In particular embodiments, social-networking system 460 may store one or more social graphs 500 in one or more data stores. In particular embodiments, the social graph 500 may include a plurality of nodes, which may include a plurality of user nodes 502 or a plurality of concept nodes 504, and a plurality of edges 506 connecting the nodes. For teaching purposes, the example social graph 500 shown in fig. 5 is shown in a two-dimensional visual map representation. In particular embodiments, social-networking system 460, client system 430, or third-party system 470 may access social graph 500 and related social graph information for suitable applications. The nodes and edges of the social graph 500 may be stored as data objects, for example, in a data store (e.g., a social graph database). Such data stores may include one or more searchable or queryable indexes of nodes or edges of the social graph 500.
In particular embodiments, user node 502 may correspond to a user of social-networking system 460. By way of example and not by way of limitation, a user may be an individual (human user), an entity (e.g., an enterprise, company, or third-party application), or a community (e.g., of individuals or entities) that interacts or communicates with social-networking system 460 or through social-networking system 460. In particular embodiments, when a user registers for an account with social-networking system 460, social-networking system 460 may create a user node 502 corresponding to the user and store user node 502 in one or more data stores. The users and user nodes 502 described herein may refer to registered users and user nodes 502 associated with registered users, where appropriate. Additionally or alternatively, users and user nodes 502 described herein may refer to users that are not registered with social-networking system 460, where appropriate. In particular embodiments, user nodes 502 may be associated with information provided by users or information collected by various systems, including social-networking system 460. By way of example and not by way of limitation, a user may provide his or her name, profile picture, contact information, date of birth, gender, marital status, family status, occupation, educational background, preferences, interests, or other demographic information. In particular embodiments, user node 502 may be associated with one or more data objects corresponding to information associated with a user. In particular embodiments, user node 502 may correspond to one or more web pages.
In particular embodiments, concept node 504 may correspond to a concept. By way of example and not by way of limitation, concepts may correspond to a location (e.g., a movie theater, restaurant, landmark, or city); a website (e.g., a website associated with social networking system 460 or a third-party website associated with a web application server); an entity (e.g., an individual, a business, a group, a sports team, or a celebrity); a resource (e.g., an audio file, a video file, a digital photograph, a text file, a structured document, or an application) that may be located within social-networking system 460 or on an external server (e.g., a web application server); real estate or intellectual property (e.g., sculptures, paintings, movies, games, songs, ideas, photographs, or written works); playing a game; moving; an idea or theory; an object in an augmented/virtual reality environment; another suitable concept; or two or more such concepts. Concept nodes 504 may be associated with information for concepts provided by users or information collected by various systems, including social-networking system 460. By way of example, and not by way of limitation, information for a concept may include a name or title; one or more images (e.g., of the cover of a book); location (e.g., address or geographic location); a website (which may be associated with a URL); contact information (e.g., a phone number or an email address); other suitable conceptual information; or any suitable combination of such information. In particular embodiments, concept node 504 may be associated with one or more data objects that correspond to information associated with concept node 504. In particular embodiments, concept node 504 may correspond to one or more web pages.
In particular embodiments, the nodes in the social graph 500 may represent or be represented by web pages (which may be referred to as "profile pages"). The profile page may be hosted by social-networking system 460 or accessible to social-networking system 660. The profile page may also be hosted on a third-party website associated with the third-party system 470. By way of example and not by way of limitation, a profile page corresponding to a particular external web page may be the particular external web page, and the profile page may correspond to the particular concept node 504. The profile page may be viewable by all or a selected subset of the other users. By way of example and not by way of limitation, user nodes 502 may have a corresponding user profile page in which a corresponding user may add content, make statements, or otherwise express himself or herself. As another example and not by way of limitation, concept nodes 504 may have respective concept profile pages in which one or more users may add content, make statements, or express themselves, particularly with respect to concepts corresponding to concept nodes 504.
In particular embodiments, concept node 504 may represent a third-party webpage or resource hosted by third-party system 470. The third party webpage or resource may include, among other elements, content representing an action or activity, selectable icons or other interactable objects (which may be implemented, for example, in JavaScript, AJAX, or PHP code). By way of example and not limitation, the third-party webpage may include selectable icons (e.g., "like," "check-in," "eat," "recommend"), or other suitable actions or activities. A user viewing the third-party webpage may perform an action by selecting one of the icons (e.g., "check-in"), causing client system 430 to send a message to social-networking system 460 indicating the user's action. In response to the message, social-networking system 460 may create an edge (edge) (e.g., a check-in type edge) between user node 502 corresponding to the user and concept node 504 corresponding to the third-party webpage or resource, and store edge 506 in one or more data stores.
In particular embodiments, a pair of nodes in the social graph 500 may be connected to each other by one or more edges 506. An edge 506 connecting a pair of nodes may represent a relationship between the pair of nodes. In particular embodiments, an edge 506 may include or represent one or more data objects or attributes corresponding to a relationship between a pair of nodes. By way of example and not by way of limitation, the first user may indicate that the second user is a "friend" of the first user. In response to the indication, social-networking system 460 may send a "friend request" to the second user. If the second user confirms the "friend request," the social-networking system 460 may create an edge 506 in the social graph 500 that connects the user node 502 of the first user to the user node 502 of the second user and store the edge 506 as social-graph information in one or more data stores 464. In the example of FIG. 5, the social graph 500 includes edges 506 indicating a friendship between user nodes 502 of user "A" and user "B", and edges indicating a friendship between user nodes 502 of user "C" and user "B". Although this disclosure describes or illustrates a particular edge 506 having a particular attribute connecting a particular user node 502, this disclosure contemplates any suitable edge 506 having any suitable attribute connecting user nodes 502. By way of example and not limitation, the edge 506 may represent a friendship, family relationship, business or employment relationship, fan relationship (including, e.g., like), follower relationship, visitor relationship (including, e.g., access, view, check-in, share-in, etc.), subscriber relationship, superior/subordinate relationship, reciprocal relationship, non-reciprocal relationship, another suitable type of relationship, or two or more such relationships. Further, while this disclosure generally describes nodes as being connected, this disclosure also describes users or concepts as being connected. Herein, references to connected users or concepts may refer to nodes corresponding to those users or concepts connected by one or more edges 506 in the social graph 500, where appropriate.
In particular embodiments, an edge 506 between the user node 502 and the concept node 504 may represent a particular action or activity performed by a user associated with the user node 502 towards a concept associated with the concept node 504. By way of example and not by way of limitation, as shown in FIG. 5, a user may "like," "attend," "play," "listen," "cook," "work on," or "watch" concepts, each of which may correspond to an edge type or subtype. The concept profile page corresponding to the concept node 504 may include, for example, a selectable "check-in" icon (e.g., a clickable "check-in" icon) or a selectable "add to favorites" icon. Similarly, after the user clicks on these icons, social-networking system 460 may create a "favorites" edge or a "check-in" edge in response to the user action corresponding to the respective action. As another example and not by way of limitation, a user (user "C") may listen to a particular song ("imagining") using a particular application (sports (SPOTIFY), which is an online music application). In this case, the social-networking system 460 may create a "listen" edge 506 and a "use" edge (as shown in FIG. 5) between the user node 502 corresponding to the user and the concept node 504 corresponding to the song and the application to indicate that the user listened to the song and used the application. In addition, the social networking system 460 may create a "play" edge 506 (shown in FIG. 5) between the concept nodes 504 corresponding to the songs and applications to indicate that a particular song was played by a particular application. In this case, the "play" edge 506 corresponds to an action performed by an external application (soundtrack) on an external audio file (song "fantasy"). Although this disclosure describes a particular edge 506 with particular attributes connecting the user node 502 and the concept node 504, this disclosure contemplates any suitable edge 506 with any suitable attributes connecting the user node 502 and the concept node 504. Further, while this disclosure describes edges representing a single relationship between the user node 502 and the concept node 504, this disclosure contemplates edges representing one or more relationships between the user node 502 and the concept node 504. By way of example and not by way of limitation, the edge 506 may indicate that the user likes and uses a particular concept. Alternatively, another edge 506 may represent each type of relationship (or single relationships) between the user node 502 and the concept node 504 (between the user node 502 of user "E" and the concept node 504 of "Voltare," as shown in FIG. 5).
In particular embodiments, the social-networking system 460 may create an edge 506 between the user node 502 and the concept node 504 in the social graph 500. By way of example and not by way of limitation, a user viewing a concept profile page (e.g., by using a web browser or a dedicated application hosted by the user's client system 430) may indicate that he or she likes the concepts represented by the concept node 504 by clicking or selecting a "like" icon, which may cause the user's client system 430 to send a message to the social-networking system 460 indicating that the user likes the concepts associated with the concept profile page. In response to the message, the social networking system 460 may create an edge 506 between the user node 502 and the concept node 504 associated with the user, as shown by the "like" edge 506 between the user and the concept node 504. In particular embodiments, social-networking system 460 may store edges 506 in one or more data stores. In particular embodiments, the edge 506 may be automatically formed by the social-networking system 460 in response to a particular user action. By way of example and not by way of limitation, if a first user uploads a picture, watches a movie, or listens to a song, an edge 506 may be formed between the user node 502 corresponding to the first user and the concept nodes 504 corresponding to those concepts. Although this disclosure describes forming particular edges 506 in a particular manner, this disclosure contemplates forming any suitable edges 506 in any suitable manner.
In particular embodiments, the advertisement may be text (which may be HTML-linked), one or more images (which may be HTML-linked), one or more videos, audio, other suitable digital object files, suitable combinations of these, or any other suitable advertisement in any suitable digital format presented on one or more web pages, in one or more emails, or in conjunction with search results requested by the user. Additionally or alternatively, the advertisement may be one or more sponsored stories (e.g., news feeds or ticker items on the social networking system 460). Sponsored stories may be social actions of a user (e.g., "like" a page, "like" or comment on a page, reply to an event associated with a page (RSVP), vote on a question posted on a page, check in somewhere, use an application or play a game, or "like" or share a website), advertisers promoting social actions, for example, by causing a social action to be presented within a predetermined area of a user's profile page or other page, presented with additional information associated with the advertiser, promoted in order (bump up) or otherwise highlighted in the news feeds or instant trends of other users, or otherwise promoting a social action. Advertisers may pay to promote social actions. By way of example and not limitation, advertisements may be included among search results of a search results page in which sponsored content is promoted over non-sponsored content.
In particular embodiments, an advertisement may be requested for display in a social networking system web page, a third party web page, or other page. The advertisement may be displayed in a dedicated portion of the page, such as in a banner (banner) area at the top of the page, in a column at the side of the page, in a GUI of the page, in a pop-up window, in a drop-down menu, in an input field of the page, on top of the content of the page, or elsewhere with respect to the page. Additionally or alternatively, advertisements may be displayed within the application. The advertisements may be displayed within a dedicated page, requiring the user to interact with or view the advertisements before the user can access the page or utilize the application. The user may view the advertisement, for example, through a web browser.
The user may interact with the advertisement in any suitable manner. The user may click on or otherwise select an advertisement. By selecting the advertisement, the user may be directed to (or by a browser or other application being used by the user) a page associated with the advertisement. At the page associated with the advertisement, the user may take additional actions, such as purchasing a product or service associated with the advertisement, receiving information associated with the advertisement, or subscribing to a newsletter associated with the advertisement. An advertisement with audio or video may be played by selecting a component of the advertisement (e.g., a "play button"). Alternatively, by selecting an advertisement, social-networking system 460 may perform or modify a particular action of the user.
The advertisement may also include social networking system functionality with which the user may interact. By way of example and not by way of limitation, an advertisement may enable a user to "endorse" or otherwise approve the advertisement by selecting an icon or link associated with an endorsement. As another example and not by way of limitation, an advertisement may enable a user to search for content related to an advertiser (e.g., by executing a query). Similarly, a user may share an advertisement with another user (e.g., through social-networking system 460) or Reply (RSVP) to an event associated with the advertisement (e.g., through social-networking system 460). Additionally or alternatively, the advertisement may include social networking system content that is directed to the user. By way of example and not by way of limitation, an advertisement may display information about friends of a user within social-networking system 460 that have taken an action associated with the subject matter of the advertisement.
In particular embodiments, social-networking system 460 may determine a social-graph affinity (affinity) of various social-graph entities for each other (which may be referred to herein as "affinity"). The affinity may represent a strength of relationship or a level of interest between particular objects associated with the online social network (e.g., users, concepts, content, actions, advertisements, other objects associated with the online social network, or any suitable combination thereof). Affinity may also be determined with respect to objects associated with third party system 470 or other suitable systems. An overall affinity for the social graph entity may be established for each user, topic, or type of content. The overall affinity may change based on continuous monitoring of actions or relationships associated with the social graph entity. Although this disclosure describes determining a particular affinity in a particular manner, this disclosure contemplates determining any suitable affinity in any suitable manner.
In particular embodiments, social-networking system 460 may use affinity coefficients (which may be referred to herein as "coefficients") to measure or quantify social-graph affinity. The coefficient may represent or quantify a strength of a relationship between particular objects associated with the online social network. The coefficient may also represent a probability or function that measures the predicted probability that a user will perform a particular action based on the user's interest in that action. In this way, future actions of the user may be predicted based on previous actions of the user, where the coefficients may be calculated based at least in part on a history of actions of the user. The coefficients may be used to predict any number of actions within or outside of the online social network. By way of example, and not by way of limitation, such actions may include various types of communications, such as sending messages, posting content, or commenting on content; various types of viewing actions, such as accessing or viewing a profile page, media, or other suitable content; various types of coincidence information about two or more social graph entities, such as being in the same group, being tagged in the same photograph, checking in at the same location, or attending the same event; or other suitable action. Although the present disclosure describes measuring affinity in a particular manner, the present disclosure contemplates measuring affinity in any suitable manner.
In particular embodiments, social-networking system 460 may calculate the coefficients using various factors. These factors may include, for example, user actions, types of relationships between objects, location information, other suitable factors, or any combination thereof. In particular embodiments, different factors may be weighted differently when calculating the coefficients. The weight of each factor may be static, or the weight may change depending on, for example, the user, the type of relationship, the type of action, the location of the user, and so forth. The ratings of the factors may be combined according to the weights of the factors to determine an overall coefficient for the user. By way of example and not limitation, a particular user action may be assigned a rating and weight, while a relationship associated with the particular user action is assigned a rating and related weight (e.g., so the weights total 100%). To calculate the coefficient of a user for a particular object, the rating assigned to the user's action may comprise, for example, 60% of the overall coefficient, while the rating assigned to the relationship between the user and the object may comprise 40% of the overall coefficient. In particular embodiments, when determining weights for various factors used to calculate coefficients, social-networking system 460 may consider various variables, such as time since information was accessed, attenuation factors, frequency of access, relationship to information or to objects to which information was accessed, relationship to social-graph entities connected to objects, short-term or long-term averages of user actions, user feedback, other suitable variables, or any combination thereof. By way of example and not by way of limitation, the coefficients may include an attenuation factor that causes the intensity of the signal provided by a particular action to decay over time such that more recent actions are more relevant when calculating the coefficients. The ratings and weights may be continuously updated based on continuous tracking of the actions on which the coefficients are based. Any type of process or algorithm may be employed to assign, combine, average, etc. the rating for each factor and the weight assigned to those factors. In particular embodiments, social-networking system 460 may determine the coefficients using a machine-learning algorithm trained from historical actions and past user responses, or data obtained from the user by exposing the user to various options and measuring responses. Although this disclosure describes calculating coefficients in a particular manner, this disclosure contemplates calculating coefficients in any suitable manner.
In particular embodiments, social-networking system 460 may calculate the coefficients based on the user's actions. Social-networking system 460 may monitor such actions on an online social network, on third-party system 470, on other suitable systems, or any combination thereof. Any suitable type of user action may be tracked or monitored. Typical user actions include viewing profile pages, creating or publishing content, interacting with content, tagging in or in images, joining groups, listing and confirming the presence of an event, checking in at a location, agreeing to a particular page, creating a page, and performing other tasks that facilitate social actions. In particular embodiments, social-networking system 460 may calculate the coefficients based on the user's actions on particular types of content. The content may be associated with an online social network, a third-party system 470, or another suitable system. Content may include users, profile pages, posts, news stories, headlines, instant messages, chat room conversations, emails, advertisements, pictures, videos, music, other suitable objects, or any combination thereof. Social-networking system 460 may analyze the actions of the user to determine whether one or more of the actions indicate an affinity for the topic, content, other users, and/or the like. By way of example and not by way of limitation, if a user frequently posts content related to "coffee" or variants thereof, social-networking system 460 may determine that the user has a high coefficient relative to the concept "coffee". Certain actions or types of actions may be assigned a higher weight and/or rating than other actions, which may affect the overall calculated coefficients. By way of example and not by way of limitation, if a first user sends an email to a second user, the weight or rating of the action may be higher than if the first user merely viewed the user profile page of the second user.
In particular embodiments, social-networking system 460 may calculate the coefficients based on the type of relationship between particular objects. Referring to the social graph 500, when calculating the coefficients, the social-networking system 460 may analyze the number and/or types of edges 506 connecting the particular user node 502 and the concept node 504. By way of example and not by way of limitation, user nodes 502 connected by spouse-type edges (indicating that two users are married) may be assigned a higher coefficient than user nodes 502 connected by friend-type edges. In other words, based on the weights assigned to the actions and the relationships of the particular user, it may be determined that the overall affinity for content about the user's spouse is higher than the overall affinity for content about the user's friends. In particular embodiments, a relationship a user has with another object may affect the weight and/or rating of the user's actions with respect to computing the coefficients of the object. By way of example and not by way of limitation, if the user is tagged in a first photo, but only likes a second photo, social-networking system 460 may determine that the user has a higher coefficient relative to the first photo than the second photo because having a tagged-type relationship with content may be assigned a higher weight and/or rating than having a liked-type relationship with content. In particular embodiments, social-networking system 460 may calculate the coefficient for the first user based on the relationship that one or more second users have with a particular object. In other words, the associations and coefficients that other users have with the object may affect the coefficient of the first user for the object. By way of example and not by way of limitation, if a first user is connected to or has a high coefficient for one or more second users, and those second users are connected to or have a high coefficient for a particular object, social-networking system 460 may determine that the first user should also have a relatively high coefficient for the particular object. In particular embodiments, the coefficients may be based on a degree of separation between particular objects. A lower coefficient may represent a reduced likelihood that the first user will share interest in content objects of users indirectly connected to the first user in the social graph 500. By way of example and not by way of limitation, social-graph entities that are closer in the social graph 500 (i.e., less degree of separation) may have a higher coefficient than entities that are further away in the social graph 500.
In particular embodiments, social-networking system 460 may calculate the coefficients based on the location information. Objects that are geographically closer to each other may be considered more relevant or interesting to each other than objects that are further away. In particular embodiments, the coefficient for a user for a particular object may be based on the proximity of the location of the object to the current location associated with the user (or the location of the user's client system 430). The first user may be more interested in other users or concepts that are closer to the first user. By way of example and not by way of limitation, if a user is one mile from an airport and two miles from a gas station, social-networking system 460 may determine that the user has a higher coefficient for the airport than the gas station based on the proximity of the airport to the user.
In particular embodiments, social-networking system 460 may perform particular actions with respect to the user based on the coefficient information. The coefficients may be used to predict whether a user will perform an action based on the user's interest in a particular action. The coefficients may be used when generating or presenting any type of object to a user, such as an advertisement, search results, news story, media, message, notification, or other suitable object. Coefficients may also be used to rank and order the objects, where appropriate. In this manner, social-networking system 460 may provide information related to the interests and current environment of the user, increasing the likelihood that they will find such information of interest. In particular embodiments, social-networking system 460 may generate content based on the coefficient information. The content objects may be provided or selected based on user-specific coefficients. By way of example and not by way of limitation, the coefficients may be used to generate media for a user, where the user may be presented with media having a high overall coefficient for the user relative to the media object. As another example and not by way of limitation, the coefficients may be used to generate advertisements for users, where the users may be presented with advertisements that have a high overall coefficient for the users relative to the advertisement objects. In particular embodiments, social-networking system 460 may generate search results based on the coefficient information. Search results for a particular user may be scored or ranked based on coefficients associated with the search results for the querying user. By way of example and not by way of limitation, search results corresponding to objects with higher coefficients may be ranked higher on a search results page than results corresponding to objects with lower coefficients.
In particular embodiments, social-networking system 460 may calculate coefficients in response to a coefficient request from a particular system or process. Any process may request the calculated coefficients for the user in order to predict the likely actions (or likely the subject matter thereof) the user may take in a given situation. The request may also include a set of weights used by various factors for computing the coefficients. The request may come from a process running on the online social network, from a third-party system 470 (e.g., via an API or other communication channel), or from another suitable system. In response to the request, social-networking system 460 may calculate the coefficients (or access the coefficient information if it has been previously calculated and stored). In particular embodiments, social-networking system 460 may measure affinity with respect to a particular process. Different processes (both internal and external to the online social network) may request coefficients for a particular object or set of objects. Social-networking system 460 may provide a measure of affinity that is related to a particular process that requested the measure of affinity. In this manner, each process receives a metric for affinity that is tailored to the different contexts in which the process will use the metric for affinity.
In conjunction with social graph affinity and affinity coefficients, particular embodiments may utilize one or more systems, components, elements, functions, methods, operations, or steps disclosed in U.S. patent application 11/503093, filed on 11 2006, 8, 2010, 12, 22, 2010, 12/977027, 12/978265, filed on 23, 2010, 12, and 13/632869, filed on 1, 2012, 10, each of which is incorporated by reference.
FIG. 6 illustrates an example computer system 600. In particular embodiments, one or more computer systems 600 perform one or more steps of one or more methods described or illustrated herein. In particular embodiments, one or more computer systems 600 provide the functionality described or illustrated herein. In particular embodiments, software running on one or more computer systems 600 performs one or more steps of one or more methods described or illustrated herein or provides functions described or illustrated herein. Particular embodiments include one or more portions of one or more computer systems 600. Herein, reference to a computer system may include a computing device, and vice versa, where appropriate. Further, references to a computer system may include one or more computer systems, where appropriate.
This disclosure contemplates any suitable number of computer systems 600. The present disclosure contemplates computer system 600 taking any suitable physical form. By way of example, and not limitation, computer system 600 may be an embedded computer system, a system on a chip (SOC), a single board computer System (SBC) (e.g., a Computer On Module (COM) or a System On Module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a computer system mesh, a mobile phone, a Personal Digital Assistant (PDA), a server, a tablet computer system, an augmented/virtual reality device, or a combination of two or more of these systems. Where appropriate, computer system 600 may include one or more computer systems 600; is monolithic or distributed; spanning a plurality of locations; spanning multiple machines; spanning multiple data centers; or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 600 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. By way of example, and not limitation, one or more computer systems 600 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems 600 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
In a particular embodiment, the computer system 600 includes a processor 602, a memory 604, a storage device 606, an input/output (I/O) interface 608, a communication interface 610, and a bus 612. Although this disclosure describes and illustrates a particular computer system with a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.
In a particular embodiment, the processor 602 includes hardware for executing instructions (e.g., those making up a computer program). By way of example, and not limitation, to execute instructions, processor 602 may retrieve (or retrieve) instructions from an internal register, an internal cache, memory 604, or storage 606; decode them and execute them; and then write the one or more results to an internal register, internal cache, memory 604, or storage 606. In particular embodiments, processor 602 may include one or more internal caches for data, instructions, or addresses. The present disclosure contemplates processor 602 including any suitable number of any suitable internal caches, where appropriate. By way of example, and not limitation, processor 602 may include one or more instruction caches, one or more data caches, and one or more Translation Lookaside Buffers (TLBs). The instructions in the instruction cache may be a copy of the instructions in memory 604 or storage 606, and the instruction cache may accelerate retrieval of those instructions by processor 602. The data in the data cache may be: a copy of the data in memory 604 or storage 606 to cause instructions executed at processor 602 to operate; the results of previous instructions executed at processor 602 for access by subsequent instructions executed at processor 602 or for writing to memory 604 or storage 606; or other suitable data. The data cache may speed up read or write operations by the processor 602. The TLB may accelerate virtual address translations for processor 602. In particular embodiments, processor 602 may include one or more internal registers for data, instructions, or addresses. The present disclosure contemplates processor 602 including any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor 602 may include one or more Arithmetic Logic Units (ALUs); is a multi-core processor; or include one or more processors 602. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
In a particular embodiment, the memory 604 includes main memory for storing instructions for the processor 602 to execute or data for the processor 602 to operate on. By way of example, and not limitation, computer system 600 may load instructions from storage 606 or another source (e.g., another computer system 600) to memory 604. The processor 602 may then load the instructions from the memory 604 into an internal register or internal cache. To execute instructions, processor 602 may retrieve instructions from an internal register or internal cache and decode them. During or after execution of the instructions, processor 602 may write one or more results (which may be intermediate results or final results) to an internal register or internal cache. Processor 602 may then write one or more of these results to memory 604. In a particular embodiment, the processor 602 executes only instructions in one or more internal registers or internal caches or in the memory 604 (and not elsewhere in the storage 606) and operates only on data in one or more internal registers or internal caches or in the memory 604 (and not the storage 606 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple processor 602 to memory 604. The bus 612 may include one or more memory buses, as described below. In particular embodiments, one or more Memory Management Units (MMUs) reside between processor 602 and memory 604 and facilitate accesses to memory 604 requested by processor 602. In a particular embodiment, the memory 604 includes Random Access Memory (RAM). The RAM may be volatile memory, where appropriate. The RAM may be dynamic RAM (dram) or static RAM (sram), where appropriate. Further, the RAM may be single-port RAM or multi-port RAM, where appropriate. The present disclosure contemplates any suitable RAM. The memory 604 may include one or more memories 604, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.
In a particular embodiment, the storage 606 includes mass storage for data or instructions. By way of example, and not limitation, storage 606 may include a Hard Disk Drive (HDD), a floppy disk drive, flash memory, an optical disk, a magneto-optical disk, magnetic tape, or a Universal Serial Bus (USB) drive, or a combination of two or more of these. Storage 606 may include removable or non-removable (or fixed) media, where appropriate. Storage 606 may be internal or external to computer system 600, where appropriate. In a particular embodiment, the storage 606 is non-volatile solid-state memory. In a particular embodiment, the storage 606 includes Read Only Memory (ROM). Where appropriate, the ROM may be mask-programmed ROM, programmable ROM (prom), erasable prom (eprom), electrically erasable prom (eeprom), electrically variable ROM (earom), or flash memory, or a combination of two or more of these. The present disclosure contemplates mass storage 606 in any suitable physical form. Storage 606 may include one or more storage control units that facilitate communication between processor 602 and storage 606, where appropriate. Storage 606 may include one or more storage 606, where appropriate. Although this disclosure describes and illustrates a particular storage device, this disclosure contemplates any suitable storage device.
In particular embodiments, I/O interface 608 includes hardware, software, or both that provide one or more interfaces for communication between computer system 600 and one or more I/O devices. Computer system 600 may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication between a person and computer system 600. By way of example, and not limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet computer, touch screen, trackball, video camera, another suitable I/O device, or a combination of two or more of these. The I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces 608 for them. I/O interface 608 may include one or more device or software drivers enabling processor 602 to drive one or more of these I/O devices, where appropriate. I/O interfaces 608 may include one or more I/O interfaces 608, where appropriate. Although this disclosure describes and illustrates particular I/O interfaces, this disclosure contemplates any suitable I/O interfaces.
In particular embodiments, communication interface 610 includes hardware, software, or both that provide one or more interfaces for communication (e.g., packet-based communication) between computer system 600 and one or more other computer systems 600 or one or more networks. By way of example, and not limitation, communication interface 610 may include a Network Interface Controller (NIC) or network adapter for communicating with an ethernet or other wire-based network, or a wireless NIC (wnic) or wireless adapter for communicating with a wireless network (e.g., a WI-FI network). The present disclosure contemplates any suitable network and any suitable communication interface 610 therefor. By way of example, and not by way of limitation, computer system 600 may communicate with an ad hoc network, a Personal Area Network (PAN), a Local Area Network (LAN), a Wide Area Network (WAN), a Metropolitan Area Network (MAN), or one or more portions of the internet, or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. By way of example, computer system 600 may communicate with a Wireless PAN (WPAN) (e.g., a Bluetooth WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (e.g., a Global System for Mobile communications (GSM) network), or other suitable wireless network, or a combination of two or more of these. Computer system 600 may include any suitable communication interface 610 for any of these networks, where appropriate. Communication interface 610 may include one or more communication interfaces 610, where appropriate. Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.
In particular embodiments, bus 612 includes hardware, software, or both coupling components of computer system 600 to each other. By way of example, and not limitation, the bus 612 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Extended Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a Hyper Transport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an infiniband interconnect, a Low Pin Count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a Serial Advanced Technology Attachment (SATA) bus, a video electronics standards association local (VLB) bus, or another suitable bus, or a combination of two or more of these. Bus 612 may include one or more buses 612, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.
Herein, where appropriate, the one or more computer-readable non-transitory storage media may include one or more semiconductor-based or other Integrated Circuits (ICs) (e.g., Field Programmable Gate Arrays (FPGAs) or application specific ICs (asics)), Hard Disk Drives (HDDs), hybrid hard disk drives (HHDs), optical disks, Optical Disk Drives (ODDs), magneto-optical disks, magneto-optical disk drives, floppy disks, Floppy Disk Drives (FDDs), magnetic tape, Solid State Drives (SSDs), RAM drives, SECURE DIGITAL (SECURE DIGITAL) cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these. Computer-readable non-transitory storage media may be volatile, nonvolatile, or a combination of volatile and nonvolatile, where appropriate.
As used herein, the term "or" is inclusive and not exclusive, unless expressly indicated otherwise or indicated otherwise by context. Thus, herein, "a or B" means "A, B or both" unless explicitly indicated otherwise or indicated otherwise by context. Further, "and" are both conjunctive and disjunctive unless expressly indicated otherwise or indicated otherwise by context. Thus, herein, "a and B" means "a and B, either jointly or individually," unless expressly indicated otherwise or indicated otherwise by context.
The scope of the present disclosure includes all changes, substitutions, variations, alterations, and modifications to the example embodiments described or illustrated herein that a person having ordinary skill in the art would comprehend. The scope of the present disclosure is not limited to the example embodiments described or illustrated herein. Moreover, although the present disclosure describes and illustrates respective embodiments herein as including particular components, elements, features, functions, operations, or steps, any of these embodiments may include any combination or permutation of any of the components, elements, features, functions, operations, or steps described or illustrated anywhere herein that a person having ordinary skill in the art would understand. Furthermore, reference in the appended claims to an apparatus or system or a component of an apparatus or system that is suitable for, arranged to, capable of, configured to, implemented, operable to, or operative to perform a particular function includes the apparatus, system, component, whether or not it or that particular function is activated, turned on, or unlocked, provided that the apparatus, system, or component is so adapted, arranged, enabled, configured, implemented, operable, or operative. Moreover, although this disclosure describes or illustrates particular embodiments as providing particular advantages, particular embodiments may provide some, all, or none of these advantages.

Claims (35)

1. A method, comprising:
receiving, by a computing system associated with a social network, a first request to publish a live video, the first request received from a third-party computing system with respect to the social network, the first request including a first network address associated with the third-party computing system;
receiving, by the computing system, a second request for content from a first user device associated with a first user; and
in response to the second request, sending, by the computing system, display instructions, the first network address associated with the third-party computing system, a second network address from which the live video is available, and a third network address from which an interface application is available to the first user device;
wherein the display instructions are configured to cause the first user equipment to:
configuring a video player application to display the live video obtained using the second network address;
obtaining the interface application using the third network address;
configuring the interface application for display on at least a portion of the live video; and
configuring the interface application to communicate with the third party computing system using the first network address.
2. The method of claim 1, further comprising:
receiving, by the computing system, a deep link from the third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
sending, by the computing system, the deep link to the first user device in response to the second request;
wherein the display instructions are further configured to cause the first user device to receive an input activating the deep link and launch the application associated with the deep link installed on the first user device in response to the input.
3. The method of claim 2, wherein the instructions contained in the deep link are associated with content in the live video.
4. The method of claim 3, wherein the first and second light sources are selected from the group consisting of,
wherein the content in the live video has a game application installed on a second user device being played in a gaming session;
wherein the deep link is configured to cause a gaming application installed on the first user device to be launched;
wherein the action initiated by the instruction in the deep link causes a gaming application installed on the first user device to interact with a gaming application installed on the second user device through the gaming session.
5. The method of claim 1, wherein the live video has content posted by a second user of the social network through an application associated with the third-party computing system, wherein the application is executing on a second user device associated with the second user;
wherein the method further comprises:
in response to issuing the first request for the live video, generating, by the computing system, a live video object in a social graph, the live video object being associated with a user object representing the second user in the social graph.
6. The method of claim 5, wherein the first user and the second user are represented in the social graph within a threshold degree of separation.
7. The method of claim 1, further comprising:
presenting, by the computing system, the live video on the first user device in a news feed associated with the social network, wherein the live video is associated with an activation element;
wherein the display instruction is executed upon user activation of the activation element.
8. The method of claim 1, wherein the interface application is configured to:
receiving input from the first user;
sending data corresponding to the input to the third party computing system; and
processing instructions from the third party computing system.
9. The method of claim 8, wherein the first and second light sources are selected from the group consisting of,
wherein the live video has content posted by a second user of the social network through an application associated with the third-party computing system, wherein the application is executing on a second user device associated with the second user;
wherein the data corresponding to the input from the first user is configured to cause the third party computing system to cause the application on the second user device to display information associated with the input from the first user.
10. The method of claim 1, wherein the interface application is configured to:
sending a reaction or comment of the first user; and
receiving and displaying responses or comments from other users viewing the live video on their respective user devices.
11. One or more computer-readable non-transitory storage media embodying software that is operable when executed to cause a computing system associated with a social network to:
receiving a first request to publish a live video, the first request received from a third-party computing system with respect to the social network, the first request including a first network address associated with the third-party computing system;
receiving a second request for content from a first user device associated with the first user; and
in response to the second request, sending display instructions, the first network address associated with the third-party computing system, a second network address from which the live video is available, and a third network address from which an interface application is available to the first user device;
wherein the display instructions are configured to cause the first user equipment to:
configuring a video player application to display the live video obtained using the second network address;
obtaining the interface application using the third network address;
configuring the interface application for display on at least a portion of the live video; and
configuring the interface application to communicate with the third party computing system using the first network address.
12. The media of claim 11, wherein the software when executed is further operable to:
receiving a deep link from the third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
in response to the second request, sending the deep link to the first user device;
wherein the display instructions are further configured to cause the first user device to receive an input activating the deep link and launch the application associated with the deep link installed on the first user device in response to the input.
13. The media of claim 12, wherein the instructions contained in the deep link are associated with content in the live video.
14. The medium of claim 13, wherein the first and second optical elements are selected from the group consisting of,
wherein the content in the live video has a game application installed on a second user device being played in a gaming session;
wherein the deep link is configured to cause a gaming application installed on the first user device to be launched;
wherein the action initiated by the instruction in the deep link causes a gaming application installed on the first user device to interact with a gaming application installed on the second user device through the gaming session.
15. The media of claim 11, wherein the interface application is configured to:
receiving input from the first user;
sending data corresponding to the input to the third party computing system; and
processing instructions from the third party computing system.
16. A computing system associated with a social network, comprising:
one or more processors; and
one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions that when executed by one or more of the processors are operable to cause the system to:
receiving a first request to publish a live video, the first request received from a third-party computing system with respect to the social network, the first request including a first network address associated with the third-party computing system;
receiving a second request for content from a first user device associated with the first user; and
in response to the second request, sending display instructions, the first network address associated with the third-party computing system, a second network address from which the live video is available, and a third network address from which an interface application is available to the first user device;
wherein the display instructions are configured to cause the first user equipment to:
configuring a video player application to display the live video obtained using the second network address;
obtaining the interface application using the third network address;
configuring the interface application for display on at least a portion of the live video; and
configuring the interface application to communicate with the third party computing system using the first network address.
17. The system of claim 16, wherein the processor, when executing the instructions, is further operable to:
receiving a deep link from the third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
in response to the second request, sending the deep link to the first user device;
wherein the display instructions are further configured to cause the first user device to receive an input activating the deep link and launch the application associated with the deep link installed on the first user device in response to the input.
18. The system of claim 17, wherein the instructions contained in the deep link are associated with content in the live video.
19. The system of claim 18, wherein the first and second components are selected from the group consisting of,
wherein the content in the live video has a game application installed on a second user device being played in a gaming session;
wherein the deep link is configured to cause a gaming application installed on the first user device to be launched;
wherein the action initiated by the instruction in the deep link causes a gaming application installed on the first user device to interact with a gaming application installed on the second user device through the gaming session.
20. The system of claim 16, wherein the interface application is configured to:
receiving input from the first user;
sending data corresponding to the input to the third party computing system; and
processing instructions from the third party computing system.
21. A method, comprising:
receiving, by a computing system associated with a social network, a first request to publish a live video, the first request received from a third-party computing system with respect to the social network, the first request including a first network address associated with the third-party computing system;
receiving, by the computing system, a second request for content from a first user device associated with a first user; and
in response to the second request, sending, by the computing system, display instructions, the first network address associated with the third-party computing system, a second network address from which the live video is available, and a third network address from which an interface application is available to the first user device;
wherein the display instructions are configured to cause the first user equipment to:
configuring a video player application to display the live video obtained using the second network address;
obtaining the interface application using the third network address;
configuring the interface application for display on at least a portion of the live video; and
configuring the interface application to communicate with the third party computing system using the first network address.
22. The method of claim 21, further comprising:
receiving, by the computing system, a deep link from the third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
sending, by the computing system, the deep link to the first user device in response to the second request;
wherein the display instructions are further configured to cause the first user device to receive an input activating the deep link and launch the application associated with the deep link installed on the first user device in response to the input.
23. The method of claim 22, wherein the instructions contained in the deep link are associated with content in the live video;
optionally, wherein the content in the live video has a gaming application installed on a second user device being played in a gaming session;
wherein the deep link is configured to cause a gaming application installed on the first user device to be launched;
wherein the action initiated by the instruction in the deep link causes a gaming application installed on the first user device to interact with a gaming application installed on the second user device through the gaming session.
24. The method of any of claims 21 to 23, wherein the live video has content posted by a second user of the social network through an application associated with the third-party computing system, wherein the application is executing on a second user device associated with the second user;
wherein the method further comprises:
generating, by the computing system, a live video object in a social graph associated with a user object representing the second user in the social graph in response to issuing the first request for the live video;
optionally, wherein the first user and the second user are represented in the social graph within a threshold degree of separation.
25. The method of any of claims 21 to 24, further comprising:
presenting, by the computing system, the live video on the first user device in a news feed associated with the social network, wherein the live video is associated with an activation element;
wherein the display instruction is executed upon user activation of the activation element.
26. The method of any of claims 21 to 25, wherein the interface application is configured to:
receiving input from the first user;
sending data corresponding to the input to the third party computing system; and
processing instructions from the third party computing system;
optionally, wherein the live video has content posted by a second user of the social network through an application associated with the third-party computing system, wherein the application is executing on a second user device associated with the second user;
wherein the data corresponding to the input from the first user is configured to cause the third party computing system to cause the application on the second user device to display information associated with the input from the first user.
27. The method of any of claims 21 to 26, wherein the interface application is configured to:
sending a reaction or comment of the first user; and
receiving and displaying responses or comments from other users viewing the live video on their respective user devices.
28. One or more computer-readable non-transitory storage media embodying software that is operable when executed to cause a computing system associated with a social network to:
receiving a first request to publish a live video, the first request received from a third-party computing system with respect to the social network, the first request including a first network address associated with the third-party computing system;
receiving a second request for content from a first user device associated with the first user; and
in response to the second request, sending display instructions, the first network address associated with the third-party computing system, a second network address from which the live video is available, and a third network address from which an interface application is available to the first user device;
wherein the display instructions are configured to cause the first user equipment to:
configuring a video player application to display the live video obtained using the second network address;
obtaining the interface application using the third network address;
configuring the interface application for display on at least a portion of the live video; and
configuring the interface application to communicate with the third party computing system using the first network address.
29. The media of claim 28, wherein the software when executed is further operable to:
receiving a deep link from the third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
in response to the second request, sending the deep link to the first user device;
wherein the display instructions are further configured to cause the first user device to receive an input activating the deep link and launch the application associated with the deep link installed on the first user device in response to the input.
30. The medium of claim 29, wherein the instructions contained in the deep link are associated with content in the live video;
optionally, wherein the content in the live video has a gaming application installed on a second user device being played in a gaming session;
wherein the deep link is configured to cause a gaming application installed on the first user device to be launched;
wherein the action initiated by the instruction in the deep link causes a gaming application installed on the first user device to interact with a gaming application installed on the second user device through the gaming session.
31. The media of any of claims 28 to 30, wherein the interface application is configured to:
receiving input from the first user;
sending data corresponding to the input to the third party computing system; and
processing instructions from the third party computing system.
32. A computing system associated with a social network, comprising:
one or more processors; and
one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions that when executed by one or more of the processors are operable to cause the system to:
receiving a first request to publish a live video, the first request received from a third-party computing system with respect to the social network, the first request including a first network address associated with the third-party computing system;
receiving a second request for content from a first user device associated with the first user; and
in response to the second request, sending display instructions, the first network address associated with the third-party computing system, a second network address from which the live video is available, and a third network address from which an interface application is available to the first user device;
wherein the display instructions are configured to cause the first user equipment to:
configuring a video player application to display the live video obtained using the second network address;
obtaining the interface application using the third network address;
configuring the interface application for display on at least a portion of the live video; and
configuring the interface application to communicate with the third party computing system using the first network address.
33. The system of claim 32, wherein the processor, when executing the instructions, is further operable to:
receiving a deep link from the third-party computing system, the deep link configured to cause an application associated with the third-party computing system to be launched, the deep link including instructions for causing the application to initiate an action; and
in response to the second request, sending the deep link to the first user device;
wherein the display instructions are further configured to cause the first user device to receive an input activating the deep link and launch the application associated with the deep link installed on the first user device in response to the input.
34. The system of claim 33, wherein the instructions contained in the deep link are associated with content in the live video;
optionally, wherein the content in the live video is a gaming application installed on a second user device being played in a gaming session;
wherein the deep link is configured to cause a gaming application installed on the first user device to be launched;
wherein the action initiated by the instruction in the deep link causes a gaming application installed on the first user device to interact with a gaming application installed on the second user device through the gaming session.
35. The system of any of claims 32 to 34, wherein the interface application is configured to:
receiving input from the first user;
sending data corresponding to the input to the third party computing system; and
processing instructions from the third party computing system.
CN201780092965.XA 2017-06-12 2017-06-13 Interactive viewing interface for live video Pending CN110869908A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/620,712 US10057310B1 (en) 2017-06-12 2017-06-12 Interactive spectating interface for live videos
US15/620,712 2017-06-12
PCT/US2017/037181 WO2018231200A1 (en) 2017-06-12 2017-06-13 Interactive spectating interface for live videos

Publications (1)

Publication Number Publication Date
CN110869908A true CN110869908A (en) 2020-03-06

Family

ID=63143983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780092965.XA Pending CN110869908A (en) 2017-06-12 2017-06-13 Interactive viewing interface for live video

Country Status (5)

Country Link
US (2) US10057310B1 (en)
JP (1) JP6972178B2 (en)
KR (2) KR20200007978A (en)
CN (1) CN110869908A (en)
WO (1) WO2018231200A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111294660A (en) * 2020-03-12 2020-06-16 咪咕文化科技有限公司 Video clip positioning method, server, client and electronic equipment
CN112261425A (en) * 2020-10-20 2021-01-22 成都中科大旗软件股份有限公司 Video live broadcast and video recording playing method and system

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991108A (en) * 2016-09-27 2017-07-28 阿里巴巴集团控股有限公司 The method for pushing and device of a kind of information
CN108076128A (en) * 2016-12-28 2018-05-25 北京市商汤科技开发有限公司 User property extracting method, device and electronic equipment
CN108769814B (en) * 2018-06-01 2022-02-01 腾讯科技(深圳)有限公司 Video interaction method, device, terminal and readable storage medium
CN109857961A (en) * 2019-01-17 2019-06-07 北京奇艺世纪科技有限公司 A kind of communication means, apparatus and system
NO345656B1 (en) * 2019-04-21 2021-05-31 Holthe Ole Ivar Game Story System for Mobile Apps
CN113010243B (en) * 2021-01-04 2022-09-20 腾讯科技(深圳)有限公司 Information display method and device, terminal equipment and storage medium
KR102497838B1 (en) * 2021-07-29 2023-02-08 에스케이스토아 주식회사 Media streaming server, method of providing live video and live caht video as straming video and computer program for the method
CN115314729A (en) * 2022-08-04 2022-11-08 广州方硅信息技术有限公司 Group interaction live broadcast method and device, computer equipment and storage medium
EP4332972A1 (en) 2022-08-31 2024-03-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and operating method of storage device
EP4332969A1 (en) 2022-08-31 2024-03-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and operating method of storage device
JP7416904B1 (en) 2022-12-19 2024-01-17 楽天グループ株式会社 Information processing device, information processing method, and information processing program

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140067324A1 (en) * 2012-09-04 2014-03-06 Taiwan Semiconductor Manufacturing Company, Ltd. Qualitative fault detection and classification system for tool condition monitoring and associated methods
US20150298010A1 (en) * 2014-04-18 2015-10-22 Microsoft Corporation Broadcast initiation without interruption to active gameplay
CN105435453A (en) * 2015-12-22 2016-03-30 网易(杭州)网络有限公司 Bullet screen information processing method, device and system
US20170001111A1 (en) * 2015-06-30 2017-01-05 Amazon Technologies, Inc. Joining games from a spectating system
CN106507161A (en) * 2016-11-29 2017-03-15 腾讯科技(深圳)有限公司 Net cast method and live broadcast device
US20170134738A1 (en) * 2014-10-22 2017-05-11 Broadcom Corporation Video encoding for social media

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4765182B2 (en) * 2001-01-19 2011-09-07 ソニー株式会社 Interactive television communication method and interactive television communication client device
WO2013033259A2 (en) 2011-08-29 2013-03-07 Viewphone.Com Llc Systems and methods for a video sharing social network
US9345966B2 (en) 2012-03-13 2016-05-24 Sony Interactive Entertainment America Llc Sharing recorded gameplay to a social graph
US20150121437A1 (en) 2013-04-05 2015-04-30 Google Inc. Multi-perspective game broadcasting
US9448962B2 (en) * 2013-08-09 2016-09-20 Facebook, Inc. User experience/user interface based on interaction history
JP6122768B2 (en) 2013-11-19 2017-04-26 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus, display method, and computer program
US20170182426A1 (en) * 2014-04-01 2017-06-29 Interdigital Patent Holdings, Inc. Capture and delivery of online games spectators personalized commentaries to players
US20150306503A1 (en) 2014-04-25 2015-10-29 Crytek Gmbh Manipulating Operation of a Virtual Event in a Social Networking Service
US10528207B2 (en) * 2015-01-12 2020-01-07 Facebook, Inc. Content-based interactive elements on online social networks
US10484439B2 (en) 2015-06-30 2019-11-19 Amazon Technologies, Inc. Spectating data service for a spectating system
EP3316980A1 (en) * 2015-06-30 2018-05-09 Amazon Technologies Inc. Integrating games systems with a spectating system
US9311168B1 (en) * 2015-09-30 2016-04-12 Google Inc. Deeplinking to multiple native applications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140067324A1 (en) * 2012-09-04 2014-03-06 Taiwan Semiconductor Manufacturing Company, Ltd. Qualitative fault detection and classification system for tool condition monitoring and associated methods
US20150298010A1 (en) * 2014-04-18 2015-10-22 Microsoft Corporation Broadcast initiation without interruption to active gameplay
US20170134738A1 (en) * 2014-10-22 2017-05-11 Broadcom Corporation Video encoding for social media
US20170001111A1 (en) * 2015-06-30 2017-01-05 Amazon Technologies, Inc. Joining games from a spectating system
CN105435453A (en) * 2015-12-22 2016-03-30 网易(杭州)网络有限公司 Bullet screen information processing method, device and system
CN106507161A (en) * 2016-11-29 2017-03-15 腾讯科技(深圳)有限公司 Net cast method and live broadcast device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111294660A (en) * 2020-03-12 2020-06-16 咪咕文化科技有限公司 Video clip positioning method, server, client and electronic equipment
CN111294660B (en) * 2020-03-12 2021-11-16 咪咕文化科技有限公司 Video clip positioning method, server, client and electronic equipment
CN112261425A (en) * 2020-10-20 2021-01-22 成都中科大旗软件股份有限公司 Video live broadcast and video recording playing method and system
CN112261425B (en) * 2020-10-20 2022-07-12 成都中科大旗软件股份有限公司 Video live broadcast and video recording playing method and system

Also Published As

Publication number Publication date
KR20230004966A (en) 2023-01-06
US20180359295A1 (en) 2018-12-13
US10057310B1 (en) 2018-08-21
JP6972178B2 (en) 2021-11-24
US10498781B2 (en) 2019-12-03
JP2020524433A (en) 2020-08-13
KR20200007978A (en) 2020-01-22
WO2018231200A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
US10498781B2 (en) Interactive spectating interface for live videos
US10491410B2 (en) Multiplex live group communication
US10423984B2 (en) Sponsored stories in notifications
KR101829783B1 (en) Media plug-in for third-party system
KR101913793B1 (en) Platform show pages
US20140297739A1 (en) Media Previews Based on Social Context
KR101764749B1 (en) Media action buttons
KR20160046332A (en) Facepile integrated communications
KR102481258B1 (en) Deep linking with media-player devices
US10748189B2 (en) Providing content in a timeslot on a client computing device
US20200068030A1 (en) Customizing Media Content on Online Social Networks
EP3416390A1 (en) Interactive spectating interface for live videos
KR20160046860A (en) Content owner modules
US10187481B2 (en) Organizing application-reported information

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan platform Co.

Address before: California, USA

Applicant before: Facebook, Inc.

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200306