The present invention is related to the field of ad delivery systems and is more specifically directed to methods for recommending connections within an advertising exchange.
Electronic exchanges, including online auctions, have proliferated along with the Internet. These electronic exchanges aim to provide a high degree of trading efficiency by bringing together a large number of sellers (e.g. producers in the exchange) and buyers (e.g. consumers in the exchange). Such centralized exchanges are generally focused on matching the bids and offers of buyers and sellers. Conventional transactions on the exchange are between (i) buyers and sellers, (ii) intermediaries (e.g. brokers, which may be a buyer or seller), or (iii) buyers or sellers and intermediaries.
The proliferation of Internet activity has also generated tremendous growth in advertising on the Internet. Typically, advertisers (e.g. consumers of ad space) and online publishers (e.g. producers of ad space) have agreements with one or more advertising networks (aka, ad networks), which provide for serving an advertiser's banner or ad across multiple publishers, and concomitantly provide for each publisher having access to a potentially large number of advertisers. Ad networks, may also manage payment and reporting, may also attempt to target certain users with particular advertisements to increase the likelihood that the user will take an action with respect to the advertisement.
In most advertising exchanges, publishers and advertisers form one-on-one business relationships, where the advertiser's advertisements or listings can be shown on, near, or within a publisher's published materials.
In legacy systems, establishing an ad relationship between two parties involves substantial manual processing. However with hundreds or thousands (or more), participants in a modern display advertising exchange, it is time-consuming for a participant to hunt around for other participants with whom it should connect. How does one find other entities with whom it should connect? How does one select them for making new ad relationships and/or other connections? The manual processes do not scale as the number of participants in the advertising exchange grows; however, the problem can be mitigated if there were an automated way for making recommendations of new connections in an advertising exchange.
Thus, what is needed are techniques for recommending new connections in an advertising exchange. Other automated features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows below.
A method, system and computer readable medium for recommending new connections in an advertising exchange. The method identifies participants that share some similarity (e.g. a pre-existing advertising relationship), and on the basis of the features and extent of a similarity, and then suggests or recommends other relationships that can also be shared. The method commences by enumerating a set of producer participants and by enumerating a set of consumer participants where at least two of the members of the set of consumer participants has an ad relationship to at least one of the producer participants. Then, on the basis of a selected feature quantity the extent of the similarity is calculated. When it is found that one consumer is similar to a second consumer (by virtue of at least one shared ad relationship), then the system recommends to the participants one or more additional ad relationships that can be established.
A brief description of the drawings follows:
In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to not obscure the description of the invention with unnecessary detail.
Some of the terms used in this description are defined below (in alphabetical order) for easy reference. These terms are not rigidly restricted to these definitions. A term may be further defined by the term's use in other sections of this description.
“Ad” (e.g. ad, item and/or message) means a paid announcement, as of goods or services for sale, preferably on a network such as the internet. An ad may also be referred to as an item and/or a message.
“Ad call” means a message sent by a computer to an ad server for requesting an ad to be displayed.
“Ad click-through rate” (e.g. click-through rate) means a measurement of ad clicks per a period of time.
“Ad server” is a server that is configured for serving one or more ads to user devices. An ad server is preferably controlled by a publisher of a website and/or an advertiser of online ads. A server is defined below.
“Advertiser” (e.g. messenger and/or messaging customer, etc) means an entity that is in the business of marketing a product and/or a service to users. An advertiser may include, without limitation, a seller and/or a third-party agent for the seller. An advertiser may also be referred to as a messenger and/or a messaging customer. Advertising may also be referred to as messaging.
“Advertising” means marketing a product and/or service to one or more potential consumers by using an ad. One example of advertising is publishing a sponsored search ad on a website.
“Application server” is a server that is configured for running one or more devices loaded on the application server. For example, an application server may run a device configured for deducing shadow profiles.
“Click” (e.g. ad click) means a selection of an ad impression by using a selection device such as, for example, a computer mouse or a touch-sensitive display.
“Client” means the client part of a client-server architecture. A client is typically a user device and/or an application that runs on a user device. A client typically relies on a server to perform some operations. For example, an email client is an application that enables a user to send and receive email via an email server. In this example, the computer running such an email client may also be referred to as a client.
“Conversion” (e.g. ad conversion) means a purchase of a product/service that happens as a result of a user responding to an ad and/or a coupon.
“Database” (e.g. database system, etc) means a collection of data organized in such a way that a computer program may quickly select desired pieces of the data. A database is an electronic filing system. In some instances, the term “database” is used as shorthand for a “database management system”. A database may be implemented as any type of data storage structure capable of providing for the retrieval and storage of a variety of data types. For instance, a database may include one or more accessible memory structures such as a CD-ROM, tape, digital storage library, flash drive, floppy disk, optical disk, magnetic-optical disk, erasable programmable read-only memory (EPROM), random access memory (RAM), magnetic or optical cards, etc.
“Device” means hardware, software or a combination thereof. A device may sometimes be referred to as an apparatus. Examples of a device include, without limitation, a software application such as Microsoft Word™ or a database; or hardware such as a laptop computer, a server, a display; or a computer mouse and/or a hard disk.
“Impression” (e.g. ad impression) means a delivery of an ad to a user device for viewing by a user.
“Item” means an ad, which is defined above.
“Message” means an ad, which is defined above.
“Messaging” means advertising, which is defined above.
“Network” means a connection, between any two or more computers, that permits the transmission of data. A network may be any combination of networks including, without limitation, the internet, a local area network, a wide area network, a wireless network, and/or a cellular network.
“Publisher” means an entity that publishes, on a network, a web page having content and/or ads, etc.
“Server” means a software application that provides services to other computer programs (and their users) on the same computer or on another computer or computers. A server may also refer to the physical computer that has been set aside to run a specific server application. For example, when the software Apache HTTP Server is used as the web server for a company's website, the computer running Apache may also be called the web server. Server applications may be divided among server computers over an extreme range, depending upon the workload.
“Software” means a computer program that is written in a programming language that may be used by one of ordinary skill in the art. The programming language chosen should be compatible with the computer on which the software application is to be executed and, in particular, with the operating system of that computer. Examples of suitable programming languages include, without limitation, Object Pascal, C, C++ and/or Java. Further, the functions of some embodiments, when described as a series of steps for a method, could be implemented as a series of software instructions for being operated by a processor such that the embodiments could be implemented as software, hardware, or a combination thereof. Computer-readable media are discussed in more detail in a separate section below.
“System” means a device or multiple coupled devices. A device is defined above.
“User” (e.g. consumer, etc) means an operator of a user device. A user is typically a person who seeks to acquire a product and/or service. For example, a user may be a woman who is browsing Yahoo!™ Shopping for a new cell phone to replace her current cell phone. The term “user” may also refer to a user device, depending on the context.
“User device” (e.g. computer, user computer, client and/or server, etc) means a single computer or a network of interacting computers. A user device is a computer that a user may use to communicate with other devices over a network, such as the internet. A user device is a combination of a hardware system, a software operating system, and perhaps one or more software application programs. Examples of a user device include, without limitation, a laptop computer, a palmtop computer, a smart phone, a cell phone, a mobile phone, an IBM-type personal computer (PC) having an operating system such as Microsoft Windows™, an Apple™ computer having an operating system such as MAC-OS, hardware having a JAVA-OS operating system, and/or a Sun Microsystems™ workstation having a UNIX operating system.
“Web browser” means a software program that may display text or graphics or both, from web pages on websites. Examples of a web browser include, without limitation, Mozilla Firefox™ and Microsoft Internet Explorer™.
“Web page” means documents written in a mark-up language including, without limitation, HTML (hypertext mark-up language), VRML (virtual reality modeling language), dynamic HTML, XML (extensible mark-up language), and/or other related computer languages. A web page may also refer to a collection of such documents reachable through one specific internet address and/or through one specific website. A web page may also refer to any document obtainable through a particular URL (uniform resource locator).
“Web portal” (e.g. public portal) means a website or service that offers a broad array of resources and services such as, for example, email, forums, search engines, and online shopping malls. The first web portals were online services, such as AOL, that provided access to the web. However, now, most of the traditional search engines (e.g. Yahoo!™) have transformed themselves into web portals to attract and keep a larger audience.
“Web server” is a server configured for serving at least one web page to a web browser. An example of a web server is a Yahoo!™ web server. A server is defined above.
“Website” means one or more web pages. A website preferably includes a plurality of web pages virtually connected by links or URL addresses to form a coherent group.
As indicated, what is needed are techniques for recommending new connections in an advertising exchange. Thus, below is described an advertising exchange, and components of a system that mines data (e.g. logs) for use in generating recommendations for publishers (to connect with advertisers) and for generating recommendations to advertisers (to connect with publishers). The systems described include an automated system which can recommend new connections for a publisher or an advertiser without any human intervention. This capability is motivated by the need for higher liquidity in the transactions within the advertising exchange, which higher liquidity can result in higher business performance for the exchange participants.
Even in the presence of an exchange (further described below), in some cases, online advertising markets exhibit undesirable inefficiencies when buyers and sellers are unable to identify each other for engaging in transactions. For instance, although a publisher may be subscribed to many ad networks, and one or more of those ad networks may transact inventory with other ad networks, it might be that only one of the ad networks to which the publisher is subscribed is involved in selling (or auctioning) a given ad space for the publisher. One approach is to allow an intermediary (e.g. an agency) into the ecosystem, where that intermediary is suited to find, select, and prioritize the inventory of ad calls on behalf of the agency's client.
In an alternate scenario, it happens that in some cases, although an advertiser may be subscribed to many ad networks, and one or more of those ad networks may transact advertising placements with other ad networks, it might be that only one of the ad networks to which the advertiser is subscribed is involved in offering ad space suitable for the advertiser's placements. Again, one approach is to allow an intermediary (e.g. an agency) into the ecosystem, where that intermediary is suited to find, select, and prioritize ad placements on behalf of the agency's client.
As indicated above, some embodiments of the invention operate within the context of an advertising exchange. More specifically, descriptions of embodiments of the invention involve advertising exchange concepts and include descriptions of network entities, an agency, an agency-on-exchange, an agency-within-ad-network, an agency-as-ad-network, and ad relationships (e.g. contracts, links, deals, and revenue sharing, etc).
Further, within the context of the foregoing embodiments, techniques disclosed herein facilitates new capabilities for network entities to establish relationships, and to conduct transactions while observing required functionalities, protections, and billing and reporting systems. These techniques are further described below.
Advertising exchange network entities as discussed herein include real companies with real people making decisions and/or taking action on behalf of the entity or the entity's clients. In an active ecosystem, advertising exchange network entities seek to establish business relationships with other entities on the exchange (again, such entities comprising real companies with real people). More specifically, advertising exchange network entities can enter into advertising-related business deals and form advertising relationships with other entities on the exchange. Using the techniques described herein, a network entity's ad relationships can be represented as data items to be shared among the entities involved in a given transaction or series of transactions. As used within the context of the embodiments of the invention herein, these ad relationships (e.g. contracts, links, and deals, etc.) allow network entities to: (a) be granted access to certain ad network-related data pertaining to client accounts (e.g. an advertiser, a publisher), (b) specify a revenue sharing model for remuneration, and (c) act as a proxy for any invoicing and payments on behalf of their clients.
In a modern internet advertising system, there may be many thousands or hundreds of thousands (or more) entities, and the entities may conduct internet advertising business using a network exchange. As used herein, a network exchange serves to facilitate placement-related communication (e.g. which advertisements to place at what times) and a network exchange may also serve to facilitate business transactions (e.g. recording of occurrences of and characteristics of transactions). Embodiments of the invention herein provide for representing a network entity as an exchange seatholder, and such a seatholder may participate within the exchange by performing transactions through or with other exchange seatholders.
Network entities (e.g. seatholders, publishers, advertisers and agencies) enter into business relationships. As earlier indicated, in legacy practice, forming such relationships is a manual process, and consumes manpower and other resources in order to identify the party or parties with whom a new business relationship might be established, and as internet advertising grows in popularity, so does the need for establishing such business relationships. However, given the existence of many thousands or hundreds of thousands (or more) entities, the deployment of filtering-out techniques, or selecting-in techniques, or other techniques to identify suitable entities with whom to do advertising business becomes paramount.
Embodiments herein analyze various internet advertising datasets in order to make recommendations to an entity regarding which other entities might be candidates for a business relationship. Such a recommendation can be used to identify potential new relationships and suggest those recommended new relationships to the account managers. Additional business relationship within the exchange will allow the network to become more connected, thereby increasing liquidity and competition in the marketplace, and thereby increasing the volume of transactions possible.
So, with the above definitions, and for the purposes of understanding the disclosure herein, an ad delivery transaction on the exchange can be represented on a directed graph such as is shown in
Now, for any ad delivery transaction, there may be zero, one, or more hops, and as introduced above, each hop has a producer (e.g. a seller) and a consumer (e.g. a buyer) and may also have an intermediary or agency. And, in some cases (as shown) an intermediary may serve as both a seller and as a buyer). Accordingly, a hop represents a transactional ad relationship between a buyer and a seller, even if not the original buyer and original seller. Such relationships may include an ad contract, a link, and possibly also a deal. Collectively these relationships as represented on the directed graph are known as ad relationships.
Agencies are entities on the exchange that perform activities on behalf of their customers. For example, a particular agency might represent a group of advertisers. Or a particular agency might represent a group of publishers. Such agencies have business relationships (e.g. under an ad relationship or an ad contract) with their constituents (e.g. their clients) to perform certain activities on behalf of their clients, and such activities can include actions to:
Place orders
Manage campaigns
Create ads
Manage links
Manage deals
Manage sites
View and interpret reports
Participate in billing and payment
Agencies may want to cooperate with other agencies, and may wish to establish interrelationships with other agencies or, more generally, may wish to establish interrelationships (e.g. ad relationships, ad contracts, deals, links) with other agencies. More specifically, an agency might be specialized in a certain advertising area, and might focus business operations on behalf of advertisers. Or, an agency might be specialized in a publishing area, and might focus business operations on behalf of publishers. As used herein, the term managing publisher (MP) refers to activities of an agency when representing one or more publishers. Similarly, the term managing advertiser (MA) refers to activities of an agency when representing one or more advertisers.
Thus, managing advertisers may want to establish ad relationships with managing publishers, and managing publishers may wish to establish ad relationships with managing advertisers. In fact, any managing entity may wish to establish interrelationships with any other managing entity(ies). More specifically, a managing entity may desire to establish interrelationships with other managing entities with whom a business relationship is likely to result in many transactions.
An exchange can be formed by exchange seatholders, which in turn (and as shown) serve one or more agencies for the trading/matching of advertising placement opportunities, and advertising to fill such placement opportunities. Inasmuch as an agency performs actions on behalf of other entities on the exchange, various instruments are used in the provision of agency services. For example:
Continuing with the description of
Strictly as one example for recommending advertisers to publishers, embodiments herein mine impression logs to identify advertisers whose ads appear in a given publisher's impressions. As another example for recommending publishers to advertisers, embodiments herein mine advertisement logs to identify the publishers responsible for the content where a given advertiser's ads appear. In such cases of data mining existing log databases, the data mined represents activities pursuant to existing connections. For making a publisher recommendation, embodiments herein can compare a given publisher with other publishers and find other publishers who are “similar” to the given publisher. Then, embodiments perform further processing to identify connections from where those other “similar” publishers are getting their advertisement traffic. If there are connections (e.g. to advertisers) from which the other similar publishers are getting advertisement traffic, then those advertisers become possible candidates for a recommendation. Considering a recommendation of a publisher to an advertiser, embodiments herein can compare a given advertiser with other advertisers and find other advertisers who are “similar” to the given advertiser. Then, embodiments perform further processing to identify connections where those other “similar” advertisers are placing their advertisement spots. If there are connections (e.g. to publishers) from which the other similar advertisers are placing advertisement traffic, then those publishers become possible candidates for a recommendation.
These producer-to-advertiser vectors are merely exemplary, and illustrative as pertains to a publisher-to-advertiser relationship; however, the reverse relationship can be represented as an advertiser-to-producer vector 273. Or, a buyer-to-seller vector 274 can be similarly represented, or, a producer-to-consumer vector 275 can be similarly represented.
Still more, any feature of an ad relationship between any ecosystem participant (e.g. a publisher, advertiser, buyer, seller, agency, producer, consumer, etc) can be represented as a comparison vector 276 having a vector ID (e.g. V1 as shown) and one or more instances of a feature quantity 277. Such features can be used as criterion for comparisons between entities using the feature vectors. Vectors can be used to characterize features as relates one type of ecosystem participant to another type of ecosystem participant, and pairs of vectors can be compared for similarities (see the discussion of
In fact, any group of ecosystem participants (e.g. a publisher, advertiser, buyer, seller, agency, producer, consumer, etc) having some like characteristics can be enumerated into a first set, and a second group of ecosystem participants (e.g. a publisher, advertiser, buyer, seller, agency, producer, consumer, etc) having some other like characteristics can be enumerated into a second set, and a corresponding vector can be defined for relating the members of the second set to members of the first set based on a particular feature (or features). For example, an agency-to-publisher vector (or a publisher-to-agency vector, etc) can be defined to relate the publisher to the agency based on a feature (e.g. impression traffic or ad call traffic). Such a vector is comprised of one or more instances of a feature quantity 277, whereby the feature quantities relate members of the second set of ecosystem participants to the first set of ecosystem participants. Analysis of pairs of vectors (e.g. pair of advertiser-to-producer vectors) can result in identification of similarities among the paired advertisers, and the extent of the similarities can then be used to rank recommendations as pertains to the selected feature (e.g. recommending a producer to an advertiser). The various data collection operations, data mining, feature extraction, vector definition, similarity analysis, and other processing tasks for making a recommendation can be practiced within a networked system for online advertising.
An advertiser might receive results from a forecasting module 311 that considers forecasts from all publisher's in the advertiser's subnet. In some cases the returned forecast might be deemed to be too small (from the advertiser's perspective) and the advertiser might desire to receive a forecast that is derived from other publishers—that is, a forecast that considers publishers beyond those publishers in the subnet. As can be understood, the existence of the exchange 205 (as shown in
However, in embodiments of the system and method for recommending new connections in an advertising exchange disclosed herein, the advertiser might follow such recommendations and establish a business-wise relationship (e.g. an ad relationship, or a contract) suitable for covering the commercial aspects of placing the advertiser's advertisement in impressions from the recommended publisher's website.
For dealing with making such recommendations, systems within an advertising server network environment 300 can consider a range of values or features when recommending new connections in an advertising exchange. For example, and again referring to
There can be many quantitative features of a relationship. For example, a recommendation might be based on one or more quantitative aspects of traffic (e.g. number of ad calls per day), quantitative aspects of users (e.g. number of user visits per day who express an interest in “automobiles”), quantitative aspects of campaigns (e.g. number of clicks or number of conversions on an advertisement), etc. Table 1 provides examples.
As can be seen from the examples of Table 1, the capture of various data over time during the prosecution of an advertising campaign can facilitate the use of quantitative features pertaining to a relationship. Collection of such data is facilitated by the collection of modules shown in
Embodiments of a seatholder dashboard module 317 can comprise a feature selection capability (e.g. see feature selection module 318), and a filter-out capability (e.g. threshold selection module 319). A seatholder dashboard module 317 can comprise or communicate with a recommender module 314. The exchange management module 316, using any combination of its constituent components can produce a recommendation database 390.
Again referring to
In embodiments of the systems within an advertising server network environment 300, components of the ad network server can perform processing such that, given an advertisement opportunity, an advertisement serving module 313 determines which (if any) advertisement(s) match the advertisement opportunity. The data storage and access server 340 can host any one or more databases. For example, the data storage and access server 340 can host an ad relationship graph database 260, an impression log database 360, a campaign log database 370, an ad log database 380, and a recommendation database 390. As shown, the application server 335 can host a plurality of modules and data structures, for example a vector pair computation module 322 and/or paired vector similarity module 326.
In some embodiments, the advertising server network environment 300 might host an exchange management module 316, which in turn can cooperatively communicate with, or assemble data from, a variety of modules to serve as management and control operations (e.g. a seatholder dashboard module 317, a forecasting module 311, a recommender module 314, a feature selection module 318, etc) pertinent to defining and managing campaigns within an advertising exchange. In particular, the modules, network connections, algorithms, assignment techniques, serving policies, and data structures embodied within the advertising server network environment 300 might be specialized so as to perform a particular function or group of functions reliably while observing capacity and performance requirements. Moreover, some processing can reasonably be performed in batch mode, or “off-line”, while other processing can be performed interactively. Table 2 shows some examples.
Continuing, operation 4A20 serves for selecting a similarity function for comparing two comparison vectors in order to determine a similarity magnitude. As can be observed, the vectors shown in Table 3 are multi-dimensional vectors (in this case 5 dimensions), and comparison of any two vectors for their similarity (or proximity in multi-dimensional space) can be given by well known techniques. In this example, let Aj be VP1, and let Ak be VP2, and let i vary over the range [A1, A2, A3, A4, A5]. Then, using as known in the art as a cosine similarity measure, the similarity (e.g. comparison value ccos jk) can be calculated using the formula:
The cosine similarity measure is not the only similarity (dis-similarity) measure known in the art, and other similarity measures are reasonable and envisioned. Moreover, the selection of Aj as assigned to VP1, and the selection of Ak as assigned to VP2 is but one example of a selection of a pair of comparison vectors. Also, some similarity measures include single scalar magnitudes, multiple scalar magnitudes, and vector similarity measures. In various embodiments, a plurality of pairs are selected for similarity comparison. In one embodiment, all unique pairs are selected, and the similarity of each unique pair is computed (see operation 4A30). In another embodiment, only a subset of pairs are selected for similarity comparison. Again, the similarity calculation using the cosine similarity measure is not the only technique for determining the similarity, and other techniques are known, reasonable, and envisioned. For example, Another similarity measure that can be used is the Jaccard Coefficient (also sometimes known as the Jacquard Coefficient). The Jaccard coefficient measures similarity between sample sets, and is defined as the size of the intersection divided by the size of the union of the sample sets. Given sets A and B, the Jaccard Coefficient, J(A,B) is given as:
Following the example of Table 3, the computation of similarity of all unique pairs results in a set of magnitudes, as is shown in Table 4.
Now, having a similarity magnitude for each unique comparison pair, as in the set {MP1P2, MP2P3, MP1P3} the magnitudes can be ranked or compared against a threshold value, and only those comparison pairs that pass the threshold test are further considered (see operation 4A40). Continuing this example, suppose publisher P2 and publisher P3 are deemed to be similar (e.g. if MP2P3 passes any threshold test), then recommendations can be made. Intuitively, if publisher P2 is similar to publisher P3, and publisher P3 enjoys an ad relationship with advertiser A5 (but publisher P2 does not enjoy an ad relationship with advertiser A5) then a recommendation to P2 to establish an ad relationship with A5 can be made (see operation 4A50). Stated slightly differently, if publisher P2 is similar to publisher P3, and publisher P3 enjoys an ad relationship with advertiser A5 (but publisher P2 does not enjoy an ad relationship with advertiser A5) then a recommendation to A5 to establish an ad relationship with P2 can be made.
Continuing, operation 4B20 serves for selecting a similarity function for comparing two comparison vectors in order to determine a similarity magnitude. As can be observed, the vectors shown in Table 5 are multi-dimensional vectors (in this case three dimensions), and comparison of any two vectors for their similarity (or proximity in multi-dimensional space) can be given by well known techniques. In this example, let Aj be VA1, and let Ak be VA2, and let i vary over the range [P1, P2, P3]. Then, the similarity (e.g. comparison value ccos jk) can be calculated the following formula (or other formula or algorithm):
The cosine similarity measure is not the only similarity (dis-similarity) measure known in the art and other similarity measures are reasonable and envisioned. Moreover, the selection of Aj as assigned to VA1, and the selection of Ak as assigned to VA2 is but one example of a selection of a pair of comparison vectors. Also, some similarity measures include single scalar magnitudes, multiple scalar magnitudes, and vector similarity measures. In various embodiments, a plurality of pairs are selected for similarity comparison. In one embodiment, all unique pairs are selected, and the similarity of each unique pair is computed (see operation 4B30).
Now, having a similarity magnitude for each unique comparison pair, the magnitudes can be ranked or compared against a threshold value, and only those comparison pairs that pass the threshold test are further considered (see operation 4B40). Continuing this example, suppose advertiser A1 and advertiser A2 are deemed to be similar (e.g. if the similarity magnitude passes any threshold test), then recommendations can be made. Intuitively, if advertiser A1 is similar to advertiser A2 and advertiser A2 enjoys an ad relationship with publisher P2 (but advertiser A1 does not enjoy an ad relationship with publisher P2) then a recommendation advertiser A1 to establish an ad relationship with publisher P2 can be made (see operation 4B50).
Stated slightly differently, if advertiser A1 is similar to advertiser A2 and advertiser A2 enjoys an ad relationship with publisher P2 (but advertiser A1 does not enjoy an ad relationship with publisher P2) then a recommendation to publisher P2 to establish an ad relationship with advertiser A1 can be made (see operation 4B50).
The aforementioned techniques can be applied to making any sort of ecosystem participant recommendations to any other ecosystem participant. Although the foregoing examples emphasize the application of the recommendation techniques to publishers and advertisers, other recommendations are also possible. In particular, advertisers are often represented by an advertising agency, and the agency serves as the managing entity for the advertiser (MA). Similarly, some publishers are managed by an aggregator and the aggregator serves as the managing entity for the publisher (MP). Still further, many participants, including publishers, advertisers, MAs, MPs, and other participants can be subsumed into an advertising network, which could in turn be managed by an advertising network manager (MAN). As in earlier embodiment descriptions, the comparison vector can be comprised of any arbitrary feature of the constituent participants in the MAN, and a MAN can act in a multiplicity of roles, including a MAN serving in the capacity of a MA, and/or a MAN can act by serving in the capacity of a MP.
Such a selection of any arbitrary features to be included in the comparison vector can be repeated such that a recommendation can be made on the basis of multi-dimensional similarity, possibly including a weighting scheme whereby a first dimension (e.g. a selected feature) is weighted differently than a second dimension.
Further, the confidence of a valid similarity determination can be performed using statistical techniques known in the art. Moreover, additional statistical techniques can be applied in order to measure the accuracy of the similarity determination, for example, using statistical measures of precision and recall.
Further describing the example of
The recommending step can come in many forms, including advising a real person. In other embodiments, the action of recommending includes creating one or more pro-form a contracts (e.g. ad contracts, deals, links, etc) between the participants involved in the recommendation. Recommendations can be conveyed to a person on demand (e.g. where the person submits a query, and the results are provided to the person). Or, on a reoccurring basis, embodiments disclosed herein can inform a real person (e.g. whenever a configuration change occurs, whenever a new possible connection appears in the result set, etc). The recommendation information can be conveyed via a web page that a person (e.g. an ecosystem participant) visits. Still more, such a system can perform an on-demand/immediate analysis and invoke modules for generating results, or it can retrieve stored results from a cache that is periodically updated. Even still more, results of a recommending step can used to automatically generate contract forms and forward such contract forms to participants.
Any node of the network 700 may comprise a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof capable to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g. a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration, etc).
In alternative embodiments, a node may comprise a machine in the form of a virtual machine (VM), a virtual server, a virtual client, a virtual desktop, a virtual volume, a network router, a network switch, a network bridge, a personal digital assistant (PDA), a cellular telephone, a web appliance, or any machine capable of executing a sequence of instructions that specify actions to be taken by that machine. Any node of the network may communicate cooperatively with another node on the network. In some embodiments, any node of the network may communicate cooperatively with every other node of the network. Further, any node or group of nodes on the network may comprise one or more computer systems (e.g. a client computer system, a server computer system) and/or may comprise one or more embedded computer systems, a massively parallel computer system, and/or a cloud computer system.
The computer system 750 includes a processor 708 (e.g. a processor core, a microprocessor, a computing device, etc), a main memory 710 and a static memory 712, which communicate with each other via a bus 714. The machine 750 may further include a display unit 716 that may comprise a touch-screen, or a liquid crystal display (LCD), or a light emitting diode (LED) display, or a cathode ray tube (CRT). As shown, the computer system 750 also includes a human input/output (I/O) device 718 (e.g. a keyboard, an alphanumeric keypad, etc), a pointing device 720 (e.g. a mouse, a touch screen, etc), a drive unit 722 (e.g. a disk drive unit, a CD/DVD drive, a tangible computer readable removable media drive, an SSD storage device, etc), a signal generation device 728 (e.g. a speaker, an audio output, etc), and a network interface device 730 (e.g. an Ethernet interface, a wired network interface, a wireless network interface, a propagated signal interface, etc).
The drive unit 722 includes a machine-readable medium 724 on which is stored a set of instructions (i.e. software, firmware, middleware, etc) 726 embodying any one, or all, of the methodologies described above. The set of instructions 726 is also shown to reside, completely or at least partially, within the main memory 710 and/or within the processor 708. The set of instructions 726 may further be transmitted or received via the network interface device 730 over the network bus 714.
It is to be understood that embodiments of this invention may be used as, or to support, a set of instructions executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine- or computer-readable medium. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g. a computer). For example, a machine-readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical or acoustical or any other type of media suitable for storing information.
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.