# Patent

## Title
Customizable content for distribution in social networks

## Abstract

Particular embodiments of the present invention are related to customizing content based on a social context associated with the viewer of the content. The social context may include information regarding the viewer's friends or contacts in a social network, and information regarding the interaction of such friends or contacts with the customizable content.

## Background
TECHNICAL FIELD
The present disclosure generally relates to customized advertising systems.
BACKGROUND
As the popularity of the Internet has increased, so has the prevalence of social networking websites and applications. Generally speaking, a social network refers to an application or service that facilitates the building online communities of people who share interests and activities, or who are interested in exploring the interests and activities of others. Many social network services are web-based and provide a variety of ways for users to interact, such as e-mail and instant messaging services. Some examples of social networking websites are delicious (http://delicious.com), facebook (http://www.facebook.com), Yahoo! Movies (http://movies.yahoo.com), Yahoo! Music (http://music.yahoo.com), Flickr (http://www.flickr.com), and others.
Advertisers often leverage social networks to market an increase awareness of their products and services. For example, advertisers often use “viral marketing” which generally refers to marketing techniques that use pre-existing social networks to produce increases in brand awareness or to achieve other marketing objectives (such as product sales) either through word-of-mouth or through self-replicating viral processes, analogous to the spread of pathological and computer viruses. Viral marketing promotions may take many forms, including video clips, interactive Flash games, advergames, ebooks, brandable software, images, or even text messages.
In addition, advertisers often deliver advertising using contextual advertising. Contextual advertising is marketing targeted to the specific individual visiting a website or a page within the website. A contextual advertising system may scan the text of a website for keywords, scan metadata related to the individual (e.g., geographical or other demographic data based on cookies or other metadata associated with the user) and return “personalized” advertisements to the webpage based on such keywords and/or metadata. For example, if the individual is viewing a website pertaining to sports and that website uses contextual advertising, the individual may see advertisements for sports-related companies, such as memorabilia dealers or ticket sellers. In addition, the advertisements may be for such companies physically located in the same geographical region as the individual. Contextual advertising may also be used by search engines to display advertisements on their search results pages based on the keywords in a user's search query.
SUMMARY
The present invention provides methods, apparatuses and systems directed to customizing content based on a social context associated with the viewer of the content. The social context may include information regarding the viewer's friends or contacts in a social network, and information regarding the interaction of such friends or contacts with the customizable content.



DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram that illustrates an example network environment in which particular implementations of the invention may operate.
FIG. 2 is a schematic diagram illustrating a client host environment to which implementations of the invention may have application.
FIG. 3 illustrates a flow chart of an example method that may be implemented to deliver social context-based content to a client node.
FIG. 4 illustrates a flow chart of an example method that may be implemented to create social context-based content.
FIG. 5 illustrates a flow chart of another example method that may be implemented to create and deliver social context-based content.
FIG. 6 is a schematic diagram illustrating an example computing system architecture that may be used to implement one or more of physical servers depicted in FIG. 1.
FIG. 7 is a schematic diagram illustrating an example network that may be used to provide context-based context.



DESCRIPTION OF EXAMPLE EMBODIMENT(S)
A. Overview
Particular embodiments of the present invention are related to targeting content (e.g., advertising and/or other content) to an individual based on a social context of the individual. The social context may include the individual's social network profile information (e.g., name, schools attended, favorite teams, favorite music, etc.), the individual's preferences, information regarding the individual's friends or contacts in one or more social networks, and such friends' or contacts' interaction with the particular content. For example, targeted content may be delivered to an individual based upon triggering events and/or other behavior of other users in the individual's social network. As another example, targeted content may be customized, augmented and/or annotated by one or more particular friends or contacts of an individual in a social network, and presented to the individual based on the customizations, augmentations, and/or annotations.
The present invention can be implemented in a variety of manners, as discussed in more detail below. Other implementations of the invention may be practiced without some or all of specific details set forth below. In some instances, well known structures and/or processes have not been described in detail so that the present invention is not unnecessarily obscured.
A. Example Network Environment
Particular implementations of the invention operate in a wide area network environment, such as the Internet, including multiple network addressable systems. Network cloud 60 generally represents one or more interconnected networks, over which the systems and hosts described herein can communicate. Network cloud 60 may include packet-based wide area networks (such as the Internet), private networks, wireless networks, satellite networks, cellular networks, paging networks, and the like.
As FIG. 1 illustrates, a particular implementation of the invention can operate in a network environment 10 comprising network application hosting site 20, such as an informational web site, social network site and the like. Although FIG. 1 illustrates only one network application hosting site, implementations of the invention may operate in network environments that include multiples of one or more of the individual systems and sites disclosed herein. Client nodes 82 are operably connected to the network environment via a network service provider or any other suitable means.
Network application hosting site 20 is a network addressable system that hosts a network application accessible to one or more users over a computer network. The network application may be an informational web site where users request and receive identified web pages and other content over the computer network. The network application may also be a search platform, an on-line forum or blogging application where users may submit or otherwise configure content for display to other users. The network application may also be a social network application allowing users to configure and maintain personal web pages. The network application may also be a content distribution application, such as Yahoo! Music Engine®, Apple® iTunes®, podcasting servers, that displays available content, and transmits content to users.
Network application hosting site 20, in one implementation, comprises one or more physical servers 22 and content data store 24. The one or more physical servers 22 are operably connected to computer network 60 via a router 26. The one or more physical servers 22 host functionality that provides a network application (e.g., a news content site, etc.) to a user. As discussed in connection with FIG. 2, in one implementation, the functionality hosted by the one or more physical servers 22 may include web or HTTP servers, ad serving systems, geo-targeting systems, and the like. Still further, some or all of the functionality described herein may be accessible using an HTTP interface or presented as a web service using SOAP or other suitable protocols.
Content data store 24 stores content as digital content data objects. A content data object or content object, in particular implementations, is an individual item of digital information typically stored or embodied in a data file or record. Content objects may take many forms, including: text (e.g., ASCII, SGML, HTML), images (e.g., jpeg, tif and gif), graphics (vector-based or bitmap), audio, video (e.g., mpeg), or other multimedia, and combinations thereof. Content object data may also include executable code objects (e.g., games executable within a browser window or frame), podcasts, etc. Structurally, content data store 24 connotes a large class of data storage and management systems. In particular implementations, content data store 24 may be implemented by any suitable physical system including components, such as database servers, mass storage media, media library systems, and the like.
Network application hosting site 20, in one implementation, provides web pages, such as front pages, that include an information package or module describing one or more attributes of a network addressable resource, such as a web page containing an article or product description, a downloadable or streaming media file, and the like. The web page may also include one or more ads, such as banner ads, text-based ads, sponsored videos, games, and the like. Generally, web pages and other resources include hypertext links or other controls that a user can activate to retrieve additional web pages or resources. A user “clicks” on the hyperlink with a computer input device to initiate a retrieval request to retrieve the information associated with the hyperlink or control.
As described in greater detail below, network application hosting site 20 may be configured to deliver, and one or more of client nodes 82 may be configured to receive, social context-based content. Social context-based content may refer to any content (e.g., audio, images, text, video, ringtones, coupons, interactive games, rich media content files, etc.) for which the appearance of the content to a user is based at least on the user's social context (e.g., information regarding the user's social network profile information, the user's preferences, the user's contacts in a social network, and/or information regarding the interaction of such contacts with content previously delivered to the contacts). Also as described in greater detail below, one or more of client nodes 82 may be configured to allow a user to enhance content delivered to the client node, and network application hosting site 20 may be configured to receive and/or store such enhancements to the content.
FIG. 2 illustrates the functional modules of a client host server environment 100 within network application hosting site 20 according to one particular implementation. As FIG. 2 illustrates, network application hosting site 20 may comprise one or more network clients 105 and one or more client hosts 110 operating in conjunction with one or more server hosts 120. The foregoing functional modules may be realized by hardware, executable modules stored on a computer readable medium, or a combination of both. The functional mcdules, for example, may be hosted on one or more physical servers 22 and/or one or more client nodes 82.
Network client 105 may be a web client hosted on client nodes 82, a client host 110 located on physical server 22, or a server host located on physical server 22. Client host 110 may be an executable web or HTTP server module that accepts HyperText Transport Protocol (HTTP) requests from network clients 105 acting as a web clients, such web browser client applications hosted on client nodes 82, and serving HTTP responses including contents, such as HyperText Markup Language (HTML) documents and linked objects (images, advertisements, etc.). Client host 110 may also be an executable module that accepts Simple Object Access Protocol (SOAP) requests from one or more client hosts 110 or one or more server hosts 120. In one implementation, client host 110 has the capability of delegating all or part of single or multiple requests from network client 105 to one or more server hosts 120. Client host 110, as discussed above, may operate to deliver a network application, such as an informational web page or an internet search service.
In a particular implementation, client host 110 may act as a server host 120 to another client host 110 and may function to further delegate requests to one or more server hosts 120 and/or one or more client hosts 110. Server hosts 120 host one or more server applications, such as an ad selection server, sponsored search server, content customization server, and the like.
B. Client Nodes & Example Protocol Environment
A client node is a computer or computing device including functionality for communicating over a computer network. A client node may be a desktop computer 82a, 82b, laptop computer 82c, 82d, as well as mobile devices 82e, 82f, such as cellular telephones and personal digital assistants. A client node may execute one or more client applications, such as a web browser, to access and view content over a computer network. In particular implementations, the client applications allow users to enter addresses of specific network resources to be retrieved. These addresses can be Uniform Resource Locators, or URLs. In addition, once a page or other resource has been retrieved, the client applications may provide access to other pages or records when the user “clicks” on hyperlinks to other resources. In some implementations, such hyperlinks are located within web pages and provide an automated way for the user to enter the URL of another page and to retrieve that page. The pages or resources can be data records including as content plain textual information, or more complex digitally encoded multimedia content, such as software programs or other code objects, graphics, images, audio signals, videos, and so forth.
The networked systems described herein can communicate over the network 60 using any suitable communications protocols. For example, client nodes 82a-d, as well as various servers of the systems described herein, may include Transport Control Protocol/Internet Protocol (TCP/IP) networking stacks to provide for datagram and transport functions. Of course, any other suitable network and transport layer protocols can be utilized.
In addition, hosts or end-systems described herein may use a variety of higher layer communications protocols, including client-server (or request-response) protocols, such as the HyperText Transfer Protocol (HTTP) and other communications protocols, such as HTTP-S, FTP, SNMP, TELNET, and a number of other protocols, may be used. In addition, a server in one interaction context may be a client in another interaction context. Still further, in particular implementations, the information transmitted between hosts may be formatted as HyperText Markup Language (HTML) documents. Other structured document languages or formats can be used, such as XML, and the like.
In some client-server protocols, such as the use of HTML over HTTP, a server generally transmits a response to a request from a client. The response may comprise one or more data objects. For example, the response may comprise a first data object, followed by subsequently transmitted data objects. In one implementation, for example, a client request may cause a server to respond with a first data object, such as an HTML page, which itself refers to other data objects. A client application, such as a browser, will request these additional data objects as it parses or otherwise processes the first data object.
Mobile client nodes 82e-f may use other communications protocols and data formats. For example, mobile client nodes 82e-f, in some implementations, may include mobile web browser. The use of other wireless or mobile device protocol suites are also possible, such as NTT DoCoMo's i-mode wireless network service protocol suites. In addition, the network environment may also include protocol translation gateways, proxies or other systems to allow mobile client nodes 84, for example, to access other network protocol environments. For example, a user may use a mobile client node 82e-f to capture an image and upload the image over the carrier network to a content site connected to the Internet.
C. Example Operation
In a social networking service (e.g., facebook, MySpace, LinkedIn, etc.), each user of the social network may create a network profile (e.g., username, password, and/or biographical information) via a client node 82. For example, a user may access the social network via an application program available at the client node 82 (e.g., a web browser) and/or via a website for the social network. Using client nodes 82, each user may also specify other users in the social network to which the user has a social tie. In this disclosure, the terms “social tie” and “tie” may be used to indicate a social relationship between two users in a social network (e.g., a “friend,” “buddy,” “connection,” “link,” etc.), while the term “contact” may be used to indicate any user for which a particular user has a social tie. In addition to a social tie existing based on a declared relationship between users, a social tie may also be derived by the social networking service on the basis of shared interests, biographical information, and/or other common aspects of the users. The social networking application, user biographical information, social ties, and contact information may be hosted at network application hosting site 20. Users using client nodes 82 may access the social networking application via network cloud 60. Once a user's contacts have been identified, a user may be able to access the social networking application website and/or application to view some or all of the profile information of his or her contacts, including, for example, actions performed by the contacts.
In addition, content may be delivered to users using network environment 10 or a similar network environment. For example, content in any suitable form (e.g., audio, images, text, video, ringtones, coupons, interactive games, rich media content files, etc.) may be hosted at network application hosting site 20 or a similar hosting site. Network application hosting site may communicate such content via network cloud 60 to a client node 82 and displayed to a user thereof.
FIG. 3 illustrates a flow chart of an example method 300 that may be implemented to deliver social context-based content to client node 82. Method 300 may be implemented by a social networking application and/or other application (e.g., a social networking application and/or other application executing on network application hosting site 20).
At step 302, network application hosting site 20 may deliver content (e.g., an advertisement for goods or services) to one or more client nodes 82. In some embodiments, the content may include rich media content (e.g., an Adobe® Flash file) allowing a user at a client node 82 receiving the content to interact with the content.
At step 304, one or more users of client nodes 82 may interact with the delivered content. For example, when delivered to a client node 82, the content may present an option to a user, such as a preferred method of viewing the content (e.g., as a movie, as audio, as an interactive game, etc.), and the user may interact by selecting the preferred viewing method. At step 306, the interactions of the users of the one or more client nodes 82 may be communicated to network application hosting site 20 and/or stored on a data store (e.g., content data store 24).
At step 308, network application hosting site 20 may determine a social context for a particular user. The particular user may or may not be one of the one or more users that received the content at step 302. The social context may comprise a collection of data that may include information regarding the user's social network profile information (e.g., name, schools attended, favorite teams, favorite music, etc.), the user's preferences, the user's contacts in a social network, and/or information regarding the interaction of such contacts with content previously delivered to the contacts of client nodes 82.
At step 310, network application hosting site 20 may deliver content (e.g., content identical or related to the content delivered at step 302) to a user wherein the delivered content is based at least on the determined social context (e.g., based on the particular user's social network profile information, the particular user's preferences, the particular user's social contacts and/or interaction of such contacts with the content).
In addition to delivery of content based on a user's social context, content may also be delivered based on other contextual parameters associated with a user. For example, content may be delivered based on a temporal or time-based context (e.g., certain portions of content may be displayed to a certain user before a certain time, and other portions may be displayed after the certain time). As another example, content may be delivered based on spatial or geographic context (e.g., displayed portions of content may be dependent upon the user's geographical location, as determined by global positioning system (GPS), location in cellular network, Internet Protocol (IP) address, Bluetooth, radio frequency identification (RFID), and/or the user's explicitly provided information). As a further example, portions of content may be delivered based on a behavioral context (e.g., a user's most recently or often-visited websites, a user's currently visited website, etc.).
As a specific example of method 300, the content delivered to one or more users of clients nodes 82 may include a rich media (e.g., Adobe® Flash file) advertisement along with an option to play an interactive game associated with the advertisement or to watch a video associated with the advertisement. Some users may interact by opting to play the interactive game. Accordingly, when the same advertisement is later delivered to another user whose contacts have chosen to play the interactive game, the advertisement may no longer query for a delivery method (e.g., the option of interactive game or video), but may instead automatically display the interactive game. Thus, the content displays the interactive game based on the later user's contacts and the contacts' earlier interaction with the content.
FIG. 4 illustrates a flow chart of an example method 400 that may be implemented to create social context-based content. Method 400 may be implemented by a social networking application and/or other application (e.g., a social networking application and/or other application executing on network application hosting site 20).
At step 402, network application hosting site 20 may deliver content (e.g., an advertisement for goods or services) to a client node 82. In some embodiments, the content may include rich media content (e.g., a Flash file) allowing a user at a client node 82 receiving the content to interact with the content.
At step 404, a user of the client node 82 to which the content was delivered may enhance the delivered content. “Enhancing” the delivered content may refer to any modification, change, addition, deletion, augmentation, annotation, interaction or any other suitable alteration of the content. For example, the user may add an annotation to the content (e.g., “I like this product,” “I think those who like the Beatles may also like this product,” “I am voting for this candidate because of the reasons in this ad.”). As another example, the user may tag the content to indicate which of the user's contacts the user feels may be interested in the content or the subject matter of the content. As a further example, the user may alter the content such that particular video and/or audio portions of the content are replaced with user-added content. As an additional example, a user's interaction with content (e.g., answering a question asked by the content) may also be considered an enhancement, as such interaction may modify metadata associated with the content.
At step 406, information regarding enhancements to the content (e.g., actual enhancements made and/or the identity of the user making such enhancements) may be communicated to network application hosting site 20 and/or stored on a data store (e.g, content data store 24).
FIG. 5 illustrates a flow chart of another example method 500 that may be implemented to deliver social context-based content to a user. Method 500 may be implemented by a social networking application and/or other application (e.g., a social networking application and/or other application executing on network application hosting site 20).
At step 502, network hosting site 20 may detect the presence of a user. The user's presence may be detected in any suitable manner. For example, the presence of the user may be detected by determining the user is logged into a client node 82 and/or a networked application executed thereon. As another example, the presence of the user may be detected by determining that a second client node 82 associated with a user is proximate to another client node 82 (e.g., an advertising kiosk, etc.) to which content may be displayed. The user's proximity may be determined in any suitable manner, including, e.g., GPS, the user's location in cellular network, the user's IP address, and/or the presence of a client node 82 associated with the user within the communication range of Bluetooth, RFID, and/or another short-range communications standard of the second client node 82, for example.
At step 504, network hosting site 20 may determine a social context associated with the user. The determined social context may include information regarding the user's social network profile information (e.g., name, schools attended, favorite teams, favorite music, etc.), a user's preferences, the identity of the user's social contacts, identity of content that may have been enhanced by the user's social contacts (e.g., in a method or manner similar to that of method 400, above), and/or the nature of enhancements by the user's social contacts (e.g., whether enhancements to content made in a method or manner similar to that of 400 include a tag or other reference regarding the user).
At step 506, network hosting site 20 may, based at least on the determined social context, display at least a portion of content (e.g., original content, enhanced content, metadata associated with content) to a user via a client node 82 associated with the user and/or a second client node 82 in proximity to the user's associated client node 82. In addition to delivery of a portion of content based on a user's social context, portions of content may also be delivered based on other contextual parameters associated with a user. For example, content may be delivered based on a temporal or time-based context (e.g., certain portions of content may be displayed to a certain user before a certain time, and other portions may be displayed after the certain time). As another example, content may be delivered based on spatial or geographic context (e.g., displayed portions of content may be dependent upon the user's geographical location, as determined by global positioning system (GPS), location in cellular network, Internet Protocol (IP) address, Bluetooth, radio frequency identification (RFID), and/or the user's explicitly provided information). As a further example, portions of content may be delivered based on a behavioral context (e.g., a user's most recently or often-visited websites, a user's currently visited website, etc.).
In order to illustrate the application of methods 400 and 500, numerous non-limiting examples are set forth below. Such examples are for clarity and exposition only, and shall not limit the applicability of the systems and methods disclosed herein to other examples and/or implementations.
Scenario 1: User A enhances content (e.g., adding a video to a rich media advertisement) and indicates the enhancement is intended to be viewed by User B. The enhanced content is stored on a network hosting site 20. User B comes within proximity to a particular client node 82 upon which the enhanced content may be displayed (e.g., an advertising kiosk including a monitor configured to display the content). After detecting User B's presence (e.g., by detecting that a client node 82 associated with User B is within the communication range of client node 82 associated with the kiosk), the enhanced content may be displayed at the particular client node 82 (e.g., the rich media advertisement displayed to User B may include User A's video).
Scenario 2: User A has User B, User C, and User D as contacts in a social network. Each of Users B, C, and D may download an item of content (e.g., a rich media advertisement) and each make their own enhancements to it (e.g., remix the advertisement, answer a question associated with the advertisement). User A may then be prompted at a client node 82 with an alert and/or other message indicating that other users in User A's social network have enhanced the content and may display at a least a portion of the content and/or the enhancements thereto made by Users B, C, and D. Alternatively, User A may receive via a client node 82 an alert and/or other message that other users closely matching User A's social context, temporal context, spatial context, or behavioral context have enhanced and/or otherwise interacted with the content (e.g., the interactions of earlier users may modify metadata associated with the content, and such metadata regarding the interactions or other elements related to such metadata may be displayed to the user).
Scenario 3: User A approaches a client node 82 and the client node displays content based on User A's social context (e.g., the user's social network profile information, a user's preferences, preferences and profile information regarding the user's contacts, etc.). For example, the content displayed to User A may be customized based on social network profile settings of User A (e.g., a sports apparel advertisement may be customized to include apparel for User A's favorite team) or customized based on social network profile settings of another user in User A's social network. In certain embodiments, certain content (e.g., ringtones, rich media, etc.) may be automatically delivered to User A based on preferences, enhancements, or interactions of other users in User A's social network.
D. Example Computing System Architectures
While the foregoing systems and methods can be implemented by a wide variety of physical systems and in a wide variety of network environments, the client and server host systems described below provide example computing architectures for didactic, rather than limiting, purposes.
FIG. 6 illustrates an example computing system architecture, which may be used to implement a physical server. In one embodiment, hardware system 200 comprises a processor 202, a cache memory 204, and one or more software applications and drivers directed to the functions described herein. Additionally, hardware system 200 includes a high performance input/output (I/O) bus 206 and a standard I/O bus 208. A host bridge 210 couples processor 202 to high performance I/O bus 206, whereas I/O bus bridge 212 couples the two buses 206 and 208 to each other. A system memory 214 and a network/communication interface 216 couple to bus 206. Hardware system 200 may further include video memory (not shown) and a display device coupled to the video memory. Mass storage 218, and I/O ports 220 couple to bus 208. Hardware system 200 may optionally include a keyboard and pointing device, and a display device (not shown) coupled to bus 208. Collectively, these elements are intended to represent a broad category of computer hardware systems, including but not limited to general purpose computer systems based on the x86-compatible processors manufactured by Intel Corporation of Santa Clara, Calif., and the x86-compatible processors manufactured by Advanced Micro Devices (AMD), Inc., of Sunnyvale, Calif., as well as any other suitable processor.
The elements of hardware system 200 are described in greater detail below. In particular, network interface 216 provides communication between hardware system 200 and any of a wide range of networks, such as an Ethernet (e.g., IEEE 802.3) network, etc. Mass storage 218 provides permanent storage for the data and programming instructions to perform the above described functions implemented in the location server 22, whereas system memory 214 (e.g., DRAM) provides temporary storage for the data and programming instructions when executed by processor 202. I/O ports 220 are one or more serial and/or parallel communication ports that provide communication between additional peripheral devices, which may be coupled to hardware system 200.
Hardware system 200 may include a variety of system architectures; and various components of hardware system 200 may be rearranged. For example, cache 204 may be on-chip with processor 202. Alternatively, cache 204 and processor 202 may be packed together as a “processor module,” with processor 202 being referred to as the “processor core.” Furthermore, certain embodiments of the present invention may not require nor include all of the above components. For example, the peripheral devices shown coupled to standard I/O bus 208 may couple to high performance I/O bus 206. In addition, in some embodiments only a single bus may exist, with the components of hardware system 200 being coupled to the single bus. Furthermore, hardware system 200 may include additional components, such as additional processors, storage devices, or memories.
As discussed below, in one implementation, the operations of one or more of the physical servers described herein are implemented as a series of software routines run by hardware system 200. These software routines comprise a plurality or series of instructions to be executed by a processor in a hardware system, such as processor 202. Initially, the series of instructions may be stored on a storage device, such as mass storage 218. However, the series of instructions can be stored on any suitable storage medium, such as a diskette, CD-ROM, ROM, EEPROM, etc. Furthermore, the series of instructions need not be stored locally, and could be received from a remote storage device, such as a server on a network, via network/communication interface 216. The instructions are copied from the storage device, such as mass storage 218, into memory 214 and then accessed and executed by processor 202.
An operating system manages and controls the operation of hardware system 200, including the input and output of data to and from software applications (not shown). The operating system provides an interface between the software applications being executed on the system and the hardware components of the system. According to one embodiment of the present invention, the operating system may include a Windows®-based operating system, available from Microsoft Corporation of Redmond, Wash. However, the present invention may be used with other suitable operating systems, such as an Apple Macintosh-based Operating System, available from Apple Computer Inc. of Cupertino, Calif., a UNIX-based operating system, a LINUX-based operating system, and the like. Of course, other implementations are possible. For example, the server functionalities described herein may be implemented by a plurality of server blades communicating over a backplane.
Furthermore, the above-described elements and operations can be comprised of instructions that are stored on storage media. The instructions can be retrieved and executed by a processing system. Some examples of instructions are software, program code, and firmware. Some examples of storage media are memory devices, tape, disks, integrated circuits, servers, mass storage devices, disk arrays, and storage area networks (SANs). The instructions are operational when executed by the processing system to direct the processing system to operate in accord with the invention. The term “processing system” refers to a single processing device or a group of inter-operational processing devices. Some examples of processing devices are integrated circuits and logic circuitry. Those skilled in the art are familiar with instructions, computers, and storage media.
FIG. 7 is a schematic diagram illustrating an example system 600 that may be used to provide context-based content in accordance with the present disclosure. In certain embodiments of system 600, system 600 may be used to provide context-based content based on temporal, spatial, social, topical, and/or behavioral data for a plurality of users, devices and locations within system 600. As depicted in FIG. 7, a user 610 may access context-based content from network 602 via a client 614 associated with the user. In certain embodiments, network 602 may be a “W4 communications network” of W4 COMN, which may provide information related to the “Who, What, When and Where” of interactions within system 600.
FIG. 7 illustrates how the entities shown may be defined to a network, for example a W4 COMN. A “W4 Communications Network” or W4 COMN, provides information related to the “Who, What, When and Where” of interactions within the network. Network 602 may interface a collection of users, devices and processes and foster both synchronous and asynchronous communications between users and their associated clients and providing an instrumented network of sensors providing data recognition and collection in real-world environments about any subject, location, or user of network, or any combination thereof. For example, content may be delivered to user 610 based on a geographical area 620 in which user 610 is located or which is otherwise associated with user 610. Such content may also be based on entities present with geographical area 620, such as, for example, tourist attractions and other points of interest 624, auditoriums and other public venues 628, businesses of various types 632, parks and recreation areas 636, and persons 640. In addition, content delivered to a user 610 may be based on other entities known to network 602, including without limitation, persons within the user's social networks 650, other persons known to network 602, and third party data sources 670 which can include free and premium information services which may provide data about other entities and topics, including reviews, ratings, rankings, or other feedback by users, and/or content associated with locations, events, objects, and/or people. Using the methods and systems disclosed herein, network 602 may collect spatial, temporal, social, and/or topical data (including behavioral and interaction data) about such entities that may be used to enhance or otherwise affect content delivered to user 610.
The present invention has been explained with reference to specific embodiments. For example, while embodiments of the present invention have been described as operating in connection with HTML and HTTP, the present invention can be used in connection with any suitable protocol environment. Furthermore, implementations of the invention can be used in systems directed to serving geo-targeted content other than ads to users. Other embodiments will be evident to those of ordinary skill in the art. It is therefore not intended that the present invention be limited, except as indicated by the appended claims.

## Claims

1. A method comprising:
detecting, by a computing device, the presence of a first user of an online social network;
delivering, by a computing device, content to the first user, the content allowing enhancement by the first user;
receiving, by the computing device, one or more enhancements to the content by the first user;
detecting, by the computing device, the presence of a second user on the social network, the second user different than the first user, the detecting the presence of the second user comprising detecting that a first client node to which the content may be displayed is geographically proximate to a second client node associated with the second user;
determining, by the computing device, a social context of the second user, the social context comprising data associated with the second user with respect to the social network, the data associated with the second user with respect to the social network comprising data related to an interaction with the particular content by friends or contacts of the second user;
modifying, by the computing device, the content, the modifying based on the determined social context of the second user and the one or more enhancements to the content by the first user;
notifying, by the computing device, the second user that the content has been modified by the first user, the notifying comprising displaying at least a portion of the modified content; and
delivering, by the computing device, the modified content to the second user, the delivering comprising displaying the modified content to the first client node in response to the determination that the first client node is geographically proximate to the second client node.

2. The method of claim 1, wherein the content includes an interactive rich media file.

3. The method of claim 1, wherein the content includes an interactive advertisement.

4. The method of claim 1, wherein the social context includes at least one of:
information regarding contacts of the second user with respect to the social networks; and
information regarding enhancements of the content by contacts of the second user with respect to the social network.

5. The method of claim 1, wherein the determined social context indicates that the first user and the second user are contacts with respect to the social network, and the modified content delivered to the second user includes the one or more enhancements of the first user.

6. The method of claim 1, wherein detecting that the first client node is proximate to the second client node is based on at least one of:
the second client node's geographic location as determined by a global positioning system;
the second client node's geographic location in a cellular network;
the second client node's Internet protocol address; and
the second client node's presence within a communication range of a short-range communication standard associated with the first client node.

7. The method of claim 1, wherein the delivered modified content is based on at least one of a temporal context, a geographical context, and a behavioral context of at least one of the first user and the second user.

8. An apparatus, comprising:
one or more processors;
one or more network interfaces;
a memory for tangibly storing thereon program logic for execution by the processor, the program logic comprising:
detecting logic executed by the processor for detecting the presence of a first user of an online social network;
delivering logic executed by the processor for delivering content to the first user via the one or more network interfaces, the content allowing enhancement by the first user;
receiving logic executed by the processor for receiving via the one or more network interfaces one or more enhancements to the content by the first user;
detecting logic executed by the processor for detecting via the one or more network interfaces the presence of a second user on the social network, the second user different than the first user, the detecting the presence of the second user comprising detecting that a first client node to which the content may be displayed is geographically proximate to a second client node associated with the second user;
determining logic executed by the processor for determining a social context of the second user, the social context comprising data associated with the second user with respect to the social network, the data associated with the second user with respect to the social network comprising data related to an interaction with the particular content by friends or contacts of the second user;
modifying logic executed by the processor for modifying the content, the modifying based on the determined social context of the second user and the one or more enhancements to the content by the first user;
notifying logic executed by the processor for notifying the second user that the content has been modified by the first user, the notifying comprising displaying at least a portion of the modified content; and
delivering logic executed by the processor for delivering the modified content to the second user via the one or more network interfaces, the delivering comprising displaying the modified content to the first client node in response to the determination that the first client node is geographically proximate to the second client node.

9. The apparatus of claim 8, wherein the content includes an interactive rich media file.

10. The apparatus of claim 8, wherein the content includes an interactive advertisement.

11. The apparatus of claim 8, wherein the social context includes at least one of:
information regarding contacts of the second user with respect to the social networks; and
information regarding enhancements of the content by contacts of the second user with respect to the social network.

12. The apparatus of claim 8, wherein the determined social context indicates that the first user and the second user are contacts with respect to the social network, and the modified content delivered to the second user includes the one or more enhancements of the first user.

13. The apparatus of claim 8, wherein detecting that the first node is proximate to the second client node is based on at least one of:
the second client node's geographic location as determined by a global positioning system;
the second client node's geographic location in a cellular network;
the second client node's Internet protocol address; and
the second client node's presence within a communication range of a short-range communication standard associated with the first client node.

14. The apparatus of claim 8, wherein the delivered modified content is based on at least one of a temporal context, a geographical context, and a behavioral context of at least one of the first user and the second user.

15. A non-transitory computer readable storage medium comprising computer-executable instructions carried on the computer readable storage medium, the instructions readable by a processor, the instructions, when read and executed, for causing the processor to:
detect via the one or more network interfaces the presence of a first user of an online social network;
deliver content to the first user via the one or more network interfaces, the content allowing enhancement by the first user;
receive via the one or more network interfaces one or more enhancements to the content by the first user;
detect via the one or more network interfaces the presence of a second user on the social network, the second user different than the first user, the detecting the presence of the second user comprising detecting that a first client node to which the content may be displayed is geographically proximate to a second client node associated with the second user;
determine a social context of the second user, the social context comprising data associated with the second user with respect to the social network, the data associated with the second user with respect to the social network comprising data related to an interaction with the particular content by friends or contacts of the second user;
modify the content, the modifying based on the determined social context of the second user and the one or more enhancements to the content by the first user;
notify the second user that the content has been modified by the first user, the notifying comprising displaying at least a portion of the modified content; and
deliver the modified content to the second user via the one or more network interfaces, the delivering comprising displaying the modified content to the first client node in response to the determination that the first client node is geographically proximate to the second client node.

16. The non-transitory computer readable storage medium of claim 15 wherein the social context includes at least one of:
information regarding contacts of the second user with respect to the social networks; and
information regarding enhancements of the content by contacts of the second user with respect to the social network.

17. The non-transitory computer readable storage medium of claim 15, wherein the determined social context indicates that the first user and the second user are contacts with respect to the social network, and the modified content delivered to the second user includes the one or more enhancements of the first user.