HK1141129B - Point of presence distribution mechanism for digital content objects - Google Patents
Point of presence distribution mechanism for digital content objects Download PDFInfo
- Publication number
- HK1141129B HK1141129B HK10107532.8A HK10107532A HK1141129B HK 1141129 B HK1141129 B HK 1141129B HK 10107532 A HK10107532 A HK 10107532A HK 1141129 B HK1141129 B HK 1141129B
- Authority
- HK
- Hong Kong
- Prior art keywords
- content
- search
- distribution
- code
- computing device
- Prior art date
Links
Description
Technical Field
The present invention relates generally to the distribution of multimedia content and other digital content over a network.
Background
Interactive system-connected wide area networks (e.g., the internet) have steadily evolved into an active medium for the sharing and social interaction of digital media. In fact, through websites and uploads to various content hosting or aggregation systems and services (e.g., a web site server)Yahoo! Com, etc.) may be available on the internet and share the vast amount of digital media generated by end users, media companies, and professional media creators. End users are increasingly using or sharing media in a variety of online and interactive contexts. For example, an increasing number of end users create various types of websites, including blog pages, personalized social networking pages (e.g., Yahoo! 360, Facebook, or MySpace) that utilize digital media content (e.g., images, videos, and music). Furthermore, it is often found that digital media content is posted to online groups or forums, or other purposely established sites, such as for small businesses, clubs, and special interest groups.
These two dynamics are closely related in that online media available on the internet can often be reused or included in pages of websites, social networking sites, online forums, or other systems. For example, a user may create a blog about a topic of personal interest (e.g., a beagle dog). When posting on a blog (creating a short text item), the user may include a beagle image illustrating the main point or subject of the post (e.g., the beagle ear length). To find an image, a user may access an image search engine and find a suitable image. To add the image to the blog post, the user may download the image to a hard drive or other data repository, and then upload the image to the blog hosting site. Alternatively, if technically skilled, the user may add HTML code to the blog post that will display the image in the post, so that the image is loaded from its original location when the blog is viewed. Video and audio content may also be added to a blog or other network addressable resource, such as a private page, in a similar manner.
Drawings
FIG. 1 illustrates an example network environment in which a particular implementation may operate.
Fig. 2 illustrates an example method according to one possible implementation of the present invention.
FIG. 3 illustrates an example web page interface.
FIG. 4 illustrates an example web page interface including hypertext links configured in accordance with a particular implementation of the invention.
FIG. 5A illustrates an example web page interface including a distribution interface in a pop-up window (pop-up window).
Fig. 5B and 5C provide example methods for generating a content embedding code (contentbudding code) in response to activation of a distribution link.
Fig. 6A-6N illustrate example content embedding code and code segments.
Fig. 7A illustrates an example blog posting interface.
FIG. 7B illustrates an example user interface including embedded content and a benefit attachment (benefit attachment) link.
Fig. 8A-8E provide example methods for generating content embedding code according to particular implementations.
FIG. 9 illustrates an example method directed to processing a request for an embedded content object.
FIG. 10 illustrates an example web page including attribution information.
FIG. 11 illustrates an example web page including an advertisement.
12A-12C illustrate an example method directed to processing a request involving an advertisement link according to a particular implementation.
FIG. 13 is a diagram illustrating an example message flow involving advertising links, according to a particular implementation.
FIG. 14 is an example interface including search results.
FIG. 15 is a diagram of an example message flow involving a search link, according to a particular implementation.
16A-16C illustrate an example method for processing a request relating to searching for a link according to a particular implementation.
FIG. 17 is a schematic diagram illustrating an example computing system architecture that may be used to implement one or more of the physical servers.
FIG. 18 is a schematic diagram illustrating an example computing system architecture that may be used to implement one or more of the client systems.
Detailed description of the invention
A. Overview
Particular embodiments of the present invention relate to a point of presence (point of presence) distribution system for digital content objects. In one particular implementation, the present invention provides a viral content and advertisement distribution mechanism. In some embodiments, the invention also relates to a digital media benefit attachment mechanism for generating or attaching revenue rights and other benefits to one or more entities associated with media distributed over a computer network. Particular implementations may relate to content aggregation and distribution systems, advertising systems, and social media systems in a manner that facilitates publication and sharing of multimedia over a network. In one implementation, the present invention can be configured to include a viral component that facilitates distribution of a digital content object and one or more advertisements displayed in relation to the digital content object. In some implementations, the present invention may also provide for revenue allocations between two or more entities in a distribution chain of a given digital content object.
The invention can be implemented in various ways. In some implementations, one or more of the following events or processes may occur. In some implementations, the content owner may be directed to a network addressable system (e.g., a media aggregation site (e.g., Yahoo! (r)'s)Photo sharing system)) upload a digital content object (or a data locator specifying a digital content object, the locator indicating where the content object is hosted). The content owner may configure one or more tags and provide identification information of the content owner. The content owner may also configure one or more parameters for further distribution and/or distribution of benefits associated with the digital content object. The network addressable system stores these tags and related information in association with the uploaded content object. In particular implementations, the network addressable system may generate an object instance identifier and a corresponding data record that includes the above-identified information. The network addressable system may also generate content embedding code that includes a distribution code segment and provide the content embedding code to the user. The user may then use the content embedding code in relation to the digital content object, for example to embed the digital content object or otherwise make the digital content object available to other users over a network.
In some implementations, the content embedding code is source code (e.g., hypertext markup language (HTML) code) or other machine readable instructions that a user can insert into an underlying data object (e.g., an HTML page). The content embedding code may be inserted, for example, into an interface of an HTML editing application that creates or edits HTML pages that may be published to a web server. The HTML editing application may be a stand-alone application executing on the host computer or a web application hosted on a remote server (e.g., blog server, personal page, etc.). The content embedding code, when accessed and executed in relation to the underlying data object, causes the processor to retrieve or otherwise access the content and present one or more hyperlinks related to the content. In some implementations, the content embedding code can include hyperlinks that, when activated, are operable to generate revenue or other benefits for one or more entities associated with the distribution, hosting, or creation of the content. Particular implementations provide for different hyperlink types that can be used independently or in combination, such as attribution links, advertising links, search links, and content sharing links. In one implementation, revenue generated by activating one or more of these links (e.g., links to sponsored advertisements or content in search results) may be shared among one or more of the following entities: content owners, content uploaders, content embedding entities, web application hosting service providers, content hosting service providers, search system providers, advertising system providers, or others. In a particular implementation, one of the hyperlinks is a distribution hyperlink which, when activated, initiates the following workflow: content embedding code is generated and provided to subsequent users who have accessed the digital content object and wish to reuse or redistribute the digital content object. Various implementations are possible, as described below.
Particular implementations of the invention may be configured to implement various revenue models and benefit assignment schemes. Particular implementations of the present invention allow for revenue distribution and distribution schemes involving digital media distribution that exceed traditional compensation schemes in which content owners or providers are essentially compensated based on advertisements displayed in relation to the content. Particular implementations of the present invention provide a novel revenue model that allows a wide range of social media systems (e.g., content aggregation sites and social networking sites) to monetize one or more aspects of their operation in a manner that is not currently implemented. Particular implementations of the present invention provide revenue models and compensation mechanisms that provide content creators and rights-holders with increased incentives for posting content to social media distribution networks. Other implementations of the invention facilitate the use and redistribution of digital media content among multiple users.
By providing incentives and ancillary mechanisms (e.g., content embedding codes), the process of finding and using media content may be simplified, resulting in increased work output, greater authorized use of the content, and more revenue to one or more participating entities. The distribution mechanism described herein may be configured to provide various advantages and features. In certain implementations, the distribution mechanisms described herein provide a way to compensate for content hosting systems (e.g., media aggregation sites) when media is used on any of a wide range of other sites. Further, in some implementations, the distribution mechanisms described herein may also be configured to provide users with an incentive to embed content into their own underlying content. In some implementations, the distribution mechanisms described herein may also be configured to provide an incentive to upload content to a content owner. In some implementations, the distribution mechanism may provide an incentive to media companies and individuals to make otherwise tightly controlled content available in derived works such as social networking pages or blogs.
In the following description, specific details are set forth in order to provide a thorough understanding of particular implementations of the invention. Other implementations of the invention may be practiced without some or all of the specific details set forth below. In some instances, well known structures and/or processes have not been described in detail so as not to unnecessarily obscure the present invention.
A.1. Example network Environment
Embodiments of the present invention operate in a wide area network environment, such as the Internet, including a plurality of network-addressable systems. Network cloud 60 generally represents one or more interconnected networks through which the systems and hosts described herein may communicate. Network cloud 60 may include a packet-based wide area network (e.g., the internet), a private network, a wireless network, a satellite network, a cellular network, a paging network, and so forth.
As shown in FIG. 1, particular implementations of the invention may operate in a network environment that includes: a content hosting site 20, a content distribution system 30, a web application hosting site 40, an ad search system 50, an advertiser system 65, and a search system 70. Although FIG. 1 illustrates the foregoing systems as separate systems, the functionality represented by the various systems may be combined into other systems and/or operated by the same administrative domain. In addition, the functionality represented by each described system may be further separated. Furthermore, implementations of the invention may operate in a network environment that includes multiple ones or more of the individual systems and sites described herein. Further, other implementations may operate in a network environment omitting one or more of the systems described herein. The client nodes 82, 84 are operatively connected to the network environment via a network service provider or any other suitable means.
A.1.a content hosting site
The content hosting site 20 is a network addressable system that stores content uploaded by one or more users. In one implementation, the content hosting site 20 may be a media aggregation or sharing system, for examplePhoto sharing sites, video or audio distribution sites, and similar variants. In one implementation, the content hosting site 20 includes a content data store 24 and one or more physical servers 22. The one or more physical servers 22 are operatively connected to the computer network 60 via the router 26. The one or more physical servers 22 host functionality that allows users to upload and retrieve (retrieve) content. In one implementation, the functions hosted by the one or more physical servers may include web servers or HTTP servers, FTP servers, and the like.
The content data store 24 stores content as digital content data objects. In particular implementations, a content data object or content object is a single item of digital information typically stored or contained in a data file or record. The content object 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. The content object data may also include executable code objects (e.g., games executable within a browser window or frame), podcasts, and so forth. Structurally, the content data store 24 is intended to be a broad class of data storage and management systems. In particular implementations, content data store 24 may be implemented by any suitable physical system, such as a database server, mass storage media, media library system, or the like.
A.1.b content distribution system
In one particular implementation, the content distribution system 30 is a network addressable resource that includes functionality for the content distribution mechanisms described herein. In the illustrated implementation, the content distribution system 30 includes one or more physical servers 32 and one or more data stores 34. The physical servers 32 host functionality for the content distribution mechanisms described herein. For example, the data store 34 may store user account information corresponding to one or more of the entities described below, including user identifiers, passwords, addresses, preferences, financial account information, and pointers to uploaded content. In certain implementations, one or more of the physical servers 32 may include functionality to generate content embedding code that facilitates the following operations: the help content embedding entity embeds the available content into the underlying resource. One or more of the one or more physical servers 22 may also host functionality to support other processing and message flow, as described below.
Various implementations are possible, for example, although FIG. 1 illustrates the content hosting site 20 and the content distribution system 30 as separate systems, the functionality represented by these systems may be implemented as a combined or integrated system. Further, the content distribution system 30 may be configured to operate in conjunction with one or more content hosting sites 20 and to host the upload content itself.
A.1.c web application hosting site
The web application hosting site 40 is a network addressable system that hosts one or more web applications that users can access over a computer network. The web application may be an informational website that a user requests and receives identified web pages and other content over a computer network. The web application may also be an online forum or blog application where users may submit or otherwise configure content for display to other users. The web application may also be a social networking application that allows a user to configure and maintain a personal web page (webpage). The web application may also be a content distribution application that displays available content and sends the content to the user, such as Yahoo! MusicAnd a podcast server. As shown in fig. 1A, the web application hosting site 40 may include a data repository 44 and one or more physical servers 42.
A.1.d search system
The search system 70 is a network addressable resource that provides search results in response to queries sent from remote hosts. As described herein, a search term (searchterm) may be included in a search link created in conjunction with content embedding code. In particular implementations, the search system 70 provides one or more links to sponsored (sponsored) content in the search result list. In certain implementations, the search system 70 includes one or more physical servers 72, 73 and data repositories 74, 75. In some implementations, the search system 70 includes at least two types of servers, both having HTTP, HTTPS, SSL, FTP, and/or other functionality that allows remote access over a network. The first server type may be the account management server 72. The account management server 72 operates in connection with an account management data store 74. The account management data store 74 contains advertiser account information. A general purpose server or a dedicated client application running on the client node 82 may be used to access advertiser account information stored in the account management data store 74. Advertisers may engage in competitive bidding processes with other advertisers through the account management server 72 and accounts residing on the account management data store 74. An advertiser may bid on any number of search terms, for example, that are relevant to the advertiser's website.
The second server type may be a search engine server 73. The search engine server 73 executes one or more search engine programs that permit a user to enter a query to search for network resources of interest after navigating to a site on a search engine web server URL or other web server capable of submitting the query to the search engine server 73. In particular implementations, the search engine server 73 may generate a search result list that includes, at least in part, relevant entries obtained from and formatted by results of the bidding processing performed in relation to the one or more physical servers 22. The search engine server 73 may generate a list of hypertext links to documents or other resources that contain information related to the search terms entered by the user. The search engine server 73 sends the list to the network user in the form of a web page that is displayed on a browser or other client application running on the client nodes 82, 84.
In particular implementations, the search engine server 73 operates in relation to a search repository 74, the search data repository 74 including search listing (listing) records used to generate search results in response to user queries. In addition, a search engine server 73 may also be connected to the account management server 72. In some implementations, one or more of the search listings correspond to search term-bid pairings and contain information used to effectuate (product) online competitive bidding processing. In some implementations, each search listing includes a search term, a web site description, a URL, a bid amount, and a title. The search term may include one or more keywords, which may be common words in English (or any other language). Each keyword in turn comprises a string of characters. Search terms are the subject of competitive online bidding processing. Advertisers select search terms to bid on that are relevant to the content of the advertiser's website. Ideally, an advertiser may select search terms that target terms that are likely to be entered by a searcher seeking information on the advertiser's website, although less common search terms may also be selected to ensure comprehensive coverage of relevant search terms to bid on. The website description may be a short textual description of the advertiser's website and may be displayed as part of the advertiser's entry in the search results list. The search listing may also contain a title of the web site, which may be displayed as a hyperlinked title (heading) for the advertiser's entry in the search result list. The URL contains the uniform resource locator address of the advertiser's website. When a user clicks on a hyperlink provided in an advertiser's search result list entry, the URL is provided to the browser program. The browser program, in turn, accesses the advertiser's website through the redirection mechanism discussed herein. The URL may also be displayed as part of the advertiser's entry in the search result list.
The bid amount may be an amount bid by an advertiser for a listing. Each time the user performs a search for the corresponding search term and the search result list hyperlink is used to bring the searcher to the advertiser's web site, the amount is deducted from the advertiser's prepaid account or recorded for a billed advertiser account.
When performing a search using search terms bid on by advertisers, higher bids generally result in more favorable placement on a search result list page generated by the search engine server 73. In particular implementations, the amount bid by the advertiser includes an amount to be deducted from an account of the advertiser each time the advertiser's website is accessed via a hyperlink on a search result list page. The user "clicks" on the hyperlink with a computer input device to initiate a retrieval request to retrieve information associated with the advertiser's hyperlink. In some implementations, each access or "click" on a search result list hyperlink is redirected to search engine web server 73 to associate the "click" with the advertiser's account identifier. In one particular implementation, the redirect action accesses account identification information encoded into the search result link prior to accessing the advertiser's URL. The account identification information is recorded in the advertiser's account as a search request event along with information from the search request. The information obtained by this mechanism matches the account identifier with the URL and allows account debit records to be maintained. In addition to Pay Per Click (Pay-Per-Click) schemes, other monetization schemes are possible, such as Pay Per presentation (Pay-Per-Impression).
In particular implementations, the search result list also includes non-paid or non-sponsored listings that are not placed as a result of advertiser bids and are generated by an algorithmic search engine. In one implementation, non-paid search result listings are behind or placed near paid or sponsored advertiser listings on the search results page.
In one particular implementation, when a user accesses a search query page provided by the search engine server 73 and executes a search request, the search engine server 73 generates and displays a search result list in which normalized entries in the search term fields of the various search listings in the search result list match the normalized search term query entered by the remote searcher. The normalization of search terms used in queries and search listings removes common irregularities (e.g., capitalization and pluralization) of search terms entered by search and web site promoters to generate relevant results. However, alternatives for determining a match between the search term fields of the search listing and the search term query entered by the remote searcher are within the scope of the present invention. For example, string matching algorithms known in the art may be employed to generate the following matches: a keyword of a search listing search term has the same root but is not exactly the same as the search term query (e.g., computingvs. Alternatively, the search engine server 24 may use a thesaurus database of synonyms so that matches may be generated for search terms having synonyms. Localized methods may also be employed to refine certain searches. For example, a search for "bakery" or "grocery" may be limited to those advertisers within a selected city, zip code, or telephone area code. This information may be obtained by cross-referencing an advertiser account database stored in the account management data store 74.
The search result list entry may also show a rank value of the advertiser's search listing. The rank value is an ordinal value (preferably a number) generated by the search engine server 73 and assigned to the search listing. In some implementations, rank values are assigned through a process of establishing an association between bid amount, rank, and search terms of a search listing. The process collects search listings that match a particular search term, ranks the search listings in order from the highest bid amount to the lowest bid amount, and assigns rank values to the search listings in order. The highest bid amount receives the highest rank value, the next highest bid amount receives the next highest rank value, and so on until the lowest bid amount that receives the lowest rank value. In some implementations, only the top N search listings are provided in the first page of search results returned to the user.
In some implementations, the bidding process implemented by the search system 70 may not distinguish between search queries submitted directly by users and search queries generated as a result of activating advertising links contained in the content embedding code. In other implementations, the search system 70 may support separate bidding processing for keywords contained in search queries generated as a result of activating advertising links in the content embedding code.
A.1.e advertisement search system
The ad search system 50 is a network addressable system operable to select ads in response to requests from a remote system and return ad content or URLs for ad content. The advertising system may be a central system accessible by one or more systems through a wide area network or a local system accessible by a single domain. In one implementation, the advertisement search system 50 includes one or more physical servers 52 and an advertisement data store 54. In one implementation, the advertisement data store 54 stores sponsored content information containing advertising creative content, or uniform resource locators or identifiers for content or other resources hosted by one or more advertiser systems 65. In one particular implementation, the content is stored in association with a keyword index. Further, the keyword index may include a bid amount or other suitable weighting value that may bias advertisement selection. In one particular implementation, the advertisement search system 50 may select one or more matching advertisements in the advertisement data store 54 based on one or more keywords.
In one particular implementation, the ad search system 50 allows users to upload ad creative content (including display or banner ads or other multimedia), apply one or more policies or business rules selected for ads, specify one or more attributes of a targeted end user, and receive reports of ad utilization (e.g., display, click-through, and other interaction metrics).
A.1.f advertiser system
The advertiser system 65 is a network addressable system, such as a website, corresponding to an advertiser or hosting system that hosts advertisements or other content on behalf of one or more advertisers. In one particular implementation, the advertiser system 65 may include one or more physical servers 66 and a data store 67 that stores data related to the advertiser system 65. For teaching purposes, the advertiser system 65 may be run by a business company to provide information about its products and services.
Further, advertiser system 65 may provide various information when accessed by a client application, for example, after activation of a link. For example, advertiser system 65 may provide a home page or other page near the top of a hypertext document layer. In other implementations, the advertiser system 65 may return ad creative content, such as video, audio, or still images. In another implementation, advertiser system 65 may present an order for an ordered product or service. The advertiser system 65 may also provide coupons, such as discount coupons, that the user may print and use.
A.1.g client node
A client node is a computer or computing device that includes functionality for communicating over a computer network. The client nodes may be a desktop computer 82, a laptop computer, and a mobile device 84 (e.g., a cellular phone, a personal digital assistant). The client nodes may execute one or more client applications (e.g., web browsers) to access and view content over a computer network. In particular implementations, the client application allows the user to enter an address of a particular network resource to be retrieved. These addresses may be uniform resource locators or URLs. Further, after a page or other resource has been retrieved, if the user "clicks" on hyperlinks to other resources, the client application may provide access to other pages or records. In some implementations, such hyperlinks are located within web pages and provide an automated way for a user to enter the URL of another page and retrieve that page. These pages or resources may be data records that include plain text information or more complex digitally encoded multimedia content (e.g., software programs or other code objects, graphics, images, audio signals, video, etc.) as content.
A.2 example protocol Environment
The networked systems described herein may communicate over network 60 using any suitable communication protocol. For example, the client node 82, as well as the various servers of the system described herein, may include a transmission control protocol/internet protocol (TCP/IP) networking stack to provide datagram and transport functionality. Of course, any other suitable network and transport layer protocols may be utilized.
Further, the host or final system described herein may use various higher-level communication protocols, including client-server (or request-response) protocols (e.g., hypertext transfer protocol, HTTP), and may use other communication protocols (e.g., HTTP-S, FTP, SNMP, TELNET), and many others. Further, a server in one interaction context may be a client in another interaction context. Further, in particular embodiments, information communicated between hosts may be formatted as hypertext markup language (HTML) documents. Other structured document languages or formats may be used. Such as XML, etc.
In some client-server protocols, such as using HTML over HTTP, the server typically sends a response to a request from the client. The response may include one or more data objects. For example, the response may include a first data object followed by a subsequently transmitted data object. In one particular implementation, for example, the client request may cause the server to respond with a first data object, such as an HTML page, that itself references other data objects. The client application (e.g., browser) will request these additional data objects when parsing or otherwise processing the first data object.
Other communication protocols and data formats may be used by the mobile client node 84. For example, in some implementations, the mobile client node 84 may include Wireless Application Protocol (WAP) functionality and a WAP browser. It is also possible to use other wireless or mobile device protocol suites, such as the i-mode wireless protocol network service protocol suite of NTTDoCoMo. In addition, the network environment may also include, for example, a protocol translation gateway, proxy, or other system that allows the mobile client node 84 to access other network protocol environments. For example, a user may use the mobile client node 84 to capture an image and upload the image over a carrier network to a content site connected to the Internet.
Further, in some implementations described below, the use of redirect messages is described. In particular implementations, redirection generally involves sending a message from a server to a client application that, for example, causes the client application to access another server or resource without interference or action by an end user. Redirection may be accomplished in a number of ways. For example, in connection with HTTP, a refresh metatag may be used to implement a redirect message, e.g.
<html><head>
<metahttp-equiv=″refresh″content=″0;url=http://www.yahoo.com/″>.
In addition, the redirect message may be implemented using an HTTP refresh header.
HTTP/1.1200ok
Refresh:0;url=http://www.yahoo.com/
Content-type:text/html
Content-length:78
Then < ahref ═ http:// www.yahoo.com/"> link.
Redirection may also be accomplished by sending an HTML page that includes JavaScript code operable to accomplish redirection. For other protocol environments, other suitable redirection methods may be used.
A.2 example computing System architecture
The client and server host systems described herein may be implemented in a variety of computing systems and architectures. The following describes an example computing architecture for purposes of teaching and not limitation.
A.2.a example Server System architecture
FIG. 17 illustrates an example computing system architecture that may be used to implement a physical server. In one embodiment. Hardware system 200 includes a processor 202, a cache 204, and one or more software applications and drivers for the functions described herein. In addition, hardware system 200 includes a high performance input/output (I/O) bus 206 and a standard I/O bus 208. Host bridge 210 couples processor 202 to high performance I/O bus 206, while I/O bridge 212 couples the two buses 206 and 208 to each other. A system memory 214 and a network/communication interface 216 are coupled to bus 206. Hardware system 200 may also include a 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. In general, these elements are intended to represent a broad class of computer hardware systems including, but not limited to, general-purpose computer systems based on the x 86-compatible processor manufactured by Intel corporation of Santa Clara, Calif., and the x 86-compatible processor manufactured by Advanced Micro Devices (AMD) corporation of Santa Claville, Calif., as well as any other suitable processor.
The elements of hardware system 200 are described in 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., IEEE802.3) network, and the like. The mass storage 218 provides permanent storage for data and programming instructions to perform the above-described functions implemented in the local server 22, while the system memory 214 (e.g., DRAM) provides temporary storage for data and programming instructions when they are executed by the 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 the various components of hardware system 200 may be rearranged. For example, cache 204 may be on-chip with processor 202. Alternatively, the cache 204 and the processor 202 may be packaged together as a "processing module" and the processor 202 is referred to as a "processor core". Moreover, certain embodiments of the present invention may not require or include all of the above components. For example, a peripheral device shown coupled to a standard I/O bus 208 may be coupled to the high performance I/O bus 206. Furthermore, in some embodiments, there may only be a single bus to which the components of hardware system 200 are coupled. Furthermore, hardware system 200 may include additional components, such as additional processors, storage devices, or memories.
As described below, in one implementation, the operations of one or more 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 (e.g., processor 202) in a hardware system. The series of instructions may initially be stored in a storage device (e.g., mass storage 218). However, the series of instructions may be stored on any suitable storage medium (e.g., magnetic disk, CD-ROM, EEPROM, etc.). Further, the series of instructions need not be stored locally, and may be received from a remote storage device (e.g., a server on a network) via network/communication interface 216. These instructions are copied from the storage (e.g., mass storage 218) into memory 214 and then accessed and executed by processor 202.
The 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 software applications executing on the system and the hardware components of the system. According to one embodiment of the invention, the operating system is available from Microsoft corporation (Microsoft corporation of Redmond, Washington)95/98/NT/XP operating system. However, the present invention may be used with other suitable operating systems, such as the apple Macintosh operating system, UNIX operating system, LINUX operating system, available from apple Inc. (apple computer, Inc. of Coopertino, Calif.)An operating system, etc. Of course, other implementations are possible. For example, the server functions described herein may be implemented by multiple server blades communicating over a backplane.
A.2.b example client System architecture
Fig. 18 illustrates an example hardware system 401 that may be used to implement a client node. In one embodiment, hardware system 401 includes a processor 403 and a cache 404 coupled to each other as shown. In addition, hardware system 401 includes a high performance input/output (I/O) bus 406 and a standard I/O bus 408. Host bridge 410 couples processor 403 to high performance I/O bus 206, while I/O bridge 412 couples the two buses 406 and 408 to each other. Hardware system 401 also includes a wireless network interface 424, a system memory 414, and a video memory 416 coupled to bus 406. Display device 418 is in turn coupled to video memory 416. Mass storage 420, keyboard and pointing device 422, and I/O ports 426 couple to bus 408. In general, these elements are intended to represent a broad class of computer hardware systems, including, but not limited to, those based on the Intel corporation of Santa Clara, CalifA processor, and any other suitable processor.
The remaining elements of hardware system 401 are described below. In particular, network interface 424 provides communication between hardware system 401 and any of a wide range of wired networks (e.g., ethernet, etc.) or wireless networks (e.g., WLAN (i.e., IEEE802.11) WiMax (i.e., IEEE802.16), Cellular (e.g., GSMA), etc.). Mass storage 420 provides permanent storage for data and programming instructions for performing the above-described functions implemented in the system controller, while system memory 414 (e.g., DRAM) is used to provide temporary storage for data and programming instructions when executed by processor 403. I/O ports 426 are one or more serial and/or parallel communication ports that provide communication between additional peripheral devices, which may be coupled to hardware system 401.
Hardware system 401 may include a variety of system architectures and the various components of hardware system 401 may be rearranged. For example, cache 404 may be on-chip with processor 403. Alternatively, the cache 404 and the processor 402 may be packaged together as a "processing module" while the processor 402 is referred to as a "processor core". Moreover, certain embodiments of the present invention may not require or include all of the above components. For example, a peripheral device shown coupled to a standard I/O bus 408 may be coupled to the high performance I/O bus 406. Furthermore, in some embodiments, there may only be a single bus to which components of hardware system 401 are coupled. Further, hardware system 401 may include additional components, such as additional processors, storage devices, or memories.
In one embodiment, the operation of the client-side functionality is implemented as a series of software routines run by hardware system 401. These software routines comprise a plurality or series of instructions to be executed by a processor (e.g., processor 403) in a hardware system. These series of instructions may initially be stored in a storage device (e.g., mass storage device 420). However, the series of instructions may be stored on any suitable storage medium (e.g., magnetic disk, CD-ROM, etc.). Further, the series of instructions need not be stored locally, and may be received from a remote storage device (e.g., a server on a network) via the network/communication interface 424. These instructions are copied from storage (e.g., mass storage 420) into memory 414 and then accessed and executed by processor 403. In some implementations, one or more aspects of the instructions may be implemented in hardware or firmware.
Although FIG. 18 illustrates, for purposes of teaching, a hardware architecture in accordance with one embodiment of the present invention, a client can be implemented on a variety of computer system architectures, such as dedicated, handheld or portable devices, personal digital assistants (e.g., integrated devices that support WLAN data + voice), laptop computers, handheld phones, etc. Furthermore, embodiments of the present invention may operate in connection with other wired host systems, such as desktop-based IP phones or laptop or desktop computers with Ethernet Network Interface Controllers (NICs).
The operating system manages and controls the operation of hardware system 400, including the input and output of data to and from software applications (not shown). The operating system provides an interface, such as a Graphical User Interface (GUI), between a user and software applications executing on the system. According to one embodiment of the invention, the operating system is available from Microsoft corporation (Microsoft corporation of Redmond, Washington)95/98/NT/XP operating system and/orCE (WinCE) operating system. However, the present invention may be used with other operating systems, such as the apple Macintosh operating system, UNIX operating system, LINUX operating system, Symbian operating system, and the like, available from apple Inc. (apple computer, Inc. of Coopertino, Calif.).
A.3 example participant roles
Particular implementations of the invention may involve multiple entities, each assuming one or more roles. For example, in one implementation, the content distribution mechanisms described herein may operate in relation to content owners, content uploads, content embedding entities, web application hosting entities, and content consumers or end users. In particular implementations, a given entity may assume more than one of these roles simultaneously. The entity may be any suitable entity, such as an individual, a company, a partner, a joint venture, and combinations of the foregoing. As described in detail below, particular implementations are directed to providing benefits to one or more of the entities described herein based on distribution of uploaded content over a network environment. In particular implementations, the benefit provided to the one or more entities may be a monetary benefit, such as a share of revenue generated by activating a link in the content embedding code. The benefit may also be points in the account that may be redeemed for prizes (e.g., travel and merchandise). In some implementations, the benefits provided to one or more entities may differ. For example, for a given link activation, one entity may receive a monetary benefit, while another entity may receive a redeemable credit or reputation.
A content owner is an entity, such as an author or other content creator, that owns or claims to own legitimate and/or beneficial rights to the content of a given item. The content owner may have obtained rights to a given content item through content creation or purchase or other acquisition. Such rights may include copyright and/or contractual rights. In some implementations, the content owner may be compensated for the use of a given content item by the content embedding entity. A content uploader is an entity that uploads content for a given item to a remote system (e.g., the content hosting site 20). The content owner may be the same entity as the content uploader or a different entity with respect to a given content item.
A content embedding entity is an entity that uses content items, for example, by embedding the content in other underlying digital content (e.g., blogs, online forum posts, web pages, or other network accessible content) that is accessible over a network. In some implementations, the content embedding entity may be compensated for third party behavior related to the already embedded content. In some implementations, the content owner can access the content distribution system 30 to obtain the content embedding code. In some embodiments, multiple content embedding entities associated with a given digital content object may be associated in a distribution chain.
A web application hosting entity is an entity that operates or hosts a web application, such as a website, blog site, social networking site (e.g., myspace. In some implementations, a single entity may be a content embedding entity and a network application hosting entity. For example, a news media site or other publisher may embed a given content item in one or more pages of its own site, where servers and other resources are managed within its domain. In some cases, the end user of the web application hosting entity may be a content embedding entity, for example, an end user of a social networking site (e.g., myspace. The web application hosting entity may also be compensated for third party behavior related to the embedded content.
In some implementations, the content consumer or end user is an entity that uses a client node to access the network application hosting system 40. One or more behaviors of the content consumer, such as viewing embedded content and activating one or more links associated with the content, may cause compensation to one or more entities based on their respective roles with respect to a given content item. In some implementations, compensation refers to a benefit, such as money, an item, a service, a reputation or point (redeemable for money, an item, a service, etc.), or any other benefit provided by one entity to another entity. In some implementations, one or more entities may share revenue realized due to click streams and/or purchasing behavior of content consumers. In some implementations, when a content consumer activates a distribution link associated with a given content object to generate content embedding code, he or she may also be a content embedding entity.
A.4 participant identification and authentication
In some implementations, the content distribution system 30 maintains user accounts for one or more of the aforementioned entities. For example, the content distribution system 30 may maintain a user account for the content owner or uploader. For example, the content distribution system 30 may maintain user accounts, storing user account information in the data store 34. In some implementations, the user provides login information or authentication information to gain access to his or her account information. In addition to including the user name and password, the user account information may also include address and other personally identifying information and possibly financial account information (e.g., bank accounts and routing information that may be debited or credited). The user account information may also include other information, such as user preferences and tags describing one or more aspects of the user.
Various authentication mechanisms may be used; as mentioned above, a user name and password authentication mechanism is one suitable authentication scheme. To protect the initial login information, content distribution system 30 may employ, for example, a Secure Sockets Layer (SSL) or other encryption mechanism (e.g., HTTP-S).
In some implementations described herein, a user accesses the content distribution system 30 using a browser or other client application. After successful login, the content distribution system 30 may, for example, create a browser cookie with the corresponding user identifier or information mapped to the user identifier. Since the cookie is included in subsequent requests from the client application, the content distribution system 30 may automatically identify the user as the user navigates the system requesting content or uploading content.
In some implementations, the content owner or uploader may have an account. In addition, the content embedding entity may also have an account maintained by the content distribution system 30. In practice, a single user may be a content owner associated with the first content object and a content embedding entity associated with the second content object. In some implementations, a user can register or apply for one or more roles in the content distribution system 30. In other implementations, role rights need not be explicitly defined in a user account.
B. Registration of digital content objects
In one implementation, a user (content owner/uploader) may access the content distribution system 30 to register a digital content object and/or obtain a content embedding code associated with the digital content object. In particular implementations, a user (content uploader) may utilize a client node to access the content distribution system 30 over the computer network 60 to register content. In one implementation, a dedicated client application may be used to register and possibly upload digital content objects. In another implementation, the client computer 82 includes a browser or other client application that parses and displays hypertext markup language (HTML) pages sent from the content distribution system 30. In one implementation, the content distribution system 30 may send a page-based interface that includes functionality to allow a user to register content.
Fig. 2 illustrates a workflow for registering a digital content object with the content distribution system 30 and generating content embedding code for the digital content object. As shown in fig. 2, when a user accesses the content distribution system, the content distribution system 30 may require a login process to establish the user's identity and account information (1402). The user login process may involve authentication in which the user provides one or more credentials (e.g., a registration identifier and password) that are verified by content distribution system 30. As described above, the login process may also cause a browser cookie to be generated that includes user identification information (userindentifying information) appended to HTTP or other requests sent from the user's client application to content distribution system 30.
The user then selects to register a given digital content object (1404). In particular implementations, the registration of the content object may involve the following workflow: the user identifies the digital content object and configures one or more attributes of the digital content object and specifies one or more parameters (e.g., rights and revenue allocation parameters) related to the distribution of the digital content object. Identification of the digital content object may involve specifying a data locator for the digital content object or uploading the digital content object to the content distribution system 30. In one implementation, the digital content object may be hosted by the content hosting site 20, for example. In such implementations, the user may only specify a data locator (e.g., a URL) corresponding to the digital content object. In other implementations, a Uniform Resource Indicator (URI) that identifies the content rather than a specific location may also be employed. The URI will resolve (resolve) to a URL in the database system. In other implementations, the user may upload the digital content object to the content distribution system 30 for hosting. The registration of a digital content object may also include configuring metadata or tags associated with the digital content object, or characterizing one or more attributes of the digital content object. For example, the page-based user interface provided by the content distribution system 30 may include a tag field in which the user may enter metadata, such as one or more tags or keywords describing or relating to the content attributes.
The tags associated with the content may be significantly different. Tags may relate to the subject of the content (subject, location, etc.), circumstances related to the creation of the content (data, author, time, image capture settings, etc.), and so forth. Other data may be associated with the content. For example, the tag need not be entered by the user who uploaded the content. Rather, tags or other information may be entered by other users after accessing and viewing the content on the content hosting site 20. Further, one or more tags may be automatically extracted based on the analysis of the content. For example, a digital file that includes underlying content (e.g., an image or video) may also include one or more tags in the reserved data field. Other information may include the data and time when the content was uploaded. Further, if the content includes text, the content distribution system may, for example, perform a programmed process to extract one or more tags from the content. In addition, content may be tagged with one or more geographic locations or geographic location tags (geo-tags).
Registration of a digital content object may also involve configuration of one or more parameters related to distribution of the digital content object and/or revenue allocation parameters for allocation of revenue or other benefits that may result from distribution of the digital content. For example, a user may specify revenue distribution terms between a content owner/uploader and one or more content embedding entities. In some implementations, the revenue allocation terms may specify: in the distribution chain, only a subset of the content embedding entities may share revenue. In other implementations, the revenue allocation terms may indicate that no content will be embedded in the entity sharing revenue. Various revenue allocation arrangements may be configured without departing from the scope of the invention. In addition, registration of the digital content object may cause the content distribution system to create an object instance record for the digital content object that includes one or more attributes, such as an object instance identifier, a user-specified tag, a data locator for the digital content object, a user identifier corresponding to the user, and distribution and/or revenue allocation parameters. As described below, when the content embedding entity accesses the content distribution system 30 and includes the content embedding code in an underlying network resource (e.g., an HTML page or other digital content object), an additional instance identifier corresponding to the digital content object is then created and returned to the originally created instance identifier.
After registration of the digital content object, the content distribution system 30 may generate content embedding code (1406) that includes a distribution code segment, as described in more detail below. In particular implementations, content distribution system 30 then provides the content embedded code to the user (1408), and in one implementation, the sending of the page-based interface connection (interface) includes source code (e.g., HTML code) or a separate data file (1408). The user may then use the content embedding code, for example, to insert the content embedding code into the underlying HTML page. When the page is published and requested by a browser or other client application, the content embedding code, when parsed, is operable to access the digital content object and render (render) the digital content object in relation to one or more hypertext links (or other user-activated controls), as described below.
In some implementations, the content uploader may specify one or more attributes of the content embedding code. For example, the content uploader may specify a URL to be included in the advertisement link segment of the content embedding code. For example, the motion picture studio may upload still images from a movie to the content aggregation and benefits attachment system 20 and specify the URL to include in the advertisement link of the content embedding code. The URL may correspond to an official movie home page where the user may book tickets or purchase goods. When such an ad link is clicked, the entity that embedded the content embedding code (which caused the content and ad link to be displayed on his or her blog page website or other network resource) may receive a benefit, such as a monetary reward.
Other implementations are also possible. For example, the content owner may choose to pay for the distribution of the uploaded content. The content aggregation and benefit assignment system 20 may include interface controls in the upload interface that allow the content owner to select this option. In some implementations, the revenue model employed may be a pay-per-show or pay-per-click scheme. In a pay-per-show scheme, a content owner may pay one or more entities (e.g., content embedding entities) each time a content object is accessed as a result of being embedded in an underlying network resource (e.g., blog page, website, etc.).
Moreover, various other implementations are possible. For example, content object registration and content embedded code generation may be automated processes that are performed in connection with the dynamic generation of HTML pages or other network resources (e.g., flash objects or other media files). For teaching purposes, an HTML page 1502 is depicted in FIG. 3. As shown in FIG. 3, HTML page 1502 includes digital content object 1504 (here, a digital image). In one implementation, the functionality of content distribution system 30 may be exposed to other network hosts as a collection of Application Programming Interfaces (APIs). For example, content distribution system 30 may support a web services protocol, such as Simple Object Access Protocol (SOAP). In such an implementation, a user may embed one or more API calls (as any of HTML code, Javascript, or other languages) to content distribution system 30 into the source code of HTML page 1502. Such calls may also be implemented, for example, in the. asp or. jsp page. In one implementation, execution of these calls will cause the server to, for example, submit relevant media information obtained from a media asset database used by the dynamic page publication system at some point during the construction of the HTML page. For example, during dynamic construction of a web page at a web page server (or client application). The host may send a message or request to the content distribution system to register the content object and receive the content embedding code in response. In one implementation, the message may include an identifier of the digital content object, one or more tags or keywords, one or more account identifiers, one or more distribution parameters, and/or one or more revenue allocation parameters. The message may also include authentication information. In addition, the message may also be encrypted using a secret shared key or public-private key encryption technique. In implementations involving dynamic generation of server-side web pages, the automated process may also involve a separate exchange of messages in the authentication process. In one implementation, a server executing the dynamic page generation code receives content embedding code and incorporates the content embedding code into an HTML page or other resource.
C. Content embedding, content embedding code and activation of distribution link
FIG. 4 illustrates the results of content embedding code generation and content registration described herein, which may result in the manual or automated processes described herein. Fig. 4 shows an HTML page which is essentially the same as that shown in fig. 3, however, the HTML page also comprises one or more code segments operable to present respective hypertext links on the HTML page. For example, the hypertext connection includes an attribution link 302, an advertisement link 304, and a search link 306. The hypertext links may also include a distribution link 308. Note that these links may be text-based or graphic-based controls. Further, these links may be responsive to clicks, mouse-over, and/or other activations. Further, these links may be implemented in HTML code or Flash or other media files.
Further, FIG. 5A illustrates an example result of activating the distribution link 308. The page 400 has been constructed to include the relevant linking functionality, as described above. In one particular implementation, activation of the distribution link 402 (e.g., user click or mouse-over) causes a distribution interface (e.g., pop-up window 404) to appear. In one implementation, activation of the distribution link 402 causes a browser or other client application to access the content distribution system 30 that automatically generates the content embedding code and renders the distribution interface in the pop-up window 404. In this manner, it is possible that end-user identification information may be obtained in the browser cookie, as described in more detail below. The window may also be displayed in a new space within the page itself using AJAX, Flash, or other techniques. Further, although not shown here, the distribution interface may also contain some combination of the following: displayed advertisements, sponsored search links, copyright or other rights information, links to content distribution systems, and the like. In one implementation, the distribution interface may also include a confirmation thumbnail 406, the confirmation thumbnail 406 displaying media available to the user for publication. In some implementations, the distribution interface can also include descriptive information 408. In the illustrated implementation, the distribution interface also includes an embedded field 410, the embedded field 410 containing content embedding code that the user can select and copy. In one implementation, the embedded field 410 includes content embedding code that may be used to embed or display the content in other underlying content. For example, the content embedding code may include HTML code that may be inserted into an HTML page corresponding to an informational web page, a blog page, an online forum, or a personal page on a social networking site. The content embedding code provided in the embedding field may a) be the same or substantially the same as the content embedding code in the base page 400; b) is modified to indicate that the digital content object was obtained through a distribution interface; and c) modified to include a reference to the acquiring user (assuming the acquiring user can be identified). Such identifying information may be used to help track distribution of a given digital content object and also indicate multi-level revenue allocations.
FIG. 5B illustrates processing that may be performed at a content distribution system in response to activation of a distribution link. As described above, activation of the distribution link may cause the client application to send a request to the content distribution system 30. In one implementation, the request may include an instance identifier or other information that allows the content distribution system 30 to identify the digital content object and other information associated with the registration of the digital content object. When content distribution system 30 receives the request (420), it accesses one or more instance records identified in or associated with the request to determine whether the digital object content is set for revenue distribution with the content embedding entity (422). If not, the content distribution system 30 may generate the same content embedding code as in the base page (e.g., page 400 of FIG. 4) embedded in field 400. Otherwise, the content distribution system 30 determines whether the current user is identified (424). For example, the request may include an additional browser cookie with user identification information. If the cookie is invalid (e.g., out-of-date, invalid account) or not present, the content distribution system 30 enters a login process for the existing user or an account registration process for the new user (426). If the user is not sufficiently identified, the content distribution system 30 joins the user to the distribution chain of content embedding entities in the record associated with the digital content object (428), generates the content embedding code and provides the content embedding code to the user in the embedding field 410 of the distribution interface (430). Subsequent user usage of the distribution links may create one or more content embedding entity distribution chains, assuming the same set of links is displayed. FIG. 5C illustrates an example method that may assist this aspect of some implementations of the invention. As shown in fig. 5C, the content distribution system 30 may generate a new object instance identifier and record in response to the received request. In one implementation, the newly generated record may be linked to the object instance record identified in the request. In such implementations, the object instance record may be studied in detail (transition) to determine one or more distribution chains associated with the digital content object. This may be useful for identifying one or more entities associated with a given distribution chain in relation to revenue allocations.
As described above, the user may then use the content embedding code in an underlying resource (e.g., an HTML page) so that the digital content object and the links described above are displayed to other users when accessed. In the particular implementation shown, the content embedding code in the embedded field 410 is source code, such as HTML code, that is rendered as plain text (and thus not parsed, rendered, or otherwise processed by a browser or other client application). The content embedding entity may use the content embedding code by manually copying the content embedding code in the embedding field 410 and inserting it into the desired content file or object. In one implementation, the content embedding entity may highlight the content embedding code in the embedding field 410, use a "copy" or "cut" command to load the code into a temporary buffer, and "paste" the selected content embedding code into one or more desired locations in the base file or content file. In another implementation, the distribution interface may include an "embed" control (e.g., a hypertext link or command button) that activates a script that automatically loads the content embedding code into the temporary buffer. In another implementation, the embedding control may cause a temporary text box or pop-up window to appear that contains the content embedding code. The user may then select the content embedding code and paste it into a desired location or file. In another implementation, the distribution interface may include a hyperlink to the content embedding code that, when activated, causes the remote system to generate the content embedding code based on the command and return the content embedding code to the requesting node.
In some implementations, the content embedding code can be stored in a data file (e.g., a text file) for later use by the content embedding entity. For example, the content embedding entity may choose to store the content embedding code in a text file on the client node for later use. In some implementations, the content embedding entity can choose to store the content embedding file in a user account on the content distribution system. Further, fig. 7A illustrates an example interface 470 that facilitates a configuration of a blog post that includes content embedding code inserted therein. When configuring blog posts, the content embedding entity may paste the HTML code 472 copied from the embedded field 410 into the HTML code of the blog page. In the implementation shown in fig. 7A, interface 400 includes an "editHTML" tag that allows a user to directly edit HTML code of a blog post. When parsed by a browser or other client application, for example, the content embedding code 472 causes the browser to retrieve the content and display the content in relation to one or more links. The content embedding code may be incorporated into various systems, such as information systems and social networking systems. In fact, a blog post represents one of many possible forms of social media with which content-embedded code may be used in connection. For example, the content embedding code may be incorporated into a private page on a social networking site (e.g., myspace. com, Facebook, Yahoo | 360, etc.). The content embedding code may also be used by the content embedding entity in other contexts. For example, the content embedding code may be entered into a discussion string on a public forum site. For example, the content embedding entity may look for an image of a car on the content site 20. The content embedding entity may then incorporate the image by pasting the content embedding code 472 into a post on a public automobile forum. Additionally, a web site administrator or other user may include content embedding code into one or more pages of a website, such as a commercial news site (e.g., cnn.
Fig. 7B illustrates an example blog page 480 that includes embedded content. When posting the illustrated blog, the content embedding entity (here, the blog poster) has entered the written text and the content embedding code that caused the selected content to be displayed. As shown in fig. 7B, blog page 480 includes distribution, attribution, advertising, and search locators as hypertext links 482 that are respectively displayed in relation to digital content objects 1504. Note that other links and information may also be displayed with the content. For example, the same mechanism may be used to display a "Share" link that pops up a window inviting the viewer to provide one or more email addresses. Completion of the workflow of the shared link may cause an HTML-based message (including content embedding code) to be sent to the recipient. The recipient, upon accessing the message, will be presented with the one or more links and the content contained in the content embedding code. Another link may be an "IM" link that invokes (invoke) an instant messaging session with the content owner, etc. In addition, the content embedding code may be configured to embed the content as an activatable area, such as an HTML image map encoded with a selected link (e.g., an advertisement or search link). If the user clicks within the area, a link associated with the area is activated, causing the client application to send a request to the server identified in the link.
It will be appreciated that the operation of the various implementations described above creates a viral distribution mechanism. That is, a first content embedding entity may view the digital content object and click on the distribution link to obtain the content embedding code and use the code in, for example, a blog page. Thereafter, a second content embedding entity may view the blog page, click on the distribution link to receive the content embedding code, and use the content embedding code, for example, in a social network page. A third content embedding entity may still view the social network page and (as described above) obtain the content embedding code and use it in the information website. Further, as described above, each of these content embedding entities includes a distribution chain and may share revenue or other benefits generated by activating an advertisement or search link. For example, if an end user clicks on an ad link while viewing (above) a blog page, the first and second content embedding entities may share the revenue generated (assuming the content owner has configured the revenue allocation parameters in this manner).
B.1 content embedding code
The content embedding code may take many forms, for example, the content embedding code may be source code, such as HTML code or object code. The content embedding code may also include one or more scripts, such as JavaScript, expression functions embedded or contained in HTML code. These script functions may interact with a Document Object Model (DOM) of the page to perform one or more tasks. Scripts can also be used to make calls to remote servers after the HTML page has been loaded. These calls may get new information or data that additional scripting code may merge with the DOM of the existing page so that it is displayed or rendered in a different manner.
FIG. 6A illustrates elements of example content embedding code in accordance with a particular implementation of the invention. In the illustrated implementation, the content embedding code includes a content code segment 500, a distribution code segment, an attribution code segment 502, an advertising code segment 504, and a search code segment 506. The content code segment 500 includes a content locator 510, such as a URL corresponding to the content to be embedded. The content locator 510 may include a URL of the system hosting the content (e.g., the content hosting site 20). In other implementations, as shown in FIG. 6B, the content locator 510 may include a URL570 corresponding to the content distribution system 30, with the URL of the content as the encoded parameter. In this implementation, the URL may include parameter information identifying the system hosting the content (e.g., content hosting site 20), such as URL572 or an identifier mapped to the URL. The URL may also include a content object identifier 579, the content object identifier 579 also typically including an object instance identifier value. In this implementation, the content distribution system 30 may track and/or control content utilization (where the content is stored remotely from the content distribution system 30) and redirect the client application to the system hosting the content. Content code section 500 may also include formatting information or other information. For example, tabs 512, 514, and 516 indicate the width, border (border), and style to be used when displaying the content. One or more of the resource locator or indicator in the content embedding code may be formatted as a hypertext link that may be activated by a user click.
The distribution code segment 501 includes a URL532 corresponding to the content distribution system 30. In one implementation, URL532 includes an object instance identifier as a parameter.
Attribution code segment 502 includes an attribution URL530 corresponding to information about the content owner. In one implementation, the attribution code segment may include displayable text (including attribution text or credit signature line (credit)). The attribution link may correspond to any network addressable resource, such as a web page, a personal page hosted by a social media site, an aggregated site, or other hosted system.
The advertisement code segment 504 includes an advertisement locator 540 that, when activated, causes an advertisement to be displayed. The ad locator may take various forms. For example, the ad locator may be a fixed or static URL that, when activated, causes a browser or other page consuming client application to send a request to a network addressable resource (e.g., a web server) and receive an ad. In one implementation, the advertisement locator may be included in a hypertext link that includes the URL of the content distribution system 30, a static URL corresponding to the advertisement in a Common Gateway Interface (CGI) command. When the ad link is activated, the client application sends a request to the content distribution system 30, and the content distribution system 30 sends a redirect message to the browser.
In the particular implementation shown, ad locator 540 contains a URL (www.cds.yahoo.com) for content distribution system 30 and includes as a parameter a URL541 corresponding to an ad serving resource (e.g., a web server of a sponsored advertiser). The ad link may include one or more of the tags 542 and 544 associated with the content in the form of a pay-per-click tracking parameter that allows a sponsored business to record usage. In the illustrated implementation, when the advertising link is activated, the client application sends a request to content distribution system 30(www.cds.yahoo.com), and content distribution system 30 sends a redirect message to the client application. The redirect message redirects the client application to the network resource identified in the "redrct" parameter field (see reference numeral 541 of fig. 6A). The use of redirect messages enables content distribution system 30 to track usage of content and links. Other implementations are possible, for example, as shown in FIG. 6C, the ad locator can include an ad identifier 571, the ad identifier 571 mapping to a statically defined URL of the ad serving system.
As shown in FIG. 6D, the advertisement code segment 504 may also include one or more identifiers, each identifier corresponding to a different user or entity. For example, the ad code segment 504 may include a user identifier 574 corresponding to a content embedding entity that embeds content into a base resource (e.g., a blog page, a website, a personal page, etc.). In addition, advertisement code segment 504 may include a plurality of content embedding entity identifiers associated with a distribution chain of digital content objects. The advertising code segment 504 may also include an identifier 575 corresponding to a content owner who uploads, owns, creates, and/or controls the content. Further, as shown in FIG. 6E, advertisement code segment 504 may include a content identifier 579 and also include an identifier 577 corresponding to a web application hosting system that hosts a resource in which the content has been embedded, such as a blog site, a social networking site (e.g., MySpace. com, Yahoo!360, etc.). As shown in fig. 6F, the advertisement code segment 504 may also include an identifier 578 corresponding to the system hosting the content (e.g., the content hosting site 20). As described in more detail below, one or more of these identifiers may be used in the benefits and revenue allocation mechanisms described herein. In addition, as shown in FIG. 6N, an identifier 579 corresponding to a content object may also be encoded into the ad code segment 504 to allow the content distribution system 30 to track, for example, content objects that generate click stream campaigns. In one implementation, the value of the content identifier corresponds to an object instance identifier (see above). In one implementation, the object instance identifier may be used to identify a content embedding entity directly related to activation of the advertisement link and one or more content embedding entities in the distribution chain. This information may be used in a revenue distribution arrangement that specifies revenue distributions between two or more content embedding entities in a distribution chain.
In some implementations, the ad serving resources can be dynamically defined when the ad link is activated. For example, as shown in FIG. 6G, the ad locator 570 may include a redirect parameter 576, the redirect parameter 576 including an identifier 569 of the ad search system and one or more keywords 568. In the illustrated implementation, when the advertising link is activated, the client application sends a request to content distribution system 30(www.cds.yahoo.com), and content distribution system 30 sends a redirect message to the client application. The redirect message redirects the client application to a network resource, here an ad search system (www.cds.yahoo.com), identified in the "redrct" parameter field, thereby conveying one or more keywords and optionally a content embedding entity identifier and/or a content owner identifier. The advertisement search system may then use the keywords to select one or more advertisements to return to the client application. In some implementations, a browser cookie (including user identification information) may also be passed to the ad search system with the request. The advertisement search system may use this or related information to assist in advertisement selection. In some implementations, the advertisement search system may send a redirect message that causes the client application to access the remote advertiser system. In other implementations, the advertisement search system returns the selected advertisement directly. In an alternative implementation, the content distribution system 30 uses the content embedding entity identifier and/or the content owner identifier for utilization and tracking purposes and does not provide them to the ad search system.
As shown in fig. 6A, search code segment 506 may also include a search locator 550, search locator 550 being operable when activated to provide search results related to the content. The search locator may include the URL of the search system 70 and one or more keywords 552, such as respective values of one or more tags associated with the content. Activation of the search locator (e.g., clicking on a hypertext link) may result in a page of search results. The search results may include one or more links to sponsored content or paid search marketing advertisements in addition to, or in place of, algorithmic search results.
Search code segment 506 may also include one or more of the above-described entity identifiers to be used in the benefit attachment mechanism (e.g., content owner, content embedding entity, content hosting, etc.). For example, as shown in FIG. 6H, the search code segment 506 may include an identifier 574 of one or more content embedding entities that may share the generated revenue if a third party viewing the content clicks on a search link and then clicks on a link to the sponsored search results. A portion of the revenue may also be provided to the content owner/provider. In one particular implementation, an identifier 575 (see FIG. 6I) of the content owner may also be included. In another implementation, search code segment 506 may include an identifier 579 (see FIG. 6J) corresponding to a content object (see above). The search system may use these entity identifiers to encode the returned one or more redirect links into the search results.
Other implementations are also possible. As shown in fig. 6K, for example, search code segment 506 may include a URL (reference number 570) identifying content distribution system 30 and include a content identifier. Activation of such a link will send a message to the content distribution system 30, as described below, the content distribution system 30 will record (for example) the content identifier 579, and then redirect (see reference numeral 576) the client node to the search system 70. In one implementation, the redirect message may also include content identifiers 579 to allow the search system 70 to encode one or more links into search results (e.g., one or more sponsored links) using these identifiers. If the user clicks on one of the encoded links, the content identifier 579 may be used to compensate for one or more entities in the distribution chain. If the user clicks on one of the encoded links, the content identifier 579 may be used to compensate for one or more entities in the distribution chain.
In one implementation, the content (e.g., image) itself is clickable, and the user click resolves to the above advertisement link, search link, or attribution link. As shown in FIG. 6L, the content code segment 500 may include HTML code that makes the displayed image clickable, such as by redirecting a message to an advertisement system. However, the links associated with the content may incorporate the various link types and data elements described herein.
Further, one or more aspects of the content embedding code may be dynamically generated. For example, if the content embedding entity is recorded into the content distribution system 30, the identifier of the content embedding entity may be dynamically added to one or more segments of the content embedding code. In addition, content embedding code may be dynamically generated during page creation to add current tags associated with the content. In some implementations, one or more of the tags can also be dynamically generated after activation of one of the links. In one such implementation, the parameters associated with the search code segment, advertisement link segment, etc. may include a content identifier and a URL of the content hosting site 20 to access the content hosting site 20, the accessing content hosting site 20 adding the current tag and sending the most current tag in the URL of the search or advertisement system to the client application in a redirect.
The content embedding code may also include other link types, such as a "buy content" link. In one particular implementation, activation of the "buy content" link initiates a purchase workflow on a remote server, wherein, for example, a user may purchase a higher quality digital image of image content or a framed copy of the image displayed in association with the link. As described above, the shared link may include HTML code that causes the client node to generate an email configuration interface that includes content embedding code. The email may be configured as an HTML email that, when accessed by the recipient, may present the content and one or more links in a manner similar to that described in fig. 7B. Further, the "contact owner" link may include code that causes the client node to generate an email configuration interface that specifies the content owner as the recipient.
The advertisement locator may be a URL or URI that, when submitted to the advertiser system 65 and the search system 50, contains one or more parameters 542, 544 used in the advertisement selection process. In particular embodiments, the advertisement selection process may, for example, look for keywords or tags associated with the content and find advertisements that match the keywords or tags. The advertisement system may send a dynamically selected advertisement in response to a request when the advertisement locator is activated. Note that the process of selecting an advertisement may use various rules or mechanisms to determine which advertisement to display, such as a real-time auction mechanism, a static highest bidder declared, a route to a URL recently set by the advertiser, and so forth.
B.2 content embedding code generation
Various aspects of the content embedding code may be defined statically or dynamically. Further, the content embedding code may be generated by a variety of different systems or nodes.
Fig. 8A-8C illustrate an example method for generating content embedding code according to one possible implementation of the invention. The generation of the distribution code segment has been described above. In some implementations, certain aspects of the content embedding code may be dynamically defined. In some implementations, for example, some portions of the content embedding code may be defined in response to activation of a distribution link that causes the client application to send a request for the content embedding code. The implementations described below operate as part of the process flow shown in fig. 5C. As described above, the request for content embedding code may include an object instance identifier corresponding to an object instance record containing information used to generate various aspects of the content embedding code, or pointing to another object instance record containing such information. In some implementations, various attributes of the digital content object may also be communicated in the request. In addition, as shown in FIG. 5C, the identity of the user requesting the content embedding code is also determined. And a new object instance identifier has been created. As shown in FIG. 8A, server 32 may retrieve tags, content locators, and other metadata associated with the content (780) and use that data to generate one or more aspects of the content embedding code. In some implementations, server 32 may retrieve an identifier of the user currently accessing content distribution system 30 (781). In one implementation, the user identifier may be included in a browser cookie and/or maintained as server-side state information. The identifier may be a content embedding entity identifier 575 contained in one or more of the advertising code segments or search code segments 504, 506 described above. Server 32 then generates a content code segment 500(782) that includes the content locator of the content, a distribution code segment (783), an attribution code segment 502(784) that contains a link to the content owner, an advertisement code segment 504(786), and a search code segment 506 (788). In some implementations, one or more of the aforementioned code segments may be omitted.
As shown in FIG. 8B, to generate advertisement code segment 504, server 32 may retrieve one or more tags associated with the content (790), and send a request including the one or more tags to advertisement search system 50 (791). The server 32 may receive a response from the advertisement search system 70 that includes an advertisement locator (including the URL of the advertisement) (792). In one implementation, the server 32 generates an ad link using the values of the object instance identifiers as the ad identifier 579 and ad locator (793). In the illustrated implementation, the ad locator may include a PPC code (see FIG. 6A). As shown in FIG. 8C, to compose search code segment 506, server 32 may retrieve one or more tags associated with the content (795), and in one embodiment, generate a search link based on the tags using content identifier 579 and a search locator including one or more search terms (796). As described above, various other implementations are possible. In addition, these tags may be processed to generate alternative or additional keywords for use in advertisement selection or subsequent search processing.
FIG. 8E illustrates another example method that may be used to generate an advertisement code segment. As shown, server 32 may first determine if an ad locator has been specified for the content object (1120). As described above, in some embodiments, the content owner may specify an ad locator to be used in the content embedding code during or after upload. In one implementation, the ad locator is stored in association with information about the content object. If a locator has been specified, server 32 retrieves an ad locator associated with the content (1128). In another implementation, the content owner may specify a set of locators that may be selected in round-robin (round-robin) or some other scheme. If the locator has not been specified, the server 32 accesses the tag(s) associated with the content object and uses these tags to retrieve the advertisement locator from the search system 50 (1124). Server 32 then generates an advertising hyperlink (1126). The advertisement hyperlink may include a content identifier, as described above. Further, as discussed herein, an advertisement hyperlink may be a redirect link that includes an advertisement locator as a plain text parameter in the URL of the hyperlink or as an encoded identifier that the remote system corresponding to the host identified in the URL maps to the advertisement locator and returns in a redirect message.
B.3. Script-based content embedding code
In some implementations, one or more segments of content embedding code may contain scripts or calls for retrieving scripts that dynamically generate one or more aspects of the links provided when the embedded content is accessed. FIG. 6M illustrates example content embedding code operable to invoke the locators and links formed in the discussion herein. For example, the content embedding code includes: a location of a server hosting the content, an identifier of the content (typically, an object instance identifier), a content embedding entity identifier, a content owner identifier, one or more tags, and formatting parameters. The content embedding entity also includes the URL of the script. The generation of content embedding code to retrieve the script is similar to that described above. For example, the content distribution system 30 may obtain the entity information and the tag and construct the content embedding code in the same format as shown in fig. 6M.
In one implementation, when the content embedding code is inserted into an HTML document and subsequently accessed by a client application, the client application may retrieve and execute the script. The script may use the parameter values in the content embedding code to make calls to one or more remote servers to retrieve and render the content, and to generate one or more of the links described herein. For example, the script, when executed, may cause the client application to query the advertisement search system 50 for a URL and then render the identified content as a clickable area that, when clicked, resolves to an advertisement URL.
FIG. 8D illustrates an example method that may be implemented by a script that dynamically generates content embedding code. As shown in FIG. 8D, the script, when invoked, may access content embedded code parameters (1102) and retrieve content objects identified in those parameters (1104). Using the tags identified in these parameters, the script may retrieve ad locator information from the ad search system 50 or search system 70, and may retrieve information for the distribution link using the object instance identifier (1106). The script may then create one or more of the links discussed herein (e.g., advertisement, search, or distribution links) (1108) and add these content objects and links to the base HTML page (1110).
In other implementations, the script, when executed, may retrieve the creative banner ad content from the ad search system 50 and render it alongside the content. In both cases, the advertisement selection may be based on one or more of the tags in the content embedding code. In another embodiment, the script, when executed, may query the search system 70 for one or more sponsored search links (see above) and render the search links in proximity to the content identified in the content embedding code. In one implementation, the script may render the content as a clickable area that resolves to one of the sponsored search results, such as the highest ranked sponsored search result.
Further, the script may encode a content identifier, content embedding entity identifier, content owner identifier, or other entity identifier contained in the content embedding code into one or more of the linked URLs. For example, the script may add a content identifier to the ad link to allow the entity to be credited if the end user clicks on the ad link. As described herein, in one implementation, an advertisement link may cause one or more redirect messages to be sent. In another implementation, the script may send the content identifier to the ad search system 50.
The script, when executed, may also make remote calls to the content distribution system 30. For example, the script may send a message to the content distribution system 30 including a content identifier, allowing it to maintain a utilization counter in relation to the content object. In one implementation, this may allow the content owner to be compensated based on, for example, the number of times the content is accessed.
In addition, the script may access information other than the content embedding code. For example, the script can access the DOM of the underlying HTML page to extract and process the information. For example, the script may process data of the underlying HTML page to extract one or more keywords or other data that may be useful, for example, to further refine ad selection. Further, the script may add one or more of the extracted keywords to the advertisement search link. In other embodiments, the script may process the data of the HTML page, filter out extraneous information such as "the," "one," "and," and send this information as contextual information using tags when querying banner advertisements, sponsored content links, etc. In addition, the script can access the DOM to identify the web application hosting site 40 (identified by the domain name, in one possible implementation) that hosts the underlying HTML page. The identity of the web application hosting site 40 may receive benefits, such as a portion of revenue, generated from the click-stream behavior of the end user.
Another way to detect more information in the underlying content object is to read the meta-tags in an automated way. Meta tags are well-structured and provide information just like tags. For example, a meta-tag may include < meta-words "content ═ photographics, digitalphophographics, cameraphones, cameras >. For example, a page-crawling mechanism and semantic techniques may be used to understand the subject matter of the page. These meta keywords provided by the user would be valuable and have a direct relationship to understanding the subject matter of the images uploaded by the user. Using this information and tags, the semantic engine may select one or more related topics from the catalog and may select one or more related sponsored links from the search system 70 for these topics or creative advertising content from the advertising search system 50. Further, the search system 70 or the advertisement search system 50 may employ a classification tool to understand categories based on tags and meta-tags. Categories may map to a set of keywords. For example, the keyword "photography" may map to a category entitled "art and photography". The relevant advertisements of that category may be selected by the advertisement search system.
D. Link activation and benefit attachment process and message flow
The use of content embedding code and activation of links in the content embedding code may initiate various processes and message flows. In particular implementations, some of these processes and message flows are directed to recording retrieval events in a manner that allows one or more entities to share revenue generated through activation of a link. Example messages and process flows related to activation of the distribution link 501 have been described above. The following describes example processes and message flows resulting from activation of attribution links, advertisement links and search connections.
For example, the content distribution system 30 may track content usage and provide reports to one or more entities (e.g., content owners and content embedding entities). For example, with respect to content hosted by the content distribution system 30, the content distribution system 30 is naturally in a location to track content utilization because requests for the content are sent directly to it. In implementations discussed herein, the content embedding code may be configured as a first directed message to the content distribution system 30 that redirects the client application to the remote content host. In this manner, the content distribution system 30 can track usage of remotely hosted content.
Content distribution system 30 may track utilization, which may be useful for generating reports (e.g., usage reports, revenue generation reports). For example, the content distribution system 30 may generate a content embedding report that allows users to view which content embedding entities have used their content. Further, the content owner may view a viewing report indicating revenue attributed to a given content object and/or content embedding entity. Other reports may allow the content embedding entity to determine which content objects generate more revenue relative to other content objects.
Fig. 9 illustrates an example method that may be implemented in response to a request for a content object sent from the content distribution system 30. In the illustrated implementation, when the server 22 receives a request for a content object (1202), it may record the request as a content object retrieval event for one or more entities identified in the request or entities associated with the content object (e.g., content owner, content embedding entity, etc.) (1204). For example, as shown in fig. 6B, the content identifier 579 may be added as a parameter to a content URL that is passed to the content distribution system 30 along with a request for a content object. The content distribution system 30 may use the content identifier to access one or more object instance records to determine the entities in the distribution chain. In addition, content distribution system 30 may also generate redirection messages to client applications as described above. As described above, the content owner may have selected a paid distribution option. In the illustrated implementation, the content distribution system 30 may access a database (e.g., the data store 34) to determine whether the content owner has selected the option (1206). If so, the content distribution system 30 records the retrieval event as a debit event to the content owner's account (1208). In some implementations, the content distribution system 30 may also record the retrieval event as a credit to an account of one or more content embedding entities in the distribution chain.
D.1 attribution linking
FIG. 10 shows an example page 700 that may be returned as a result of clicking on the attribution link. The returned page may correspond to a content creator, content owner, or content uploader (i.e., an individual or entity that caused the content to be uploaded). In the illustrated implementation, the page is automatically generated based on user account information maintained by the content distribution system or content hosting site 20. However, in other implementations, the attribution link may be configured to include a URL for any content desired by the content owner. In some implementations, attribution links addresses deficiencies in the marketplace, where attribution requirements of various digital rights regimes are routinely ignored. As a result, content owners seeking to participate in new cultural market models are not paid the least basic for their efforts. The attribution links and processing aids involved in the creation will provide an attribution (attribution) to content owners and creators so that the content owners and creators are more motivated to upload content for use by others.
D.2 advertisement linking
FIG. 11 shows an example page that may be returned as a result of clicking on an advertisement link. The URL of the page that is ultimately displayed to the user may be determined in various ways. Clicking on the link invoking the URL may generate revenue from the advertiser. The revenue may be shared among one or more of the entities described herein. For example, revenue generated from advertising links may be shared between the content distribution system, one or more content embedding entities in the distribution chain, the content owner, and/or the web application hosting entity. As discussed herein, the flow of messages between various systems may contain information such as object instance identifiers and entity identifiers to allow for determination of revenue or other benefits to be shared by various entities.
When a user "clicks" on an advertising link using a computer input device, a request is sent to initiate retrieval of information associated with the advertising link. In some implementations, each access or "click" on an advertisement link will be redirected to the content distribution system 30 or some other system to associate the "click" with the account identifier of the advertiser. The redirect action may, for example, access account identification information encoded into the advertisement link prior to using the advertisement link clicked on by the user to access the advertiser's URL. The account identification information is recorded in the advertiser's account as a search request event along with information from the search request. Because the information obtained by this mechanism matches the account identifier with the URL, an accurate account debit record may be maintained.
In the advertisement links shown in fig. 6A and 6C, the content distribution system 30 may process the advertisement links as described in fig. 12A. For example, content distribution system 30 may receive a request from a client application that includes an advertisement link (852). The content distribution system 30 matches one or more aspects of the advertisement link with the advertiser account (854) and credits the retrieval event to the identified account (856). The content distribution system 30 may use these records to debit or charge the account. The content distribution system 30 then sends a response to the client application that includes the redirect message. The redirect message includes a link to the advertisement, which in one implementation is displayed by the client application. In the ad link of FIG. 6C, the content distribution system 30 may, for example, access a data store to map the encoded identifier to an ad locator.
For the advertisement links shown in fig. 6D, 6E, and 6F, the content distribution system 30 may use an extended process flow, such as the method shown in fig. 12B. As described above, when the ad link is activated, the content distribution system 30 may receive a request from the client application that includes the ad link (852). The content distribution system 30 matches one or more aspects of the advertisement link with the advertiser account (854) and credits the retrieval event to the identified account (856). The content distribution system 30 determines revenue (or other compensation) due to the retrieval event (860), and determines a revenue share to provide to one or more of the entities identified in the advertising link. As described above, the content distribution system 30 can identify object instance records (e.g., possibly additional linked records) to identify a content owner and one or more content embedding entities, e.g., using the content identifier 579 in fig. 6E. For example, the content distribution system may access the object instance records corresponding to the content identifier 579 and scrutinize the linked chain of object instance records to identify all content embedding entities and original content uploaders/uploaders in the distribution chain. As described above, revenue generated from user clicks may be shared among one or more of the following entities: a content owner, a content embedding entity, a web application hosting entity, a content hosting entity, or an entity corresponding to the content distribution system 30. In implementations where there is rights to earnings for more than one entity, the content distribution system 30 determines revenue shares for the one or more entities (862) and credits respective accounts for the one or more identified entities according to the calculated revenue shares (864). As described above, one or more of the object instance records may include revenue allocation parameters that define how generated revenue is shared between entities. The content distribution system 30 also sends a response that includes the redirect message (858). Other implementations are possible. For example, the content distribution system 30 may only record the retrieval event and one or more entity identifiers for later batch processing.
Fig. 12C illustrates a method that may be used by the content distribution system 30 in connection with advertising links, wherein matching advertising links are automatically selected (see also fig. 6G). FIG. 13 is a block diagram illustrating an example message flow resulting from execution of the method shown in FIG. 12C. In the particular implementation shown, when an ad link is activated, content distribution system 30 receives a request including the ad link from client node 86 (852) (fig. 13, reference numeral 1). The content distribution system 30 sends a request for a matching advertisement to the advertisement search system 50 using one or more keywords in the request 872 (fig. 13, No. 2) and receives a response 874 (fig. 13, No. 3) that includes a link to the matching advertisement. Content distribution system 30 composes a redirect message and sends the redirect message to client node 86(876) (fig. 13, No. 4) causing the client node to send a request and receive a response from advertiser system 65 (fig. 12, No. 5 and 6). Other implementations and message flows are possible. For example, the content distribution system 30 and the ad search system 50 communicate indirectly through the client node 86 using redirect messages.
Content distribution system 30 may also post the retrieval event to one or more entity accounts based on the object instance records identified in the advertising link sent by client node 86 (878), and determine revenue associated with the retrieval event (880) and revenue shares for one or more of the identified entities (882). In the particular implementation shown in fig. 6G, for example, the content distribution system 30 may credit the content owner and accounts of one or more content embedding entities in the distribution chain (884).
D.3. Search links
FIG. 14 illustrates a page of search results that may result from clicking on a search link. In the particular implementation shown, the page includes a sponsored results portion that includes sponsored links 902 to advertisements, marketing, or other promotional material. According to a Pay Per Click (PPC) mechanism, sponsored link 902 incurs a fee when clicked. These fees may be shared among one or more entities associated with the content distribution system 30. In other implementations, revenue may be generated only for the presentation of sponsored search links itself, according to a pay-per-presentation (PPI) revenue model.
Fig. 15 illustrates an example message flow that may result after activation of search links similar to those shown in fig. 6H-6K, according to one particular implementation. In the search links shown in these figures, link activation causes the client node to send a search request to the search system 70 identifying one or more entities. In one implementation, the search system 70 is operable to recognize and appropriately process the content and/or entity identifiers appended to the search link. In one implementation, the search link also includes an identifier of the content distribution system 30 to allow the search system 70 to identify the content distribution system 30. This may be useful in situations where the search system 70 operates in relation to multiple content distribution systems and tracks revenue attributed to each such system.
16A, 16B, and 16C illustrate example methods that the search system 70 may use in relation to particular implementations. As shown in FIG. 16A, when the search system 70 receives a search request (942) (see FIG. 15, reference numeral 1), it generates search results that include one or more links to various network resources (946). In the particular implementation shown, at least a portion of the search results contain links to sponsored content (e.g., advertising pages, advertiser home pages, etc.). In one implementation, as described above, if a user clicks on a link, the search system 70 receives revenue from the advertiser or other business associated with the link. To allow the search system 70 to track user clicks, in one implementation, the sponsored search link includes a URL corresponding to the search system 70, and also includes encoded information that maps to the advertiser's URL. Thus, in the illustrated implementation, the search system 70 generates encoded URL identifiers for one or more URLs of sponsored search results (946), and adds these encoded URL identifiers as parameters to a redirect URL that identifies the search system 70 (948). For example, the encoded URL identifier may be one or more character strings and included in the following example URLs: http:// search. yahoo.com/_ rdrct ═ UJASf4& SIG ═ 11 aygd. In one implementation, the search system 70 stores the encoded URL identifier in association with the corresponding sponsored link for later use. After generating the one or more encoded URLs for inclusion in the search results, the search system 70 sends the results to the requesting client node (954) (see FIG. 15, reference numeral 2).
As described above, the advertisement link may include a content identifier (object instance identifier) and possibly one or more entity identifiers associated with the benefit attachment. For example, as shown in fig. 6H-6K, the links may be encoded with a content identifier and/or one or more entity identifiers that, when included in a message to the search system 70, trigger one or more processes related to the benefit assignment mechanism described herein. As shown in FIG. 16A, if the search link indicates a benefit attachment (950), then in one implementation, the search system 70 adds the content identifier and/or one or more entities identified in the search request to the corresponding encoded URL identifier returned in the search results (952). These associations may also be extended to additional encoded URL identifiers that, if the user requests additional search results,
FIG. 16B illustrates an example method that may be performed when a user clicks on a sponsored link in a set of search results. In the particular implementation shown, when the search system 70 receives a retrieval request including an encoded URL identifier (960) (see FIG. 15, reference numeral 3), it retrieves a sponsored URL or link mapped to the encoded URL identifier (962) and sends the sponsored link in a redirect message (964) (see FIG. 15, reference numeral 4), causing the client node 86 to send the request and receive a response from the advertiser system 65 (FIG. 15, reference numerals 5 and 6). In one implementation, the search system 70 may record retrieval events with only relevant data (e.g., entity identifiers) and process transactions on accounts in a separate process. In the illustrated implementation, the search system 70 determines revenue associated with the retrieval event and, in one implementation, debits or charges an account corresponding to the sponsored link returned to the user (966). If the benefit attachment is associated with the retrieval event (968), the search system 70 may credit the retrieval event to one or more entity accounts (970), determine revenue shares for the one or more entities, and credit the accounts of the one or more entities based on the revenue shares. The preceding section discusses how the search system 70 may identify one or more entities in the distribution chain and how revenue shares are determined.
Other implementations are possible, for example, the search system 70 may distribute revenue to the content distribution system 30 or credit an account of the content distribution system 30, with such a system distributing the generated revenue to one or more entities. As shown in fig. 16C, the search system may generate a retrieval event record (980) including the content and/or entity identifiers identified above, send it to the content distribution system (982) (see fig. 15, reference numeral 7), and credit the account of the benefit attachment site (984). The search system 70 may also log the retrieval event and batch it later in relation to other events. In either implementation, content distribution system 30 may then determine revenue allocations in a manner similar to the processing described above.
The invention has been described with reference to specific embodiments. For example, although embodiments of the present invention are described as operating in connection with HTML and HTTP, the present invention may be used in connection with any suitable protocol environment. Other embodiments will be apparent to those of ordinary skill in the art. Accordingly, it is not intended that the invention be limited, except as indicated by the appended claims.
Claims (18)
1.A method for distributing digital content, comprising:
receiving, by the first computing device from the second computing device, a request from the user for content embedding code identifying a digital content object on the first web page;
determining, by the first computing device, a user identifier of the user;
adding, by the first computing device, the user identifier to a distribution chain associated with the digital content object, the distribution chain including a content embedding entity that uses the digital content object;
generating, by the first computing device, content embedded code comprising machine-readable instructions for accessing the digital content object;
adding, by the first computing device, the user identifier to the content embedding code;
sending, by the first computing device, a response to the second computing device, wherein the response includes the content-embedded code, such that the second computing device is programmed to:
accessing the digital content object; and
rendering the digital content object and a distribution hyperlink associated with the digital content object on a second web page, wherein the distribution hyperlink, when activated, causes a pop-up window to appear as a distribution interface and allows subsequent users to access the distribution interface and distribute the digital content object and associated distribution hyperlink for display on other web pages.
2. The method of claim 1, further comprising:
generating an object instance record and an object instance identifier for the object instance record, wherein the object instance record identifies the digital content object and further includes the user identifier.
3. The method of claim 2, wherein the request for content embedding code identifies a second object instance record, and wherein the generating step further comprises associating the object instance record to the second object instance record.
4. The method of claim 3, wherein the object instance identifier is encoded into the distribution hyperlink.
5. The method of claim 1, wherein the content embedding code is further operable to cause the second computing device to display the hyperlink proximate to the content.
6. The method of claim 1, wherein the content embedding code is further operable to cause the second computing device to be programmed to present on the second web page an advertising hyperlink identifying a network addressable advertiser resource, wherein the advertising hyperlink, when activated, is operable to cause the second computing device to access the network addressable advertiser resource.
7. The method of claim 6, wherein the content embedding code is further operable to cause the second computing device to be programmed to render the content as a clickable area that, when clicked, is operable to cause the second computing device to access the network addressable advertiser resource.
8. The method of claim 1, wherein the content embedding code comprises HTML code.
9. The method of claim 1, wherein the content embedding code comprises a script operable to dynamically generate the distribution hyperlink.
10. The method of claim 6, further comprising:
accessing one or more tags associated with the content object; and
selecting a network addressable advertiser resource from a plurality of network addressable advertiser resources based, at least in part, on the one or more tags.
11. The method of claim 6, further comprising:
accessing one or more tags associated with the content object;
transmitting the one or more tags to a remote system, the remote system operable to select and return a network addressable advertiser resource from a plurality of network addressable advertiser resources based at least in part on the one or more tags.
12. The method of claim 6, further comprising accessing one or more tags associated with the content; and wherein the advertising hyperlink is configured to include the one or more tags.
13. The method of claim 6, wherein the advertising hyperlink, when activated, is operable to cause the second computing device to access the network addressable advertiser resource in a redirection process with a remote server.
14. The method of claim 1, wherein the content embedding code comprises a content segment comprising a content locator.
15. The method of claim 14, wherein the content segment further comprises one or more formatting parameters.
16. The method of claim 1, wherein the content embedding code further comprises a search hyperlink operable when activated to cause the second computing device to access a search system.
17. The method of claim 16, further comprising accessing one or more tags associated with the content object, and wherein the search hyperlink is configured to include the one or more tags.
18. An apparatus for distributing digital content, comprising:
a memory;
one or more processors;
logic encoded in one or more tangible media for execution and when executed operable to cause the one or more processors to:
receiving, from a remote computing device, a request from a first user for content embedding code describing a digital content object on a first web page;
determining a user identifier of the first user;
adding the user identifier to a distribution chain associated with the digital content object, such that the distribution chain includes one or more content embedding entities that use the digital content object;
generating the content embedding code comprising machine-readable instructions for accessing the digital content object;
adding the user identifier to the content embedding code;
sending a response to the computing device, wherein the response includes the content-embedded code, such that the remote computing device is programmed to:
accessing the digital content object; and
rendering the digital content object and a distribution hyperlink associated with the digital content object on a second web page, wherein the distribution hyperlink, when activated, causes a pop-up window to appear as a distribution interface and allows subsequent users to access the distribution interface and distribute the digital content object and associated distribution hyperlink for display on other web pages.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/694,638 | 2007-03-30 | ||
US11/694,638 US9996627B2 (en) | 2007-03-30 | 2007-03-30 | Point of presence distribution mechanism for digital content objects |
PCT/US2008/058502 WO2008121733A1 (en) | 2007-03-30 | 2008-03-27 | Point of presence distribution mechanism for digital content objects |
Publications (2)
Publication Number | Publication Date |
---|---|
HK1141129A1 HK1141129A1 (en) | 2010-10-29 |
HK1141129B true HK1141129B (en) | 2016-08-19 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101647041B (en) | The existence point distribution mechanisms of digital content objects | |
US8781892B2 (en) | Digital media benefit attachment mechanism | |
US8965783B2 (en) | Content-embedding code generation in digital media benefit attachment mechanism | |
US8943401B2 (en) | Script-based content-embedding code generation in digital media benefit attachment mechanism | |
JP5175299B2 (en) | Link exchange of digital media objects | |
US20090006192A1 (en) | Point of Presence Sponsorship Mechanism for Digital Content Objects | |
CN101138002B (en) | For determining the system and method for user action | |
US8473338B2 (en) | Methods and systems to facilitate keyword bid arbitrage with multiple advertisement placement providers | |
US7788130B2 (en) | Method and product for offering advertising services | |
US20090171755A1 (en) | Behavior-based generation of site-to-site referrals | |
US20100293035A1 (en) | Map advertising system interface | |
JP2001043282A (en) | Distributed data processing system | |
WO2009086014A1 (en) | Widget-assisted detection and exposure of behavioral associations | |
US20160239869A1 (en) | Various methods and apparatuses for real time bidding and optimization of video ads for organic and paid media | |
US8589223B2 (en) | Method and system for offering advertising services | |
US20070226275A1 (en) | System and method for transferring media | |
HK1141129B (en) | Point of presence distribution mechanism for digital content objects | |
HK1136677A (en) | Method and apparatus for providing links of digital media objects | |
HK1136677B (en) | Method and apparatus for providing links of digital media objects | |
HK1138655A (en) | Dynamic pricing models for digital content | |
JP2002024220A (en) | Information presenting method, network system, and network managing method |