HK1167276B - Content delivery systems and methods - Google Patents
Content delivery systems and methods Download PDFInfo
- Publication number
- HK1167276B HK1167276B HK12107958.1A HK12107958A HK1167276B HK 1167276 B HK1167276 B HK 1167276B HK 12107958 A HK12107958 A HK 12107958A HK 1167276 B HK1167276 B HK 1167276B
- Authority
- HK
- Hong Kong
- Prior art keywords
- content
- advertisement
- user
- advertisements
- electronic
- Prior art date
Links
Description
Copyright authorization
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office patent file or records, but otherwise reserves all copyright rights whatsoever.
Cross Reference to Related Applications
The present application claims priority to provisional application No. 61/180,359 filed on day 5/21 2009 in 2009, and is a continuation-in-part application of U.S. application No. 12/433,881 ("881 application") filed on day 4/30 in 2009, which' 881 application claims priority to provisional applications nos. 61/049,030 filed on day 4/30 in 2008, 61/075,304 filed on day 6/24 in 2008, and 61/074,995 filed on day 6/23 in 2008, all of which are incorporated herein by reference.
Background
With the global improvement of electronic communication infrastructures, digital content distribution is rapidly evolving under the push of efficient digital media formats, the economic framework of digital storage technologies, and peer-to-peer and group-oriented social networking. For example, while internet TV and mobile TV offer new video distribution capabilities, the most important aspect of both technologies may be the ability to link to many other internet-based services. In a preferred embodiment of the current work agent, the content distribution technology links to an advertising service to support digital content distribution.
Advertisement-based content distribution systems give the following hopes: advertisements may sponsor not only content production but also the service that distributes the content and the equipment on which the content is rendered. However, despite the ability of the average consumer to consume large amounts of content, if an advertisement is to sponsor a full distribution chain, the advertisement still needs to be delivered efficiently and well-matched to the consumer in a highly reliable and measurable manner. That is, each opportunity for an ad impression should be optimized to ensure that the ad matches well with the consumer's current interests and to minimize the overhead for delivering the ad and generating the match.
Disclosure of Invention
Embodiments of the systems and methods described herein enable content distribution monetization by efficiently matching user-targeted advertisements at content consumption times and/or points. The content item and the advertisement may be superdistributed independently or via conventional commercial methods. An efficient mechanism is employed to ensure that advertisements that are well targeted to a consumer sponsor this usage event when the consumer uses the content online or offline and that the event optimally compensates the content provider or distributor and other stakeholders participating in adding value to the system. The preferred embodiments provide the ability to efficiently automate and scale for use with a wide variety of content distribution services, advertising services, presentation applications, and device types. In some embodiments, an efficient feedback mechanism may be used to allow optimization of targeting, real-time matching, and auction mechanisms.
Drawings
The working body of the invention will be readily understood by reference to the following detailed description in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates an example of a system for distributing advertisements and content in accordance with some embodiments.
FIG. 2 illustrates a more detailed example of a computer system that may be used to implement some embodiments.
FIG. 3 illustrates an example of a method for delivering, selecting, and presenting advertisements.
Fig. 4 is a high-level illustration of the various players and the interfaces provided to them in the preferred embodiment.
FIG. 5 illustrates a content deployment scenario in one embodiment.
FIG. 6 illustrates an advertisement deployment scenario in accordance with one embodiment.
FIG. 7 illustrates dynamic selection of advertisements.
Figure 8 illustrates an audit report according to one embodiment.
FIG. 9 illustrates various system components and message interactions therebetween in an example embodiment.
Fig. 10 shows an example of the different types of devices supported by the preferred embodiment.
FIG. 11 illustrates the use of server-side and matching to pre-filter advertisements for a device.
FIG. 12 illustrates an example advertisement tag taxonomy.
FIG. 13 illustrates some examples of governing associations in an example embodiment.
Fig. 14 shows an example of a piece of content divided into sections.
Fig. 15 shows another example of a piece of content divided into sections.
FIG. 16 illustrates a piece of media content formatted in accordance with the dynamic media segment technique.
FIG. 17 illustrates the integration of a piece of content with an advertisement using dynamic media segment techniques.
FIG. 18 illustrates an example media player for use in some embodiments.
FIG. 19 illustrates an advertisement matching process in accordance with one embodiment.
FIG. 20 illustrates a process for monetizing content distribution.
Detailed Description
The following provides a detailed description of the working subject of the present invention. While several embodiments have been described, it should be understood that the inventive body of work is not limited to any one embodiment, but instead encompasses numerous alternatives, modifications, and equivalent embodiments. Furthermore, while numerous specific details are set forth in the following description in order to provide a thorough understanding of the working subject of the invention, some embodiments may be practiced without some or all of these details. In addition, for the purpose of clarity, certain technical material that is known in the related art has not been described in detail so as not to unnecessarily obscure the working main body of the present invention.
Described herein are systems and methods for facilitating electronic content delivery, comprising: other systems and methods for rule-based media advertising using a digital rights management ("DRM") engine, such as described in commonly assigned U.S. patent application No. 11/583,693 (publication No. 2007/0180519a1) ("the '693 application"), dynamic media segment techniques described in commonly assigned U.S. patent application No. 12/178,543 (publication No. 2009/0031431a1) ("the' 543 application"), the advertising targeting techniques described in the ' 881 application and/or the DRM and service orchestration (authorization) techniques described in commonly assigned U.S. patent application publication No. 2005/0027871 ("the ' 551 application") having application number 10/863,551, which are used to provide advertising or other content to end users (the contents of the ' 693 application, the ' 543 application, and the ' 551 application) are incorporated herein by reference in their entirety). It will be appreciated that these systems and methods are novel as to the many components, systems and methods employed therein.
Preferred embodiments may provide some or all of the following features:
● provide advertisers with a high return on investment ("ROI") by giving efficient advertising markets with efficient mechanisms for targeted advertisement distribution and by matching advertisements to users with relevant attributes, thereby avoiding wasting inappropriate impressions.
● minimize distribution costs by providing an automated marketplace for content distribution and peer-to-peer ("P2P") superdistribution to a number of different devices through a number of different services and maximizing revenue for content providers by ensuring that ad slots needed for content are filled at presentation time and/or location with the most valuable ads provided to the content provider/distributor.
● provide a two-stage user targeting in which a first stage matches content with consumers when advertising content is delivered to a device or other user accessible delivery point, while a second stage uses more granular information about consumers (e.g., information about time, place, environment, interests, usage data, demographics, recent history, etc.) to select particular advertisements for presentation at the time of content presentation.
● provide suggestions for increasing effectiveness for near real-time statistics regarding effectiveness of an advertising campaign.
● provide service providers with incentives to distribute advertisements, content, and performance techniques.
● provide rewards for services that assist in securely and privately associating consumers with relevant attributes that can be used to optimize advertisement selection.
● ensure consumer privacy by using an advertisement matching mechanism on the consumer's device or on a trusted web-based agent for the user's device that does not reveal the consumer's private attribute information.
In a preferred embodiment, a scalable platform for targeted advertising is provided. The platform is compatible with conventional advertisement matching technology and extends them by extending their use beyond internet advertising. Similarly, the platform is designed to work seamlessly with existing content distribution and advertising distribution mechanisms and provide an effective feedback mechanism from the client, thereby achieving optimal rewards for all stakeholders.
FIG. 1 illustrates an example of a system for distributing advertisements 104 and content 108 in accordance with some embodiments of the inventive work body. As shown in FIG. 1, a user's system 101 receives a variety of advertisements 104a, 104b, 104c, 104d, 104e from a variety of advertisement providers 102a, 102b, 102 c. The user's system 101 also receives a variety of content items 108a, 108b, 108c, 108d from a variety of content providers 106a, 106b, 106 c. As the user utilizes a piece of content 108d, the user's system dynamically selects the optimal advertisement 104e from the advertisements 104a-104e it previously received and presents the advertisement 104e to the user along with the piece of content 108 d. Information about the user, the user's device, and the user's content preferences and content usage habits may be used in the advertisement selection process. Further, information regarding which advertisements to present may be collected and sent to a settlement facility (e.g., settlement facility 110 or another settlement facility) to facilitate providing payment or other compensation from advertisers 102 to content owners 106. Alternatively, or in addition, such information may be sent directly from the user's device to content provider 106 and/or advertisement provider 102.
Content provider 106 may include a content owner, creator, or distributor such as a musician, movie studio, publisher, software company, author, mobile service provider, internet content download or subscription service, cable or satellite television provider, company employee, etc., or an entity acting on behalf thereof, while content 108 may include any electronic content such as digital video, audio or text content, a movie, a song, a video game, a piece of software, an email message, a text message, a word processing document, a web page, a report, an e-book or a periodical, or any other entertainment, business, or other content.
In the example shown in FIG. 1, entities 102 and 106 associate license 103 with content 108 and/or advertisement 104. The license 103 is based on the policy or other desires of the entities 102, 106 and specifies permission and/or prohibition of use of the associated content or advertisement and/or specifies one or more conditions that must be met in order to utilize the content or advertisement or that must be met as a result or condition of use. In one embodiment, the license 103a may specify whether a recipient (recipient) of the content item 108a is required to view the advertisement, and if so, specify criteria that the advertisement must satisfy in order to be selected. Similarly, the permissions 103a associated with a particular advertisement 104a or a group or class of advertisements may specify the type of content with which the advertisement may be played or otherwise integrated and/or a reward or other compensation that the entity 102a is willing to provide if the advertisement 104a is integrated with a particular type of content 108.
Content 108, advertisement 104, and/or license 103 may be protected by one or more cryptographic mechanisms, such as encryption or digital signature techniques or any other security protection specified by the digital rights management system (if any) used, and appropriate cryptographic keys, certificates, etc. may be provided by trusted authority 110.
May be provided by any suitable means, such as via a network like the internet, a local area network, a wireless network, a virtual private network, a wide area network, etc.; via cable, satellite, broadcast, or cellular communication; and/or provide protected content 108, advertisements 104, and/or licenses 103 to end user 101 via recordable media such as Compact Discs (CDs), Digital Versatile Discs (DVDs), blu-ray discs, flash memory cards (e.g., Secure Digital (SD) cards), and so forth. Content 108 may be delivered to the user in a single package or transmission along with license 103 or in separate packages or transmissions received from the same or different sources.
The end-user's system 101 (e.g., personal computer, mobile phone, television and/or television set-top box, portable audio and/or video player, e-book reader, etc.) contains application software, hardware, and/or dedicated logic operable to retrieve and render content 108. As described in more detail below, the user's system also preferably includes software and/or hardware (referred to herein as a digital rights management engine) for evaluating the license 103 associated with the content 108 and/or the advertisement 104 and enforcing the terms thereof (and/or enabling the content rendering application to enforce such terms), as well as software and/or hardware for selecting appropriate advertisements for rendering in connection with the use of the content 108 and collecting and reporting information related thereto.
The digital rights management engine and/or the advertisement matching engine may be structurally or functionally integrated with each other and/or with the content rendering application or may comprise separate software and/or hardware blocks. Alternatively or in addition, the user's system may communicate with a remote system (e.g., a server, another device in the user's network of devices, such as a personal computer or television set-top box, etc.) that uses a digital rights management engine and/or an advertisement matching engine to determine whether to grant the user access to content previously obtained or requested by the user and whether to present advertisements related thereto and which advertisements to present therewith.
The digital rights management engine and/or other software or hardware on or in remote communication with the user's system may also record information regarding the user's access to or other use of protected content and/or advertisements. In some embodiments, some or all of this information may be potentially communicated in an anonymous form to a remote party (e.g., a settlement facility, content creator, owner or provider 106, a user's manager, an entity on behalf of whom, etc.), e.g., for use in distributing revenue (such as loyalty, advertisement-based revenue, etc.), determining user preferences, enforcing system policies (e.g., monitoring how and when to use confidential information), etc.
As shown in FIG. 1, content 108 need not be distributed with advertisement 104 (or license 103). The advertisements 104 may be provided separately and dynamically integrated with the content 108 by the user's system 101. As described in more detail below, this integration is preferably accomplished according to rules encoded in permissions 103 associated with the content 108, the advertisements 104, and/or the user or system regarding the types and/or number of advertisements that may or must be integrated with the content and/or the type of content with which the advertisements may be rendered. In a preferred embodiment, the system attempts to optimize the matching of advertisements to content by using demographic information about the user (e.g., age, gender, etc.), usage history and preferences of the user, and/or other information about the user or the user's environment (e.g., time of day, Global Positioning System (GPS) coordinates, etc.). Since matching is done locally in one embodiment, this user and environment information can be maintained on the user's system and need not be sent to third parties, thus protecting the user's privacy while achieving very accurate targeting of advertisements. As previously noted, in some embodiments, some anonymous versions of the user and/or environmental information are sent to the settlement facility 110 for redistribution to content providers and/or advertisement providers to facilitate future provision of content and advertisements of potential interest to the user.
It will be appreciated that many variations may be made in the architecture and relationships presented in connection with fig. 1 within the scope of the working body of the present invention. For example, without limitation, in some systems some or all of the content may be delivered with some advertisements, the content and advertisements may be delivered to a user's system from a single source (e.g., a television service provider), and/or a piece of content may be integrated with multiple advertisements. In some embodiments, the determination of which advertisements to present in conjunction with a piece of content may be made by a remote system, and/or the integration of the advertisements and content may be made remotely and then the integrated content and advertisements are sent to the user's system for display or other presentation. It is to be understood, therefore, that FIG. 1 is provided for purposes of illustration and description, and not limitation.
Fig. 2 shows an example of a system 200 that may be used to implement an embodiment of the working entity of the present invention. For example, system 200 may include embodiments of end user's device 101, advertising provider's computing system 102, content provider's system 106, and the like. For example, system 200 may include a general-purpose computing device such as a personal computer or a network server, or a special-purpose computing device such as a cellular telephone, a personal digital assistant, a portable audio or video player, an electronic book reader, a tablet, a television set-top box, a kiosk, a gaming system, or the like. The system 200 will generally include a processor 202, memory (i.e., computer-readable media) 204, a user interface 206, a port 207 for accepting removable memory 208, a network interface 210, and one or more buses 212 for connecting the aforementioned elements. The operation of the system 200 will typically be controlled by a processor 202 operating under the direction of a program stored in memory 204. Memory 204 will typically include high speed Random Access Memory (RAM) and non-volatile memory, such as magnetic disk and/or flash EEPROM. Portions of memory 204 may be restricted so that other components of system 200 cannot read from or write to them. The port 207 may include a disk drive or memory slot for accepting computer-readable media 208 such as USB dongle, CD-ROM, DVD, memory card, SD card, magnetic disk, other magnetic or optical media, and the like. Network interface 210 is generally operable to provide a connection between system 200 and other computing devices (and/or a network of computing devices) via a network 220, such as the internet or an intranet (e.g., a LAN, WAN, VPN, etc.), and may employ one or more communication techniques to physically make such a connection (e.g., wireless, ethernet, etc.). In some embodiments, system 200 may also include processing unit 203 that is protected from tampering by a user or other entity of system 200. Such a secure processing unit may enhance the security of sensitive operations such as key management, signature verification, and other aspects of the rule enforcement process.
As shown in fig. 2, memory 204 of computing device 200 may include various programs or modules that, when executed by processor 202 (and/or 203), may control the operation of computing device 200. For example, memory 204 will typically include an operating system 220 for managing application execution, peripherals, and the like; a host application 230 for rendering protected electronic content; an advertisement matching engine or module 233 for performing aspects of advertisement selection and performing the functions described herein, and a DRM engine 232 for implementing some or all of the rights management functions described herein. In some embodiments, DRM engine 232 may include, interact with, and/or control various other modules, such as virtual machine 22 for executing control programs and a state database 224 for storing state information for use by virtual machine 222 and/or one or more cryptographic modules 226 for performing cryptographic operations, such as encrypting and/or decrypting content, computing hash functions and message authentication code, evaluating digital signatures, and so forth. Memory 204 will also typically include protected content 228, advertisements 227 and associated licenses 229, as well as cryptographic keys, certificates, and the like (not shown).
One of ordinary skill in the art will appreciate that the systems and methods described herein may be implemented with computing devices similar to or the same as those shown in fig. 2, or with virtually any other suitable computing device, including computing devices that do not own some of the components shown in fig. 2 and/or computing devices that own other components not shown. It should therefore be understood that fig. 2 is provided for purposes of illustration and not limitation.
The discussion herein relates to enforcing licensing in relation to content and advertising, assuming that the terms of licensing would be enforced if the system (e.g., including the DRM engine, the advertisement matching engine, and the host application) were operating as intended. In a practical application of the systems and methods described herein, protection of a system (e.g., the software and hardware with which it interacts) from malicious tampering or modification may be implemented using any suitable combination of security techniques. For example, cryptographic mechanisms such as encryption, digital signatures, digital certificates, message authentication code, etc., may be employed, e.g., as described in the' 693 application, to protect DRM engines, host applications, and/or other system software from tampering and/or other attacks, as may structural and/or tactical security measures such as software obfuscation, self-verification, customization, watermarking, anti-debugging, and/or other mechanisms. Representative examples of such techniques can be found, for example, in the following documents, each of which is incorporated by reference herein in its entirety: U.S. Pat. No. 6,668,325B1 ObfuscationTechniques for enhancing software installation and U.S. patent application publication No. 11/102,306 (publication No. 2005/0183072A1) software engineering of methods; U.S. patent application No. 11/737,428 (publication No. 2008/0028474a1) systemsandmethods for watermarkingsoftware and other media; U.S. patent application No. 10/172,682 (publication No. 2003/0023856a1) SoftwareSelf-checking systems and methods; U.S. patent application No. 11/338,187 (publication No. 2006/0123249a1) trusteedstoragesystemsandmethods and U.S. patent No. 7,124,170B1 securencessunitsystemsandmethods. Alternatively or in addition, physical security techniques (e.g., using relatively inaccessible memory, a secure processor, a secure memory management unit, a hardware protected operating system mode, etc.) may be used to further enhance security. Further, a number of commercial products may be used to protect the application from tampering, any suitable product or products may be used.
Yet another form of security may be provided by the institutional design and operation of the system and the legal and social regulations of the participants therein. For example, entities in the system may be required to agree to comply with system specifications and requirements under a contract or may need to be subject to an authentication process during which the entities may be verified to comply with system requirements, and so forth. For example, a device or application may be required to implement the DRM engine in a manner that is compatible with other implementations in the environment and/or may be required to provide some type or level of tamper-resistance or other security. Digital certificates may be issued that prove compliance of a device or other entity with such requirements, and such certificates may be verified prior to allowing the device or entity to participate in the system or as a condition for allowing continued participation.
Such security techniques will be well known to those of ordinary skill in the art, and it will be understood that some or all of these techniques may be used or any suitable combination of these techniques may not be used depending on the desired level of protection and the existing details of a particular application. It will also be understood that while certain security mechanisms are described herein in connection with certain embodiments, the use of these techniques is not required in all embodiments. Further, non-limiting information regarding security techniques that may be used in conjunction with the working body of the present invention is set forth in the' 693 application.
In a preferred embodiment, the security policies for a particular deployment are considered on a case-by-case basis. If a particular system has full control over the content and advertisement distribution mechanisms, the security policies around these aspects may be relaxed. However, if the content and advertisement distribution mechanism is fully controlled, the security policy will generally need to be more stringent. As yet another example, on some platforms, clients may be inherently more secure, so relaxed security policies may be sufficient. However, on platforms that are vulnerable to malicious attacks, the security policy will generally need to be more stringent. The security policy chosen will also typically depend on the value of the content and the advertisement and the incentives to destroy the system for different parties.
FIG. 3 illustrates an example of a method for delivering, selecting, and presenting advertisements according to one embodiment. As shown in FIG. 3, a consumer's device receives content and advertisements (300). As described above, the consumer's device may receive the content and advertisements via any suitable means. The content and advertisements may be delivered together or separately, at different times, and/or from different sources. Upon receiving a request (302) from a consumer to render (e.g., view, play, run, etc.) content, the user's system evaluates permissions associated with the content (304) to determine whether to authorize or otherwise allow the requested use (306). If the request is authorized (i.e., the "yes" exit from block 306) and the license further requires that one or more advertisements be presented while the content is being rendered, the user's system optionally filters its set of advertisements to exclude the content and/or any advertisements that the advertisement license prohibits from being displayed with the requested content (308). The permissions associated with each of the remaining advertisements are then evaluated to obtain bids from each of the advertisements for those advertisements that are authorized to be selected for presentation with the content item (block 310-314). As described in additional detail herein, in some embodiments, the value of the bid for each advertisement may be based in part on characteristics of the consumer, the content, the consumer's system, etc., that the advertisement matching and/or DRM engine may retrieve and use from local storage when evaluating the rules associated with a particular advertisement. Once bids from all relevant advertisements have been obtained, one or more winning bids may be selected (316), and the content item may be presented with the winning bids (318). It will be understood that fig. 3 has been provided for purposes of illustration and description, and that in other embodiments some of the acts shown in fig. 3 may be omitted, performed in a different order, combined, or supplemented with additional acts not shown.
A more detailed description of an example framework for advertisement matching is provided below in connection with FIG. 4. FIG. 4 is a relatively high-level conceptual illustration of a platform for advertisement matching in some embodiments, illustrating the various participants involved and the interfaces provided to them. Although the preferred embodiment of the platform shown in FIG. 4 supports a variety of powerful features, many of these features may be intentionally suppressed (or, in some embodiments, eliminated) in order to optimize a given business model. For example, a content provider may not want to leverage rewards for highly mobile superdistribution of content, but instead favor more traditional manual contract-based distribution. The content provider may still want to utilize the ad slot auction mechanism. It will thus be appreciated that many of the features illustrated in fig. 4 and/or otherwise described herein are designed to be deployed alternatively or independently and as needed for a given content distribution business model. This inherent flexibility allows for customized deployments that only employ some of the functions and features presented herein. Further, while FIG. 4 shows a single advertising targeting platform for ease of illustration, it will be understood that in practice the functionality of such a platform will typically be distributed across multiple devices and systems. For example, while in some embodiments a website or service may provide substantially all of the functionality shown in FIG. 4, in other embodiments some or part of the functionality may be performed solely by the advertiser's system, the content owner and/or distributor's system, the clearing house, the end user's system, etc.
As previously noted, multiple distribution means may (but are not required to) be used in a preferred embodiment to independently superdistribute content and advertisements. One of the emphasis points of certain preferred embodiments is the separation of content delivery from ad delivery. The advertisements and content may be delivered through disparate distribution mechanisms. The selection of what advertisements to display when the content is rendered may be made independently of the content and may be negotiated at content rendering time based on, for example, an optimal reward for rendering the advertisements. Advertisements may be targeted to users through distribution means and may be optimally matched for presentation based on local data stored on or available only to the presentation device.
In a preferred embodiment and as described in more detail below, a DRM engine, such as that described in the' 693 application, may be used to evaluate controls associated with pieces of content and advertisements to determine which advertisements to present (e.g., display) with a piece of content. Such DRM engines are flexible and open to rules that can be expressed for each content item and for each advertisement. In one embodiment, the rules may be expressed in simple text (such as XML) by the content provider or advertiser. In some embodiments, these rules may later be translated into object types supported by the DRM engine (e.g., using a tool for generating code for the DRM engine's virtual machine) and may be associated with content or advertisements. In other embodiments, the DRM engine or the advertisement matching engine can interpret the rules in the same form as originally expressed by the content provider or advertiser, so that the conversion step is unnecessary.
A simple example of a rule that may be associated with an advertisement is a rule that indicates that an advertiser is willing to pay 10 cents for each ad impression, but is willing to pay an additional 5 cents to the targeted demographic and when an advertisement is shown at a certain time of day. A similarity rule may be associated with a piece of content.
Content deployment
As shown in fig. 4, in one embodiment, content providers and content aggregators deploy their content by encapsulating content items with rules (e.g., rules of the type enforced by DRM engines) that require a rendering application to optimally select advertisements that fill content advertisement slots identified within the content at the time the content is rendered (e.g., played, viewed, executed, etc. in the case of software) (e.g., using the techniques described in the' 543 application). Additional rules may optionally be specified that describe how much advertising revenue, e.g., will be shared with subordinate content distributors. All rules may be instantiated within one or more control objects bound and encapsulated (or otherwise associated) with the content item. In some embodiments, the platform may provide content providers with services that enable them to revoke a particular piece of content.
FIG. 5 is a more detailed illustration of a content deployment scenario in one embodiment. As shown in fig. 5, the packaged content 502 is registered with a clearing house 504 and then made available to various content distribution services (506a, 506b, 506c) (collectively referred to as distribution services 506). These distribution services 506 may use traditional contractual mechanisms for obtaining the content 502 and/or they may bid for the content 502 in terms of a percentage of the content advertising revenue wind direction and/or other factors that predict revenue return for distribution copyrights. Content providers may have incentives to accept offers from distributors who charge more per impression when they consider statistics showing how effective distributors spam content. In one embodiment, such statistics may come from clearing house 504 and/or data warehouse 508.
In one embodiment, content providers may obtain real-time (or near real-time) feedback regarding the performance of their content. Based on the statistics provided by the data warehouse 508, the content providers may modify the rules 510 associated with their content items 501. In one embodiment, updated rules (e.g., expressed as control objects that are actionable by the DRM engine) are delivered to the client and/or the distribution service provider in an opportunistic manner.
Referring again to FIG. 4, in one embodiment, advertisers or placement agents deploy their content through an ad registration service that packages advertisements with rules that describe how much the advertiser will pay in rendering the advertisements under specified conditions. These conditions may include, for example, demographics and other attributes of the consumer, time of day, geographic location, number of previous impressions of the advertisement on the device, and the like. Different rates may be associated with different conditions. The rules may also specify how much to pay for an advertisement distribution service that aims to make advertisements available to consumers on their consumer's rendering devices to optimally target advertisements at the time of distribution to the users based on user attributes that may be available at the time of distribution. In one embodiment, these rules are instantiated as controls of the type described in the' 693 application that are bound or otherwise associated with an advertisement.
FIG. 6 is a more detailed illustration of an advertisement deployment scenario, according to one embodiment. In the example shown in FIG. 6, advertisers may obtain real-time (or near real-time) feedback from data store 608 and/or ad registration service 604 regarding their ad campaigns. Advertisers may review statistics showing the effectiveness of the ad distributor 606 and accept higher bids from ad distributors 606 that are more effective at making the ads 602 available to different consumer types. Update rules 610 (e.g., expressed as control objects) associated with an advertiser or advertisement may be delivered to an end user in an opportunistic manner. In some embodiments, the ad distributor 606c may employ a push and/or pull model to distribute the ads 602 to its user catalogs 612. Some ad distributors 606 may be conventional ad networks that have a catalog of users/devices to which they currently feed ads. The preferred embodiments are flexible and allow advertisers to place actual advertisements and/or to place references to remote advertisements to a consumer's device. In a preferred embodiment, in each of these occasions, rules for optimal advertisement matching are sent to the client.
Advertisements are typically targeted to users. Alternatively or in addition, in some embodiments, advertisers may choose to pay additional money when displaying advertisements during the presentation of content that matches certain criteria. A simple example may be an advertiser willing to pay normally 10 cents, but also 12 cents when an advertisement is displayed with content falling under the content category "sports" or "quest". This illustrates the affinity between the content and the advertisement. In some embodiments, there may be a default policy associated with advertisement matching. One such ad matching strategy may be based on the rank of the content and/or ads. Such a policy may be applicable, for example, when an adult using a mobile player may show a child's content to the child. In this case, such a strategy may not allow for advertisements targeted to adult consumers while rendering content appropriate for children.
In some embodiments, the ad delivery service may operate through a push and/or pull model, through a social networking site, or through an online search application. The push model may work well when operated by a service provider that has a closer understanding of the consumer. The preferred embodiment also provides the advertiser with a service for revoking a particular advertisement.
Referring again to FIG. 4, in one embodiment, the consumer may receive content and/or advertisements through any suitable distribution service, including but not limited to media web stores, social networking sites, and peer-to-peer delivery mechanisms. The preferred embodiments can be designed to be compatible with virtually any content or delivery distribution. Consumers may receive advertisements that various ad delivery services (such as services that provide rendering applications or devices) push to them or pull from various websites they visit. In each of these cases, there is a relatively original way to target advertisements to consumers (e.g., such as by using information voluntarily provided in a questionnaire, knowledge of search terms used by consumers, or analysis of content types on specialized websites (such as blogs or websites associated with special interest groups)). Advertisements may be collected in a cache stored on the consumer's local device and possibly shared with other devices that are part of the consumer's personal network.
In some embodiments, consumers may also store on their devices authentication attributes that they obtain from services that are in a location for securing such attributes (e.g., attributes relating to age, gender, education, club membership, employer, frequent or frequent buyer status, credit rating, etc.). To ensure privacy, this attribute information is preferably not shared except possibly with other devices or entities owned or trusted by the consumer. In one embodiment, the information is used only locally on the device, as explained below. An exception to this may be when trusted devices are used to access these attributes in order to improve them or to derive new attributes from them or to use them to filter advertisements as part of a trusted service to which consumers subscribe (e.g., by opt-in). Finally, the device may collect other attributes from various user events, which may include, for example, metrics or attributes derivable from user interaction history with advertisements, shopping history, browsing history, content presentation history, and the like. In addition, a variety of environmental attributes may also be available, such as time of day, geographic location, and the like. In some embodiments, this information is not made available outside of the device except for the trusted device that may be used to analyze the raw information and derive attributes that may be used for advertisement matching.
In some embodiments, the property and/or property group may be bound to the user (e.g., using a link object of the type described in the' 693 application), while the user node is bound to the device (e.g., using another link object). This potentially makes user information and attributes available to a number of different devices, but in a controlled manner with an infrastructure that helps ensure integrity.
As shown in FIG. 7, in one embodiment, when a consumer wishes to render content 700 on a conforming content playback device or application 702, the device 702 performs control 704 of the content item that requires the ad slots for the content 700 to be filled according to an objective function that optimizes the content provider's goal of collecting advertising revenue from this viewing event. The DRM object may be used to express and the objective function may be updated as needed. In one embodiment, the control 704 will invoke a search mechanism through the available advertisements 706 in the local advertisement cache 708. As shown in fig. 7, in some embodiments, the set of available advertisements may be narrowed down with respect to the requirements in control 704 regarding the types of advertisements that are allowed to be played in conjunction with content 700. Once the set of potential advertisements is selected, the permissions (also referred to as DRM controls in some embodiments) associated with each advertisement are evaluated. For example, when the control 710 of the ad 706a executes, it calculates offers for ad slots based on information in the control 710 and various local attributes that may be used for the control. In some cases, control of the link to the attribute node may require payment for trusted use of the attribute provided in that node. In one embodiment, the offer consists of two numbers: the first is the amount the advertiser will pay to represent the advertisement, and the second is the amount obtained by the content provider. The difference, if any, is an amount that may need to be paid to other parties, including, for example, an advertisement distributor, a device provider, a clearing house, a service provider, a property authenticator, etc. When calculating offers, the content-controlled objective function is used to select advertisements to be rendered based on the offers. Typically, the objective function will select the advertisement that brings the greatest return to the content provider. However, the function may give some weight to the total amount of rewards (paid by the advertiser) in order to encourage the development of the infrastructure. This in turn may maximize impression and ad match quality and have an impact on future offers, thereby increasing competition, promoting future higher offers and thus maximizing the overall return for all stakeholders. It will be appreciated that a variety of mechanisms may be used to select winning offers.
In one embodiment, once the ad is rendered, an audit record is created and (ultimately) sent to a clearing house designated in the control of the content provider. In one embodiment, the audit record includes bid information including a total price paid by the advertiser and an amount to be paid to various stakeholders (e.g., clearing houses, device providers, advertisement distributors, content distributors, etc.).
Figure 8 illustrates various examples of audit reports. As shown in FIG. 8, in one embodiment, client 702 may opportunistically send one or more audit records including information about advertising and content performance transactions to clearing house 800. Some audit record information may include data regarding advertisements participating in the auction, user environment data used during the auction, and content selected for presentation. This transaction data may be anonymized based on mainstream privacy. These usage reports may also be forwarded to data warehouse 820 for further analysis and redistribution. In some embodiments, the amount paid to the content distributor may be a percentage of the amount paid to the content provider (and not used in the objective function calculation), or it may be a separate item but contained within the total. The projected amount will often be relatively small on a business basis, and thus large scale may be preferred for advertising revenue sharing and content distribution to work most efficiently. It will be appreciated, however, that in a preferred embodiment, the system is designed to automatically and efficiently use automation while on the other hand being able to support a large number of simpler models for long tailed reach, support revenue sharing for small-scale content providers, and allow local advertising to be efficiently supported.
In one embodiment, a return or default advertisement may be displayed if there are an insufficient number of relevant advertisements at the time of content presentation. In one embodiment, only these returned advertisements will be rendered as long as the rules associated with the content are adhered to. The return or default advertisement may be provided by any stakeholder, for example.
In one embodiment, in an 'open' deployment where content and advertisements are distributed over multiple delivery networks, consumers may be given the opportunity to 'tag' inappropriate content or advertisements. If some predefined minimum number of users report that the content item or advertisement is inappropriate, the content item or advertisement may be removed from the system (e.g., via password revocation).
A powerful feature of some preferred embodiments is the collection and distribution of system statistics. In one embodiment, clearing house 800 collects a large amount of information from the audit record and forwards it to data warehouse 820. In one embodiment, the data sent to repository 820 is stripped of any private information that would explicitly identify the user, content, and/or advertisement. Data warehouse 820 may employ existing statistical techniques to calculate effectiveness levels for content distributors and advertisement distributors. Data store 820 may provide services that present information that may be used to determine optimal pricing for advertisement bids, content distribution shares, and advertisement distribution shares. Advertisers may discover which advertisement distributors are most effective in affecting certain consumer types. Accounting agencies statistics and analysis (cleardown) may be used by ad distributors and content distributors to determine what kinds of ads they can distribute and target what kinds of ads more efficiently and how they can target these ads. The effectiveness of the device and application provider may also be measured so that appropriate rewards may be provided in the bids of the advertiser/advertisement distributor interface, the content provider/content distributor interface, and in the bids for the advertisement slots.
Example use example scenario
Content deployment
In this example, FashionTV wants to upload its latest winter sink to the system. The fashinontv has allocated slots for advertising content and decided any advertising slot filling rules. Fashinontv also specifies that, as part of the rules, minimal revenue from each presentation of a content clip is expected.
The rules may be entered from the user interface and may later be mapped into XML representations which may in turn be translated into DRM controls that the DRM engine may process. The following example XML excerpts are rule definitions provided by FashionTV:
in the rule definition above, the content provider has given three advertising slots for "winter-assembled" content clips. The minimum revenue set for each play of content is expected to be $ 1.25. Additional attributes for the content are also provided, including the rating and category of the content. In this example, the rules also explicitly identify the settlement facilities that need to sign a contract after the content presentation event, which illustrates the following flexibility: the content distributor would have to specify a particular settlement facility for incoming handset and reporting purposes.
The fashinontv will make this content clip and associated rule definition available to the packager of the system. The packager would then create DRM controls (e.g., control objects of the type described in the' 693 application) according to specified rules, package the content, and register with a clearing house for further delivery to a third party content distribution network. The external distribution network will then make the packaged winter pooled content clips available for consumption by their users.
Advertisement deployment
In another example, an advertising company (video ad aggregator) wants to deploy its new ad campaign for ABC company's trucks. Advertising companies have analyzed advertising targeting requirements and want to target suburban audiences who earn more than $80k total and in age groups 25-35. There is also a gender preference (male). The advertising company has concluded that an advertising campaign will be more effective if it is associated with content clips whose category is sports or action. At the target audience's discretion, the advertising company decides that the advertisement should run between 6PM to 9PM for greater accessibility. Keeping its 360 degree engagement model, the advertising campaign will also bear the signature of a call for action (calleffort).
The advertising company does not confirm the cost per thousand ("CPM" or cost per thousand impressions) that this advertising campaign should pay. With the ability of the system to provide an auction with feedback, the advertising company selects the $0.15 minimum bid for each impression/ad run. In addition, the advertising company specifies circumstances under which it would like to increase its bid amount and/or under which it would not like to bid at all. The constraints and requirements of an advertising campaign are expressed as parts of a rule definition that can be entered via a user interface available to the advertising company or written directly in XML.
The XML representation of the ad rules for this example may be as follows:
< | A! - -truck-targeted advertisement for ABC corporation
Rule 1. income level: > 80k
Rule 2. position: suburb
Rule 3. age group: 25-35
Rule 4. gender: male sex
Rule 5. target content category: sports or action or exploration
Rule 6. time of day: 6pm to 9pm
Remarking:
a. the quoted price is $0.15 per impression
b. This is a clickable advertisement- >)
The advertising content and rules are packaged via a packager into a format compatible with the DRM or advertisement matching engine. The packaged advertising content is then registered with an advertising registration service. The advertising company may distribute packaged advertising content to its own network and/or it may have an advertising registration service make the advertising content available to other advertising distribution networks. In some embodiments, a combination of the two approaches described above may be used. For example, an advertising company may sell advertising campaigns to other advertising distribution networks with unused content catalogs or may run advertising campaigns in its own content network.
The preferred embodiment of the client application supports the ad counting concept. In one embodiment, the ad count allows advertisers to select boost and fade-out strategies for their ads. In the use case described above, the advertising company may, for example, pay $0.15 for a first impression but $0.20 for a second impression (with $0.05 being a positive increment), for a given user with the appropriate attributes, on the theory that it competes with other advertisements when already paid for the first impression and that it is important to guarantee the second impression for reinforcement. Thereafter, it may only pay $0.10 ($ 0.05) for a third impression, etc
Advertisement auction
In another example, the user John Doe decides to play a content clip consisting of highlights from a sporting event. The clip defines two advertisement slots. When a play clip is selected, the client platform performs local advertisement matching and identifies from its local advertisement repository a plurality of advertisements that match performance criteria (which may include, for example, demographic, geographic, behavioral, environmental, and past transaction information, etc.). Controls representing the rules associated with the selected advertisement are selected and evaluated by the underlying runtime engine. Individual ad controls are presented with any contextual information that they may need to determine their bid.
The client platform will then select two ads (for two ad slots in the content clip) that maximize the objective function. The objective function is a net revenue function in this example, and therefore the two highest bid advertisements are selected for play.
After the content is played, controls representing the two selected advertisements may report, for example, a bid value, a content type, abstracted user profile information, and the like to a clearing house.
The client platform may also report the advertisement of the auction failure to the clearing house. This feedback may include identification of winning offers and abstracted user profiles, environmental and content information, and the like. The ad aggregator/placement agent may use this information to take further action (e.g., increase their bid price by distributing updated controls for use in future auctions).
Audit report and user profile collection
In yet another example, the user John Doe selects a content clip to be played. The content is presented with any advertisements that are used to fill the mandatory advertisement slots in the content clip. Thereafter, the client platform sends an audit report to the trusted clearing house. In this example, audit reports are opportunistically sent to limit network bandwidth consumption. The audit report includes information regarding advertisements selected during content presentation, corresponding advertisement bids, nature/category of the content, number of times an ad impression was generated, abstracted user profile information, environmental information during content playback, and the like.
In some embodiments, the audit report sent to the clearing house also includes information about the ads that have participated in the bid for the ad slot. The clearing house can then forward all client transaction data to the data repository. In a preferred embodiment, the forwarded data sent to the repository is stripped of information that would explicitly identify the user, content and/or advertisement. In some embodiments, the client platform will also collect information about the user's viewing patterns and send the abstracted classification information to the clearing house. This abstracted information, preferably without private information, can be shared with the preferred partner.
As described in the' 693 application, to comply with privacy laws in certain jurisdictions, a client may choose to maintain a user profile locally on the client, which may be represented as a node having attributes. Various potential nodes (e.g., impulse buyers, fashion awareness, etc.) are linked by links that bear strengths based on advertisement viewing patterns. The information the user voluntarily provides may also be expressed as DRM objects, but these associations may be weaker at the outset. As the platform learns more about the user from the client, the strength of each association will change. Ad controls associated with the ads may reference these DRM objects and their strength values and use this information to help make decisions on bid prices.
Attribute aggregator nodes from external entities can further refine the user profile for targeted advertising. This DRM node (e.g., of the type described in the' 693 application) is introduced into the system through a trust mechanism and may include any quantified attributes of the user such as organization membership, frequent guest status, etc. Third party entities may be compensated for this and ad controls may refer to these aggregator nodes and their strengths/their connections with user nodes during arbitration.
The consumer may choose to compose certain policies, such as, for example, a policy that makes one advertisement provider more favorable over another or a policy in which the user wants a certain service provider to maintain his or her user profile. Such policies may be expressed as DRM engine objects of the type described in the' 693 application and may be updated if and when necessary.
FIG. 9 is a more detailed illustration of various system components and some example message interactions therebetween in an example embodiment. As shown in fig. 9, in one embodiment, content packager interface 902 is a service provided by an ad matching platform that enables content provider 900 to package and transcode content for client consumption. Such packaged content may be hosted by provider 900 at its own site or may be hosted by platform and/or external content delivery network 930 for further delivery to client 904. In one embodiment, interface 902 allows provider 900 to specify details about content, including tags to help categorize content. In one embodiment, the content packager is responsible for packaging content with associated deployment rules, specifying ad insertion points and content metadata, and updating content deployment rules.
In one embodiment, the association rules of the deployment information and the content are registered with the clearinghouse 920 after the content is packaged. The content is ready to be distributed after registration with the settlement institution 920 is completed. In one embodiment, content registration service 922 enables content to be discovered by content delivery network 930. For example, content registration service 922 may broadcast content availability, implement content discovery services, or implement a combination of both. In one embodiment, the content registration service 922 is responsible for registering content with the clearinghouse 920, undeploying the content, and making the deployed content available to the content delivery network 930.
In one embodiment, the content delivery network 930 is the entity primarily responsible for delivering content to the consumer's device 904. One of ordinary skill in the art will appreciate that there are a number of existing content delivery networks and that any suitable content delivery network may be used in conjunction with the systems and methods described herein.
In one embodiment, advertisement packager interface 926 is a service provided by the advertisement matching platform for enabling advertisers to package and format advertisements for client consumption. In one embodiment, the packager 926 allows for ad insertion from individual advertisers and third party advertising networks. The packaged ads may be delivered by provider 901 directly to the consumer, may be hosted by the platform for further delivery to the client, and/or hosted by external ad delivery network 932. In one embodiment, interface 926 allows provider 901 to specify advertising rules and details regarding advertisements, including tags to help categorize advertisements. Services for various aspects of a campaign may include specifying a campaign budget, dynamic offers for ad slots, and specifying associations with user profiles and/or content types. In one embodiment, the advertisement packager 926 is responsible for packaging advertisements with associated deployment rules and updating the advertisement deployment rules.
In one embodiment, after the advertisement is packaged, the deployment details are registered with the clearinghouse 920 along with the advertisement's association rules. In one embodiment, ad registration service 925 is provided to facilitate this process. The advertisement is ready to be distributed after registration with the settlement institution 920 is completed. Ad registration service 924 enables ads to be discovered by external ad delivery network 932. The ads may be pushed to the ad delivery network 932 or pulled by the ad delivery network 932 as desired. In one embodiment, ad registration service 924 is responsible for registering ads with billing authority 920, undeploying ads, and/or making deployed ads available to ad delivery network 932.
In one embodiment, ad delivery network 932 is an entity primarily responsible for delivering ads to consumer's device 904. In one embodiment, billing authority 920 provides user profile retrieval services to ad delivery network 932. Ad delivery network 932 may use this information to deliver highly targeted ads. One of ordinary skill in the art will appreciate that there are a number of existing ad delivery networks and any suitable network may be used.
In some embodiments, it may be desirable to impose certain constraints on the delivery of advertisements to individual ad delivery networks. One such constraint may be for the number of advertisements that the ad delivery network may deliver, for example, due to limited capabilities on the consumer's device.
In one embodiment, the operator of the advertisement distribution/matching system provides a clearing house service 920 between the advertiser 901 and the content provider 900 in order to coordinate revenue sharing. In one embodiment, this interface 920 provides services for local or third party clearing house tools to access relevant transaction data from the server.
In one embodiment, the user profile collection interface collects information that the user volunteers to provide, and the trusted object delivery interface is responsible for delivering self-protected DRM objects to the consumer's device. The self-protected DRM object may, for example, include nodes, links, and control agents of the type described in the' 693 application. The updated object may be delivered to the consumer's device, for example, when the system detects any changes in user behavior/classification.
The clearing house 920 may also provide a usage reporting interface for hosting providers for accessing usage statistics regarding performance of advertising campaigns and user acceptance of available content. Operators can use this data to fine tune their pricing ranges for content providers and advertisers. In one embodiment, this interface is responsible for forwarding audit reports to the data warehouse.
In some embodiments, the billing mechanism 920 may have a billing and reporting interface that enables advertisers to collect information about various behavioral aspects during and after the completion of an advertising campaign. Some of this information may include, for example, actual impressions of the advertisement, click-through rates (CRTs) of the advertisement, profile information (e.g., demographics, location, etc.) about users viewing the advertisement, content associations of the advertisement, and/or other usage statistics. In one embodiment, the billing interface provides the advertiser with online services for accessing a billing system that monitors the cost of running advertisements. In one embodiment, this interface is further tied to clearing house services for coordinating campaign costs.
Thus, in various embodiments, the settlement facility 920 is responsible for one or more of the following operations:
● record content and advertising deployment.
● collect usage data (possibly with environmental information) from consumer devices.
● collects user classification information from the devices. In some embodiments, some private information should not trust the user device. Such information will be summarized by the application on the device and sent to the settlement institution.
● sends an anonymization report to the data repository.
● create and deliver trusted DRM objects to consumer devices.
● manage the accounts of the content provider and the advertiser for billing purposes.
● handle financial transactions.
● provide reports to content providers (e.g., reports answering questions such as how much content was viewed in the last 24 hours.
● provide reports to advertisers (e.g., reports answering questions such as how many ads were viewed in the last 24 hours.
● provide an interface for a third party 940, such as a user information provider. For example, the interface enables the parties to provide more user information (e.g., membership in a car club or retirement organization, type of credit card held, frequent customer accounts, preferred consumer accounts, etc.). This information may be used to deliver user attributes, which in turn may be used to better target advertisements.
● help distribute advertising revenue among key participants in the value chain.
In a preferred embodiment, data warehouse 910 facilitates the collection and distribution of system statistics. Settlement institution 920 collects a large amount of information from the audit records and forwards it to data repository 910. In some embodiments, the data sent to repository 910 is stripped of any private information that would explicitly identify the user, content, and/or advertisement.
In a preferred embodiment, data warehouse 910 offers services that provide information that can be used to determine optimal bids for advertisement bids, content distribution shares, and advertisement distribution shares. For example, data warehouse 910 may employ conventional statistical techniques to calculate effectiveness levels for content distributors and advertisement distributors. Advertisers can discover which advertising distributors are most effective in affecting certain consumer types, and advertising distributors and content distributors can use accounting mechanisms to count and analyze to determine what kinds of advertisements they can distribute more efficiently and target what kinds of advertisements and how they can target those advertisements. The effectiveness of the device provider and the user application provider may also be measured so that appropriate rewards may be provided in the bids of the advertiser/advertisement distributor interface, the content provider/content distributor interface, and in the bids for the advertisement slots. Thus, in some embodiments, repository 910 is responsible for some or all of the following operations:
● collect anonymized usage reports from settlement institutions.
● maintain and report statistics.
● provide a feedback service for content providers to help create optimal rules.
● provide feedback services to advertisers that help advertisers run their advertising campaigns more efficiently and minimize unnecessary impressions. It may also provide the advertiser with decisions that help create more effective rules for a particular advertisement.
In a preferred embodiment, the client 904 includes a DRM engine that ensures that the rules specified by the content provider and the advertisement provider are enforced and any resulting obligations are met. In other embodiments (e.g., where the consumer's device lacks sufficient processing power), other configurations may be used. For example, in some embodiments, rules may be handled by a proxy (e.g., over a network or over a home network) rather than at a client.
In a preferred embodiment, the delivery of content and/or advertisements to the client may be accomplished through any suitable combination of offline and/or online modes. For example, the client may have a content and ad delivery interface that provides the client player with web services for downloading content and/or ads from the system backend.
As shown in fig. 9, content may be delivered to a consumer's device 904 via a content delivery network 930, and advertisements may be delivered via an advertisement delivery network 932. Ad delivery network 932 may deliver advertisements related to users, for example, based on information that users voluntarily provide, usage behavior of users, and/or alternative or additional attributes.
After the client 904 has rendered the content, any relevant obligations specified by the DRM controls associated with the content and/or advertisement need to be honored. Such obligations may, for example, include sending feedback to the settlement facility. This feedback may include environmental information, information about the advertisements and/or content being presented, and the like. In some embodiments, additional information such as winning bid prices may also be provided.
In a preferred embodiment, a content/ad sharing interface is provided to facilitate superdistribution of content and/or ads. The content and associated advertisements may be shared between the users' own devices or with other users. This interface may provide a service for facilitating the distribution of content, such as by providing recommendations to the user's peer-to-peer.
In some embodiments, the client may provide a mechanism for collecting information from the user that the user volunteers to provide. There may be some reward given to the user in exchange for this information. The information provided voluntarily can be used to categorize users and deliver highly targeted advertisements and also possibly recommend relevant content to the user that may be of interest.
In some embodiments, the user may sign up and register for services provided by the advertisement distribution platform. The user registration interface may provide a service for user registration (including collecting initial profile information). In one embodiment, the user is assigned a unique user identifier (GUID) that is used to validate any allowed services.
FIG. 9 has been provided to illustrate a wide variety of services, interfaces, and relationships that may be provided in various embodiments. It will be understood, however, that various modifications may be made in the structure and function described in conjunction with fig. 9 without departing from the scope of the working substance of the present invention. For example, in some embodiments, various elements shown in FIG. 9 may be combined or eliminated or supplemented by elements not shown. Further, while FIG. 9 illustrates a relatively comprehensive advertisement matching platform, in some embodiments some or all of the functionality of such a platform may instead be performed by an external entity. It is therefore to be understood that fig. 9 has been provided for purposes of illustration and description, and not limitation.
Using dynamic media segments
The following is a discussion of an exemplary set of example embodiments that utilize the DRM engine techniques described in the '693 application and the dynamic media segment techniques described in the' 543 application. To an abstract degree, the technique described in the' 693 application consists of an object model and a control language that is more generally applicable to other domains than what is traditionally considered "DRM". Embodiments of the systems and methods described in this application provide an advertising platform that is suitable for large collections of devices with varying degrees of storage capacity, processing power, and network connectivity. Embodiments of this platform build on the technology and trusted devices already described in the '693 and' 543 applications and extend this technology to provide innovative services for targeted advertising and trusted remote event monitoring that use local information for advertisement matching.
In a preferred embodiment, the trusted self-protected DRM object is delivered to the end-user device using standard mechanisms. An example of such a mechanism is the service-oriented technology described in the' 551 application. These objects may be deployed to perform functions such as local ad matching, usage data filtering, usage data reporting, and peer-to-peer (P2P) content and ad sharing. Each of these functions is described in more detail below.
In the discussion that follows, unless otherwise clear from the context, the following terms will generally have the following meanings:
and (3) advertisement list: a generally unordered set of ads for ad matching. This list may be considered an ad queue if the order of the ads is not important.
And (3) advertisement queue: an ordered set of advertisements obtained after performing advertisement matching to determine a priority order.
And (3) advertising time slot: a placeholder for an advertisement. Typically an insertion point for an advertisement in a piece of content.
As shown in FIG. 10, the preferred embodiment of the system and method described herein supports a large variety of consumer devices. These devices include, but are not limited to, mobile handsets, set-top boxes, Personal Digital Assistants (PDAs), Ultra Mobile Personal Computers (UMPCs), PCs, media gateways, televisions, and the like.
Fig. 10 shows a device with CPU performance on the x-axis and the distribution of network connectivity/local storage space on the y-axis. For this illustration, network connectivity is a networking performance metric and may be an indicator calculated using various network performance factors such as download speed, upload speed, time continuity and area coverage of the network.
To provide advertisements to a variety of devices with different capabilities, the preferred embodiments leverage the computing power of the cloud and appropriate local processing power to enable targeted advertisement matching, efficient advertisement delivery, and efficient usage data collection and reporting using trusted services. The actual computations required for these operations may be split between local and server-side computations to optimally utilize the capabilities of the platform, local storage, and other constraints within the existing network.
For devices with relatively low CPU power (e.g., zone 1 and zone 2 in fig. 10), it may be desirable to use resources of the cloud (e.g., server-side resources) to pre-filter advertisements to a greater extent than can be done for devices in zones 3 and 4. For devices falling in either sector 3 or sector 4, the preferred embodiment uses more extensive local processing power for advertisement matching.
Direct downloading and caching of advertisements may be accomplished to a greater extent for devices in either session 2 or session 3 than for devices in session 1 and session 4, where advertisements would tend to be downloaded, side-loaded, or streamed to the rendering device on demand.
Devices in zone 2 and zone 3 may report usage data directly in real-time (zone 3) or near real-time (zone 2) to trusted services in the cloud, while devices in zone 1 and zone 4 may be more likely to store the limited usage data set locally and only rarely forward it to trusted services in the cloud due to the constraints of limited bandwidth and local storage and higher relative bandwidth costs.
Regardless of the device type, some pre-filtering may help with more targeted and effective advertisement matching. According to some embodiments, pre-filtering may be accomplished using information available at the server using conventional ad matching techniques. For example, third party statistics engines, anonymizer software, and advertisement matching software may be used to pre-compute and pre-filter the set of advertisements for each content item or user. Standard targeting mechanisms may be used, such as targeting age, gender, income level, geographic location, time of day, areas of interest (e.g., inferred from past behavior). Alternatively or in addition, tags may be used to target advertisements to individual content items, or a combination of content targeting and user targeting may be used.
FIG. 11 illustrates using server-side advertisement matching to pre-filter advertisements for device 1104 based at least in part on usage data supplied by device 1104. As shown in fig. 11, device 1104 provides usage data to server 1102 for use in pre-filtering advertisements. The server 1102 uses an anonymizer 1106 to anonymize usage data and then uses a statistics engine 1108 to analyze the data. The output of statistics engine 1108 may be used by server 1102 to make determinations regarding the types of advertisements that are most likely to be of interest to the user of device 1104. Server-side pre-filtering assists the client by pre-computing a set of relevant ads from which a much more relevant match can be made using local ad matching techniques as described further herein. It will be understood that fig. 11 is provided for illustration and that other arrangements may be used. For example, if device 1104 does not trust server 1102, usage data from the device may be anonymized prior to being provided to server 1102. In other embodiments, the usage data is not provided to the server 1102 at all, and the server 1102 does any pre-filtering based on whatever information it can ascertain from the environment about the device 1104 or its user.
Method of classification of classes
In some embodiments, a predefined set of categories is used for advertisement, content, and user classification. In some embodiments, the exact taxonomies used may be proprietary to the respective party generating the control-e.g., a content provider will be responsible for defining the taxonomies for content, an advertiser will be responsible for defining the taxonomies for advertisements, and a settlement institution creating objects describing user attributes will be responsible for defining the taxonomies for users. The taxonomy will then be shared between these entities. In other embodiments, the taxonomy may be standardized (e.g., all content providers participating in the system may share the same taxonomy), and the criteria may be published for use by other participants in the system.
As a specific illustrative example, an applicable category for an entity may be specified as a comma-separated list of elements, where each element represents a rating label that indicates the rating of the label using a dot symbol. Each category may also be associated with a weight for the category normalized to a certain range, e.g., 0-100. When including weights, the set of tags can be represented in a string form using the' character to separate the leaf-level category from its weight. Wildcard' may be a reserved character and used to match any category/subcategory.
A snippet of an example of an advertisement tag taxonomy is shown in fig. 12. For the taxonomy shown in FIG. 12, some examples of labels may include:
Food.Chinese.Szechuan
Food.Chinese
Art.Opera
Art
examples of labels that include weights are:
Food.Chinese.Szechuan:10
Food.Chinese:5
Art.Opera:30
Art:5
examples of labels with wildcards and weights are:
Food.Chinese:5
Food.*:3
multiple platforms provide efficient implementations for string searching and manipulation, which provides a reason for expressing this information as a string. To facilitate matching, in a preferred embodiment, more specific classes appear in the tag list earlier than corresponding less specific classes by convention. It will be appreciated that the opposite convention (or any other convention) may be used instead. The categories may be ordered in a sorted sequence to enable easy searching for categories/subcategories.
An alternative embodiment may represent the set of tags as a list of values (as described in the' 693 application) that contains a binary form of category and subcategory ratings (including weights for leaf-level categories). These tags may be part of the advertisement outer zone information described in more detail below.
Advertisement insertion point
In some embodiments, the Dynamic Media Zone (DMZ) technique described in the' 543 application may be used to facilitate insertion. DMZ technology provides support for describing different types of sections in a media presentation. Video presentations interspersed with video advertisement segments are examples of such presentations.
AdExternalZoneInfo
As described in the' 543 application, DMZ technology allows for the presentation of external media referenced via an external zone information construct. As shown below, the extended external section information is built on top of the external section information in order to refer to the external advertisement or the external advertisement matching control.
[ INHERITED ] splice point: the reference index of the ZonePoint element of the point array (to splice the segment media here).
[ INHERITED ] id: an identifier for the section, which is an opaque identifier that the local advertisement matches will use for its own processing.
tag: a comma-separated list of tags for the advertisement sections spliced therein. The tags are made up of names specified in the ad tag taxonomy using dot symbols for hierarchical tags and wildcards (e.g., food. These tags are used to briefly enumerate advertisements from the list of advertisements.
externalAdURN: direct reference to external advertisements.
externaladamcchingcontrol urn: URN to external ad match control. The application uses this URN to look up external ad match controls and passes it the results of performing ad controls to pick the appropriate ad for the external section. In one embodiment, an externalAdURN or externalAdMatchingControlURN will exist; an empty string means that the field does not exist.
AdInternalZoneInfo
AdInternalZoneInfo extends InternalZoneInfo as follows:
tag: as described above.
System integrity
This section describes some of the following aspects of the DRM engine and DMZ security model that guarantee the integrity of the system. The main purpose of the security framework is to ensure that the management and control model remains intact. FIG. 13 illustrates some examples of governing associations in an example embodiment. As shown in fig. 13, these governing associations include a relatively close relationship between a piece of media content 1300 and its associated segment mapping information 1302 and advertisement matching control information 1304. Similarly, an advertisement 1306 is relatively loosely associated with its corresponding control 1308. In contrast, there is relatively loose coupling between the content 1300 and the advertisements 1308 and their respective control information.
In one embodiment, some or all of the following requirements for security and integrity may be derived from the governing model of the system:
(1) they must be played when the advertisement is supposed to be played.
(2) Ads should not be skipped when they are set to "not skippable".
(3) The ad matching control should be authentic and should not be replaceable with an authentic (fraud) control program.
(4) Ad controls should be authentic and not replaceable with authentic (fraudulent) control programs.
(5) The ad file associated with the ad control should be tightly bound to the corresponding ad control. It should not be feasible to replace an advertisement with another completely different advertisement from an unauthorized and possibly malicious entity, such as a fraudulent service or hacker.
Zone map integrity
The integrity of the segment maps (sometimes referred to herein and in the' 543 application as "mZon") ensures that they will be played when an ad is supposed to be played.
AdExternalZoneInfo or AdInternalZoneInfo are part of the ZoneMap structure described in the' 543 application. Digital signatures for ZoneMap protect the integrity of the entire structure (including the AdExternalZoneInfo/AdInternalZoneInfo elements).
The mZon atom itself may be stripped from or substituted into the media file. Depending on the specific requirements for integrity protection, this can be achieved in one of the following ways:
(1) the entire media file (including the mZon) may be encrypted and placed in a media container (such as a DCF) and there may be DRM permissions associated with the media file.
(2) Only the stream can be encrypted; the DRM license in this case may have a secure reference to the mZon atom. This approach ensures that the presentation does not begin before verifying the overall integrity.
(3) The integrity protection mechanism described in the' 543 application is utilized. The DRM license is used to obtain the content key. An mZon signing key is derived from this key using an application-aware key derivation algorithm. The content itself is typically encrypted and the application also checks the integrity of the mZon. When content starts playing, the DMZ obligation references the id(s) in the mZon. When the player detects that the media segment has been tampered with (e.g., if the mZon is stripped or if it has been replaced with another content), it is assumed that the player stops rendering. This does mean that some portion of the content will not be played before tampering is detected. In some embodiments, this may be considered acceptable.
The encryption itself is somewhat orthogonal to the advertising system. The threat analysis of the system may indicate whether encryption is required (e.g., no encryption is required if the content media and ads are delivered directly to the device through a secure conduit and the user cannot tamper with the content media, ads, or DRM objects). In this case, integrity protection is only used to ensure that the advertising system plays the content it is supposed to play in the way it is supposed to play and does so under the control of the DRM engine.
The DMZ technique described in the' 543 application allows media segments to be made "non-skippable". This method may be used to ensure that ads that are not skipped to "not skippable" are set.
Control program security
In a preferred embodiment, the ad matching control and ad control are implemented as self-protected controls in the manner described in the' 693 application and are issued by trusted authorities and are authenticity and integrity protected. The digital signature on mZon ensures that the ad match control will not be replaceable. The strong binding between the ad control and the ad file ensures that the ad control will not be replaceable.
Binding between an mZon and a file
The content and ad files may be tightly bound to the mZon via the mechanism for media segment integrity protection described in the' 543 application. Note that this alone does not guarantee tight binding, as the mZon atom itself can be stripped from the media/ad file or substituted into the media/ad file with something else. Security references from the corresponding DRM control (typically the controller signature will have a secure reference to mZon) or file (including mZon) encryption may be required to ensure a tight binding between mZon and media/ad files.
Abandoning media presentations
As described in the' 543 application, if the integrity of the media segment cannot be verified, the application should stop rendering the entire presentation. The same principles can be used to ensure that a tampered advertisement will not be played. If the ad file is tampered with or if the signature verification of the ad control (including the secure reference to mZon) has failed, the application will not be able to render the ad file using the content key it obtained from the control. In this case, OnAccept callback for ad control should not be invoked and the application move abandons the content playback.
Multiple advertisement listings
Advertisement listing lookup
There are often multiple advertisement listings within the system. Some examples for separate ad listings may be ad listings for 1) commercial or paid ads, 2) 'House', or non-paid ads (e.g., serving as a return ad to fill an ad slot if no suitable commercial is available). Each ad listing may also be organized into smaller sub-listings.
Sorting advertisements into individual advertisement listings helps limit the advertising search space, which can be particularly useful on devices with limited processing power.
As described in the' 543 application, an application may use opaque ids as part of the inner and outer sections. The application may use the id as a key for looking up a list of relevant ads from the table. The ad list may be identified by a URN, which may also be a URL if the ad is fetched/streamed directly from a location (e.g., from a location on the internet). The subcategories of the list may map to paths in the URL or cloned portions of the Urn. This will enable content matching on the server side.
Advertisements and media may be streamed while only trusted DRM objects are delivered to clients according to local storage constraints. These objects may be preresolved and pre-validated and cached locally in secure storage or databases to optimize performance. The ID of the object may be used as a key for looking up the pre-parsed and pre-validated object in the database.
For example:
AdlistMappingInfo
if the mapping is static, it can be built into the application itself and the id can be kept as a transparent identifier for the DMZ. But if the ad is more dynamic (e.g., the mapping varies according to the media content source), it may be useful to have this mapping as part of the zone mapping.
Zonemap will have arrays of AdPlatformAddlistMappingInfo elements that map id to ad list URN/URL.
Host object
One advantage of local ad matching is the ability to optimize matching using the local environment. In one embodiment, the following host objects are made available to instances of a DRM or advertisement matching engine running on the client. These host objects exist with a standard host object environment for any DRM control.
Location: location, the host object, provides the user's current Location (e.g., latitude, longitude, and altitude; city; state, etc.). In one embodiment, the values are expressed as strings and the host objects are live objects (i.e., they become updated as the user moves through the geographic region). Such a host object may be stored, for example, in an "/AdPlatform/LocalContext/Location < - (dimensional, longitudinal, elevation) triple", and the DRM engine may retrieve this object as needed. Alternatively, a host function may be exposed to return location information.
The categories (e.g., preference classes or membership) to which the user belongs (and the relative weights for each category) may be important local context information. The same advertisement matching control deployed on multiple devices with different user profiles may result in matching advertisements that are very different in the same overall situation. Such profile information may be stored in the following locations: /AdPlatform/LocalContext/UserCategories/< Category >/< Sub-Category >/./weight. Where "weight" is the normalized relative weight (e.g., values 0-100) for a class.
In some cases, this user classification may occur entirely on the client and may not be specifically shared with the server for privacy reasons. In such cases, the local environment information becomes more important for local advertisement matching. In one embodiment, the control program owning the UserCategories container object has the right to write and update the list of users to the user's category.
In one embodiment, the user categories are stored in a security status database (e.g., the status database as described in the' 693 application) of the DRM engine and have the PUBLICREAD flag set to them provide read-only access to this data to all other control programs. Alternatively, the user classes need not be stored in the state database but can be computed entirely by the application (if it knows how to compute the classes) and exposed to the DRM control as a read-only host object.
Section information
The section information is a parameter for advertisement control execution and advertisement matching control execution. In one embodiment, this parameter reveals some data from adenternalzoneinfo to the control. For example:
/DRMEngine/Action/Parameters/DestinationZone/ZoneInfo/id
/DRMEngine/Action/Parameters/DestinationZone/ZoneInfo/tags
/DRMEngine/Action/Parameters/SourceZone/ZoneInfo/id
/DRMEngine/Action/Parameters/SourceZone/ZoneInfo/tags
where DestinationZone refers to a media segment in the content. The id and tag of the destination section are revealed as children of this container object. Similarly, SourceZone refers to a media segment in the advertisement itself. The id and tag of the source section are revealed as children of this container object.
In one embodiment, for ad matching control execution, the results of the ad bidding action are exposed to the control as a container host object. The following object paths may be used:
/DRMEngine/Action/Parameters/AdBids
/DRMEngine/Action/Parameters/Ad1[ optional ]
/DRMEngine/Action/Parameters/Ad2[ optional ]
In one embodiment, the advertisement bids are containers and are typically accessed using special child names ('0', '1', '2', etc.) that are elements of the "AdBid" bid array. Each bid may have any arbitrary parameters up to any arbitrary depth as a child host object. In this embodiment, the only requirement would be that the corresponding ad match control needs to understand these parameters. Control of each advertisement evaluated back exposes to the advertisement matching engine an Expanded Status Block (ESB) as the corresponding host object (the 'n' child of the AdBid container).
In one embodiment, the Ad1 and Ad2 parameters are optional parameters that are used to convey an index of two advertisements from AdBid to be considered (comparison will be limited to these advertisements). When these two optional parameters are passed to the CompareBid method of match control, it will return a return code in the ESB that determines the relative ordering of the two advertisements. The CompareBid method of advertisement match control may then be used as a comparator function for ordering all advertisements into a sequence of advertisements in which the queues are ordered by their priority.
Example (c):
/DRMEngine/Action/Parameters/Ad1- > value of '2'
/DRMEngine/Action/Parameters/Ad2- > value of '5'
The above parameter values are passed to ask the CompareBid method to compare the following two offers:
/DRMEngine/Action/Parameters/AdBids/2
/DRMEngine/Action/Parameters/AdBids/5
in one embodiment, the state database described in the' 693 application would be available for these ad controls to have them persistently store some state information.
Examples of persistent state information that the ad control may require to store may include the number of times it has been played when it was a winning bid, the last bid price, and whether the last bid was successful. This information (e.g., number of impressions, last bid status, etc.) may help control the value of the next bid (e.g., control may want to bid more/less if a previous bid was successful or unsuccessful, or control may want to set an upper limit on the total number of impressions, etc.).
Advertisement control
In one embodiment, a new "Action" (referred to as "Bid") of the type described in the' 693 application is introduced and used for local advertisement matching. The control object offering for the ad slot does so via this Action. In one embodiment, the following routines may be defined for the Bid action:
Control.Actions.Bid.Init
this routine will have the same semantics as control.
Control.Actions.Bid.Check
This routine will have the same semantics as control.
Control.Actions.Bid.Perform
This routine will have the same semantics as control. If the routine is successful, ResultCode is 0 and the next entry on the stack is a pointer to ESB described below.
Control.Actions.Bid.Describe
This routine will have the same semantics as control.
Control.Actions.Bid.Release
This routine will have the same semantics as control.
Quoted price results
In a preferred embodiment, the ESB structure returned by the Bid action is as described in the' 693 application. As an example, a "declearive" ad control may use a taxonomy to declare its derivatives and may Bid for an ad slot by calling its Bid in the ESB via a 'Bid' action. The ad matching control is responsible for evaluating offers appropriately and focusing on the parameters declared by the ad control. Ad control and ad matching control infer a common taxonomy for ad parameters.
The following table shows an example of ad controls written in a procedural style. The control logic loads the rules used to evaluate the Bid price and controls then inserts these values into the ESB it returns when the ad-controlled 'Bid method' is invoked.
Factory notice control recall
OnAccept tune back
In one embodiment, the Bid result ESB will contain an "OnAccept" callback (such as described in the '693 application) to ask the application to callback ad controls if the ad matching control has accepted the ad control's Bid. When the ad control receives this callback, it should store information in the status database that it needs to use at a later time.
OnCallToAction callback
In one embodiment, the Bid result ESB contains an "OnCallToAction" callback to ask the application to call back ad control when the application performs the task associated with the ad that called the action. In one embodiment, when the ad control receives this callback, it should meter the corresponding event.
Advertising control obligations
In some embodiments, the Bid result ESB may contain a CRITICAL obligation if the ad corresponding to ad control is an ad that invokes an action. For this purpose, the following list of obligation parameters is defined. Additional parameters may exist in obligations and the agreement of these custom parameters will be proprietary to the application and advertising control provider. The name of the obligation may be, for example, urn.
HyperlinkReference: a value list that specifies hyperlinks that the host application needs to open in the browser.
SMSReference: a parameter indicating that the host needs to send an SMS message to the specified SMS code.
Phonenumber reference: a parameter indicating that the host needs to call the specified telephone number.
Advertisement matching control
In one embodiment, a new action- 'CompareBid' is introduced for local ad matching. In one embodiment, the control object supported by this action evaluates the quote and completes one of the following operations:
advertisements with winning offers are selected. Optional Ad1 and Ad2 parameters should not be passed in this case; or
The two bids are compared (when the optional Ad1 and Ad2 parameters are communicated) and their relative priorities are established.
In the first case, the advertisement matching control evaluates all advertisement bids and selects the best match. All logic resides in the virtual machine bytecode itself.
In the second case, the virtual machine code acts as a comparator function that the application repeatedly calls to order the list of advertisements into an advertisement queue based on the relative priority between the individual advertisements. This approach is provided to enable higher application layers to implement algorithms (e.g., heap ordering, merge ordering, etc.) appropriate to the problem and platform. In this case much of the ordering logic is implemented in an application implementation language that is more easily optimized for the platform. The set of virtual machine instructions described in the' 693 application is relatively simple, and therefore this division of responsibilities may represent the most efficient solution.
Control.Actions.CompareBid.Init
This routine will have the same semantics as control.
Control.Actions.CompareBid.Check
This routine will have the same semantics as control.
Control.Actions.CompareBid.Perform
This routine will have the same semantics as control. If the routine is successful, ResultCode is 0 and the next entry on the stack is a pointer to ESB described below.
Control.Actions.CompareBid.Describe
This routine will have the same semantics as control.
Control.Actions.CompareBid.Release
This routine will have the same semantics as control.
CompareBid results
The ESB structure is as described in the' 693 application.
In one example, the CompareBid action of the Ad matching control layer program returns an ESB (reflecting the optimal pick) with the following structure:
as another example, the CompareBid action of the Ad matching control program returns an ESB having the following structure (reflecting the result of the comparison between Ad1 and Ad 2):
in one embodiment, the possible values of the return code may be as follows:
usage data filtering
Privacy considerations
Local laws often constrain the types of information that can be selected for a user through permissible privacy practices and specifications of law. In some embodiments, the device may talk to a trusted service at the backend. The extension data may be collected and sent to a trusted server. Information may be protected from disclosure on the server side as required by local regulations.
However, in some cases, there may be constraints on what data can be sent out to the server, even if the backend service itself is trusted. In this case, the collected data may be filtered and/or anonymized in some way before it is sent out to the server.
As an example, an application may anonymize data by padding some random data (e.g., constant random data stored by the application) with personally identifiable information and taking a one-way hash of both. The particular technique that will be used by the application to anonymize the data is the responsibility of the application, and it will be understood that any suitable technique may be used.
There may be some data elements collected at the client for local use, but these may need to be filtered out before reporting to the server. The policy on what to filter out may be entirely defined by the application. However, this policy can be more flexible if it is implemented as DRM control, when an application can be allowed to implement some or all of the following:
different policies are used for different sites based on local methods without affecting the application.
The policy is updated independently when the local laws change after the service has operated without requiring a software update to the application.
The following sections briefly describe how DRM engine techniques, such as those described in the' 693 application, can be used to use data filtering.
Filter function
In one embodiment, a new action supported by the DRM control is introduced, 'FilterUsageData,' which enforces a policy for filtering usage data. Parameters of the FilterUsageData action may include:
wherein:
"DataName" is the name of the data item that needs to be filtered.
"DataNameSpace" is a namespace in which data item names are defined.
"Data" is the actual value of the Data box.
"ContextID" is the opaque environment id; the meaning of this context id follows a private agreement between the application and the privacy policy provider.
"transformational methods" are data structures used to convey the possible data transformation methods supported by an application. In one embodiment, the agreement of the terms, data types, and layout of this data structure is private to the application and privacy policy provider.
Control.Actions.FilterUsageData.Init
In one embodiment, this routine will have the same semantics as control.
Control.Actions.FilterUsageData.Check
This routine will have the same semantics as control.
Control.Actions.FilterUsageData.Perform
This routine will have the same semantics as control. If the routine is successful, ResultCode is 0 and the next entry on the stack is a pointer to ESB.
Control.Actions.FilterUsageData.Describe
This routine will have the same semantics as control.
Control.Actions.FilterUsageData.Release
This routine will have the same semantics as control.
Results for FilterUsagData
This method returns to ESB. In one embodiment, the ESB structure is as described in the' 693 application. Examples are shown below:
ResultCode
the following table gives the potential values of the ResultCode parameter in one example embodiment:
OutputData
this is a block of values containing the following data:
(1) a field for signaling the selected transformation method to the application; or
(2) The transformed data itself (e.g., if the filter control completes the TRANSFORMATION itself to enforce the policy when no TRANSFORMATION provided by the application is available and indicates this by setting the return CODE to RESULT _ CODE _ CUSTOM _ TRANSFORMATION)
Usage data reporting
Dynamic trust relationships
In one embodiment, the client application allows a user to dynamically manage trust relationships with content and advertisement providers. For example, the user may decide to trust the content provider, and the content provider's trust anchor will then be stored at the client at a particular location.
In one embodiment, the trust level may still be less than the trust placed on other trust anchors, and the application may therefore only do a limited set of operations with these "two-degree" or "limited use" trust anchors.
In some embodiments, a common trust hierarchy is required. This may be advantageous for a number of reasons including:
(1) if a common trust hierarchy is used, control of the operation is generated not by unknown and potentially malicious parties but by parties having some type of trust relationship with the trust hierarchy. This provides some protection against fraud controls that might attempt to exploit if problems were found in the DRM engine implementation once the solution was deployed in the field.
(2) The trust relationship of settlement facilities with central trust authorities means that unknown and potentially malicious settlement facilities cannot become "free riders".
Metering obligation
The' 881 application describes a metering obligation framework that meters higher-level (e.g., application-level) events (e.g., survey events, voting events, user-skip events, etc.). These obligations may be expanded to include the URL of the settlement institution to which the data is to be sent. For example, the value list will contain one or more parameters-the string parameter "settlement institution URL", and the value will be a string that contains the URL for the settlement institution.
P2P content and advertisement sharing
Because of the vast amount of content available over the internet and other distribution media, it is often difficult to find relevant content. Media syndication publication via RSS provides a partial solution to this problem. The user may subscribe to content feeds that can meet their preferences as follows and effectively sign up to receive that "channel".
Another content distribution mechanism is via peer-to-peer (P2P) sharing. P2P sharing refers to any two devices "joined" or "connected" to each other to share content. Although devices may expose RSS feeds of their content to each other, users still need to select feeds and/or individual content items. This may not be an optimal user experience due to the small form factor of the mobile device.
There are some interesting possibilities during the P2P interaction:
(a) the devices may automatically exchange content that will likely be relevant to the respective owners of the devices.
(b) The devices may automatically exchange advertisements that are more likely to match for local ad controls on the recipient device.
These types of interactions would provide a means for seamlessly disseminating content and advertisements to people who may find them relevant and would provide a better user experience.
Under normal circumstances, however, random peers do not trust each other and it is not possible for peers to probe each other directly. The DRM engine technology used in the preferred embodiment makes it possible for an authenticated and integrity protected DRM agent to run on the remote peer in order to obtain non-personally identifiable environmental user information, device information, information about the user's past behavior, etc.
With this information, the sending peer can decide what content and/or advertisements will likely be relevant to the receiving peer and push these automatically to the recipient.
Remote probe agent
The sending peer will run a remote probe agent on the remote (receiving) peer to probe its environment for information. The types of information it can detect may include, for example:
(a) user profile information
(b) Device environment information
(c) Behavioral information/transactional data
The agent may probe the information, filter it as appropriate, e.g., using the filtering mechanisms described herein, and return the information in the ESB. This ESB effectively contains a filtered local environment for the remote peer. The sending peer uses this information with ad control and/or ad matching control and determines content items and ads that may be relevant to the recipient.
In some embodiments, the following routines may be defined:
Control.Agents.RemoteProbe.Init
this routine will have the same semantics as control.
Control.Agents.RemoteProbe.Run
This routine will have the same semantics as control.
Control.Agents.RemoteProbe.Describe
This routine will have the same semantics as control.
Control.Agents.RemoteProbe.Release
This routine will have the same semantics as control.
Examples use examples
The following discussion illustrates how certain example embodiments utilize the DRM engine configurations enumerated above and described in the '693 application and/or the' 551 application.
A relatively simple use case deals with local ad matching involving a set of three ads. Assume that server-side filtering has occurred and that three advertisements are in the advertisement list. They are:
(1) advertisement for high-end seated dining restaurant (Ad1)
(2) Advertisement for Chinese type out-of-band fast food restaurant (Ad2)
(3) Advertisement for mobile phone (Ad3)
As shown in fig. 14, in this example, the content is a soap break that requires an advertisement to be shown before the content is played in access unit 0.
Consider the following excerpt of the content category taxonomy:
the tags for the content may be as follows:
the zone map corresponding to this content may be as follows:
there is a MediaZone obligation specifying that the whole appears to be MAGNETIC and that the small sections around the insertion point are stricky and noslip. Further, the outer sections are STICKY and NOSKIP to ensure that the outer advertisement will not be skipped or fast forwarded (see FIG. 15).
Consider the following excerpt of the category taxonomy for advertisements:
for purposes of this example, assume that the maximum access units for an advertisement are 300, 400, and 500 for the three advertisements described above.
The zone map for ad1 is:
the segment map for Ad2 is:
the segment map for Ad3 is:
for purposes of this example, assume that the ad matching control (with Id: "urn: acme: control: 003") includes the following rules:
(a) only food-related advertising is used if the time is between 11:00am and 2:00am or 6:00pm to 8:00 pm.
(b) For all other times, all advertisements available are used.
(c) Within the available advertisements, the bid price is checked and the winner selected (e.g., the winner may be the highest bid or give relative priority to the highest bid depending on how the control is written).
It will be appreciated that in some embodiments, the ad matching control itself may include one or more rules that may specify the type of content with which it may be rendered and/or the amount it is willing to bid when a particular type of content is given.
For the purposes of this example, assume that ad control includes the following rules:
ad 1: a price of 10 cents is quoted at dinner time (6:00 to 8:00pm), otherwise 5 cents is quoted with an upper limit of 20,000 impressions.
Ad 2: a price of 7 cents is quoted during lunch hours (11:00 to 2:00pm), otherwise 3 cents is quoted with an upper limit of 20,000 impressions.
Ad 3: a price of 2 cents is quoted throughout the day, except when near the electronic store, and then 9 cents is quoted. The upper limit is 5000 impressions.
Some of the results in this example are summarized below:
near the electronic store, the mobile phone advertisement wins when the time is not lunch time or dinner time.
At dinner time, the fine-eating yue-style restaurant advertisement wins.
During lunch time, Chinese style out-of-band restaurant advertisements win.
When the impression reaches an upper limit, advertisements are removed from the list of competing advertisement slots.
The following illustrates some examples of data structures that the ad matching control may return in various combinations of the above scenarios.
Advertisement matching control result (optimal selection)
Example (b): the time of a dinner; not located near the electronic shop
As a result: selection Ad1
Advertisement matching control result (comparator)
Example (b): the time of a dinner; not located near the electronic store; compare Ad1 with Ad2
As a result: ad1 > Ad2
As shown in FIG. 15, the selected advertisement will play from beginning to end before the media content. The user will not be allowed to skip or skip the advertisement within the advertisement.
Obligation of advertisement for action call
In this example, it is assumed that a mobile phone advertisement is an advertisement calling for action. In this case, the ad control will have (i) metering obligations, (ii) a callback that asks the application to invoke the engine when a click occurs, and in response to this click, the application receives obligations to invoke the action. This tells the application what to do (e.g., place a telephone call to a direct marketing service).
In one embodiment, the OnAccepCallback is called after the advertisement is successfully bid and played, and each advertisement keeps track of the number of impressions that have been consumed.
In some embodiments, all controls are checked for integrity. For example, control is considered authentic if there is a PKI signature to the controller and the corresponding chain of certain events can be verified to extend to one or more related trust anchors. In one embodiment, the zone map integrity is checked for content and advertisements before playback begins.
Competitive quotes
The DRM engine framework enables actions in the control program to be invoked repeatedly. This capability allows for competitive bidding between advertisements. The bid process is resent in the case of competing bids following each ad control bid (e.g., each ad control can see other bids via an AdBid container that can be revealed to the ad control as a host object in the same way they are revealed to the ad matching control). The ad control can competitively tailor its own offer up or down in subsequent rounds of offers. The entire process may be repeated several times as required by the rules of the bidding process to obtain a final bid from the ad control that the ad matching control will then evaluate.
Usage data filtering and reporting
Client usage data
The following are examples of the types of usage information that a client may have collected:
| data name | Data type | Value of |
| personality-id | String | “urn:...:perso:0001” |
| event-id | String | “PLAY” |
| timestamp | String | Fri Jan 30,2009 12:01:03 |
| content-name | String | Murray |
| genre-tags | String | Entertainment.SoapOpera |
| content-tags | String | Entertainment.SoapOpera.Name.Murray |
| genre-id | Long type | 1001 |
Privacy policy
For this example, assume that there is a privacy policy that specifies:
(a) inhibiting DRMEngine-personalitic-id.
(b) Event-id, timeframe and gene-tags are passed.
(c) Anonymizing the content name and also anonymizing the content tag because they identify the content too similarly.
(d) This particular content requires the reporting of the gene-id under buckets 1001 through 1003.
(d) Example 1: the application is an upgraded version and knows how to do so.
(d) Example 2: the application is an older version and does not know any transformation methods for this change.
In-motion filtering
The following discussion shows the parameters that feed the 'FilterUsageData' action in the context of the above example and the results returned by this action.
Item delivery
As an example, the action parameters may be as follows:
the result will be the following (e.g. due to the privacy policy loaded in the control program):
item suppression
By way of example, the DRM engine action parameters may be as follows:
the results will be as follows:
item anonymization
As an example, the action parameters may be as follows:
the results will be as follows:
data transformation:
example 1: the newer application knows how to transform the data for the gene-id:
the results will be as follows:
customized data transformation
Example 2: the newer application does not know how to transform the data for the gene-id. An application may call FilterUsageData for a data type and will find no transforms available. In which case it would have to transform each individual data item as follows:
the result will be as follows due to the privacy policy (loaded in the control program).
Report to the Settlement institution
As another example, assume that the metering obligation includes the following settlement house URL:http://www.acme.com/ services/ad/usage-data-collection。
the collected usage data will be submitted to the clearing house URL after filtering as described above using the appropriate format of the payload and the appropriate network protocol.
P2P content and advertisement sharing
User profile (remote opposite terminal)
Assume that the remote peer has the following user profile information:
the remote probe agent may run on the remote peer on behalf of the sending peer. It will probe the host environment and generate a filtered copy of the environment and retrieve this information in the results. In this example, assume that the filtering rules specify that the user's political classification should not be made public to anyone. In one embodiment, the result code appears to be the following result code:
remote user profile (obtained by sending peer)
The sending peer has received the following user profile information for the remote peer:
at this point, information obtained from the remote peer can be used to create a simulated environment for the remote peer, and ad controls can be evaluated one by one. Their results may be cached.
The next step is to evaluate ad matching controls for the content. If the content has matching advertisements in the user's environment, the content and advertisements will be added to the short listed content items and advertisements.
After evaluating all advertisement matching controls, a short list of advertisements and content items relevant to the remote user will be created.
The short listed content and advertisements will be pushed to the remote receiving peer along with the advertisement matching control and advertisement control. There is also the possibility of streaming the content to a remote receiving peer instead of physically delivering the content. If the peer acts as a proxy for the remote receiving peer (e.g., the peer performs advertisement matching on behalf of the remote peer).
Local quote
Embodiments of the systems and methods described herein provide mechanisms for advertisers and/or content providers to specify rules regarding how and when to present advertisements and/or content. The advertisement provider rules may include specific conditions as to when an advertisement may be selected, the particular content type with which the advertisement should be rendered, etc., while the content provider rules may include spending details. The DRM engine ensures that the rules are executed and the resulting obligations are met.
In one embodiment, the targeting is done at two different levels. The first pre-filter pass is performed on the server side as described elsewhere herein. A second pass is made on the client side, additional embodiments of which are described below. In one embodiment, the second pass is an auction in which the advertisement matches the particular content and the particular user.
In one embodiment, the dynamic media segment technique described in more detail in the' 543 application is used to implement the ability to support separating content and advertisements and mixing them to form a presentation (e.g., content shown to a user).
Media segment information embedded within the content may specify one or more points at which another piece of media (identified by an id called the external segment id) needs to be inserted during presentation. Other media files, such as advertisements, require a section insertion with a corresponding id (internal section id). Although this is not always the case, the segments typically cover the entire file. Embodiments of the inventive work body provide a mechanism by which a client can locate and select relevant media segments (e.g., advertisements) to be inserted.
FIG. 16 illustrates a piece of media content 1602 formatted in accordance with the dynamic media segment technique described in the' 543 application. As shown in fig. 16, the content 1602 has one advertisement slot represented by the outer zone id 101. In the example shown in fig. 16, the electronic device on which the content 1602 is stored includes three advertisements, and advertisement selection software running on the electronic device determines which advertisement to insert by performing local advertisement matching as described herein. If advertisement 2 is selected (e.g., if advertisement 2 wins an auction conducted by the advertisement selection software), the presentation of the content and advertisement will be as shown in fig. 17.
Framework
As shown in FIG. 18, in one embodiment, advertisement selection software 1802 is implemented as a plug-in to a DRM enabled media player 1802. An external section parser may be used by the dynamic media section technology 1806 to match the external section id with the actual file (or part (i.e., section) thereof). in one embodiment, the dynamic media section technology 1806 may use multiple external section parsers and may use the ad selection module 1802 to parse the external section id for content designated for use in the ad matching system. In the preferred embodiment, the advertisements in the advertisement pool 1808 bid for slots within a piece of content 1810. DRM within the advertisement is performed by the RAM engine of the system and determines the amount the advertisement is willing to bid for a given time slot.
In a preferred embodiment, content 1810 also has the floor in advertisement matching via its own associated DRM controls 1812. For example, the association control information 1812 for content may exclude certain types of advertisements while favoring other types of advertisements. For example, a child's TV show may prefer toy advertisements over investing in banking services.
In one embodiment, the local advertising auction utilizes user information that can be used by the user's device to determine a bid price. Making offers on the device protects the privacy of the user. Alternatively or in addition, the bidding component may use local environmental information (e.g., local time, global positioning coordinates, etc.) to determine the best match between the advertisement and the content.
Local advertisement matching
The following discussion illustrates mechanisms and components involved in advertising bids in some example embodiments.
How does the client know which advertisement matching technique to use?
When a segment map for a piece of content has an ExternalZoneInfo element (identified by outer segment idX) (meaning that the content contains an advertisement slot), the client must find the relevant media segment for insertion in the slot. The associated media segment is the portion of the media file whose segment map contains an ExternalZoneInfo element with an internal segment id that matches the external segment idX.
In one embodiment, the external segment parser is responsible for finding the relevant media segments to be inserted. If the content is named a specific ad matching service or technology (as described in more detail below), the customer uses that ad matching service or technology to find the relevant media segment. For example, a piece of content may specify this information in its header.
As shown in fig. 18, in one embodiment, the input to the advertisement matching module 1802 is the file name of the content and the section id to be settled. The output is an identification (e.g., file name, URL, etc.) of the selected advertisement. In a preferred embodiment, an advertisement matching process (such as the advertisement matching process shown in FIG. 19) is used. As shown in fig. 19, the client may first update the user information if necessary (1902). The client then extracts the content requirements for that ad slot (1904) and excludes ads from the auction that do not match those requirements (1906). Next, all appropriate ads are bid for slots (1908), and the client picks the highest bid and returns the path of the ad and optionally also other information (1910).
In one embodiment, some or all of the following data is used for ad matching (for content and for advertising): media zone information (mZON); advertisement matching technology information (tZON); and/or licenses and content (ids).
If any of these elements are stripped of content, the advertisement matching module returns an error. In one embodiment, each of these elements, except for the content id, contains a signature. If the signature verification fails, an error and preferably no content is rendered to the dynamic media segment module layer.
As previously indicated, in one embodiment, the ad matching module receives a license associated with the content and executes a control. In one embodiment, the content control has input parameters: DRMEngine/Action/Parameter/SlotNumber, which is an integer object containing the slot number (index in base 0). In one embodiment, the requirements are returned in the following ESBs:
an "exact" is an optional string separated by semicolons containing tags that the content provider does not want to associate with its content. In this particular example, KidCo does not want adults or violent advertisements to play back in its content. Even if a violent ad has the highest bid for a slot, it will not be shown.
"Prefer" is an optional string, separated by a semicolon, that contains tags that are preferred by the content provider. In this particular example, the content provider kidco may want to show a kidco advertisement even though the kidco advertisement is not being bid the most. If no KidCo. advertisement is engaged in the bid, another advertisement is shown.
"Minimum" is an optional string that may specify the Minimum revenue a content provider wants from a particular piece of content or time slot. The value of this object is the minimum bid for that time slot.
Once the content is requested, the non-excluded advertisements are placed in an auction. The "include" tag will be compared to the tags contained in the advertisement. An ad will be excluded from the auction if one or more excluded tags appear in the tag entry of the ad's InternalZoneInfo.
In the preferred embodiment, the ad control is responsible for auctions. As indicated above, the pre-selected advertisement is placed in an auction. The bid price depends on the preferences of the advertisement provider. In one embodiment, the advertising provider may base the bid price on a number of variables including, for example:
user personal data such as links or user attributes (such as links or user attributes that may be stored in a secure database of the DRM engine).
Circumstances such as time of day, date, location, etc. (e.g., pay more when the change is closer to a certain date and pay less after that date).
Other information such as usage information (e.g., pay x for first performance, pay for second, etc.).
The ad-controlled control.
Where "price" is the price that the advertisement is quoted for play, where if the value of "NotInSameContentSession" is 1, then the advertisement will be selected for only one slot of a given piece of content.
The ad selection module will typically pick the most offered ad. However, as indicated previously, in one embodiment, an exception is that even if the advertisement with a tag matching the "Prefer" tag is not the highest bidding advertisement, it will still be selected over the higher paid advertisement that is not preferred.
In one embodiment, if no advertisement has been found for the slot, the advertisement matching module returns an error and the application stops any further playback of the presentation. In some embodiments, certain default advertisements are packaged with the content, and the default advertisements are provided to the client to ensure that this error is not encountered.
In some embodiments, the content provider may deploy the same piece of content for paid subscriptions (where the content is not shown with advertisements) and for ad-supported services (where the content is reflected with advertisements). This may be implemented, for example, by marking the advertisement segments as INSERTED (so that they are only represented if there is a NO _ SKIP obligation for them). Control of the content item verifies the existence of the paid subscription (e.g. using the link object and/or by retrieving the object from a database). If the user does not have a paid subscription (e.g., as indicated by the user's lack of a valid subscription link), control of the content item feeds back to an ESB (an example of which is shown below) that indicates that the advertisement segment cannot be skipped.
However, if the user has a paid subscription, control will not return such an obligation and the user will not need to view the advertisement, and thus an advertisement match need not occur.
In one example, two obligations are used to record that an advertisement has been played. Control of the content item returns these obligations in the ESB (examples of which are shown below).
Setting zoneinfo flag to METER means that if there is a metering obligation for this content, the application notes the metering event when this section has been played. In this example, there is a metering obligation (i.e., a parameter named "urn:. occupancy. gauge-play-duration") so that once segment 101 is successfully played, the application will note down the event along with the advertisement matching information. Ad metering is performed by appending metering data to the DMZ logical id (i.e., "logicalId" in the example ESB above). Examples of types of advertising-related data that may be metered are shown below:
this example shows a summary of ad matches for the piece of content with the id "urn:. In this example, two slots must be filled. For the first time slot, two ads participate in the bid, and "rn:.: acme:00000009: ad: 00000006" wins the auction with a bid of 45 units, although it will pay only one unit more than the second optimal bid of 40 units. Only one advertisement participates in the bid for the second slot (i.e., "acme: 00000009: ad: 00000007"), thus picking it and it pays its bid price. In the example shown above, the metering data also contains context information about the auction (such as the fact that there are two user nodes). It will be appreciated that this example provides an example of what content may be metered and that more, less, or different information may be collected in other environments. Furthermore, in view of privacy concerns, only a subset of the collected information may be sent to an external server. In one embodiment, the metering data is securely stored in a database of the media player (or of the DRM engine) and opportunistically reported back to the external server via a secure channel.
Package with a metal layer
In one embodiment, a packaging script that takes plain text as input and packages it may be used as follows: it may encapsulate content files as well as advertisement files. For example:
according to this example, the content file may be packaged as follows:
the advertisements may be packaged as follows:
as described in the' 543 application, in one embodiment, the dynamic media segment information is contained in the "mZon" atom contained in the udta atom of the video track. An example of an input for a content file is shown below:
in this example, there is one outer section, section 101, to be spliced at access unit 289.
The following shows an example of input for an advertisement:
in one embodiment, the advertisement matching information is contained in a "tZON" atom that is itself contained within the udta atom of the video track.
An example input for a content file is shown below:
the following shows example inputs for advertisements:
this section mapping defines the tags that are used by the advertisement matching process to compare with the "Prefer" and "express" tags.
As previously described, in one embodiment, DRM control is used to make the actual quote and match. In one embodiment, while the system backend may be able to add a set of attributes to customize the content control bytecode, it is fixed (not dynamically generated). Some examples of attributes include "Prefer", "exact", and "Minimum". In one embodiment, the ad control may be generated according to the specification of the bidding rules for the ad. Examples of such specifications are shown below:
in this example, the cardinal price is 0 units, but if there are technical head objects, the new quote price is 41 units. If two or more slots are available, the element "NotInSameContentSession" indicates that the advertising provider chooses not to show this advertisement twice in the same piece of content.
More complex examples are shown below:
in this example, the base price is 30 units and three different constraints alter the quote price. I.e. if the user is a sports fan, the advertisement provider is willing to pay 5 units more than its current bid price. If the user is male, the advertising provider would like to raise its current price by 5 units, but if the user is not male, it lowers the current price by 10 units. If the user's input is on the high side, the advertising provider is willing to raise its price by 90 units; however, the maximum price is set to 100 units, so if the quoted price exceeds this value, it is set to the maximum price.
The following shows example pseudo code for the controls generated from the above control description:
while the above examples illustrate the use of attribute constraints, it will be understood that other types of constraints (e.g., time and/or link constraints) may also be used.
In one embodiment, encryption and tagging are used only for content files; the advertisement file maintains plain text; however, licenses are added to (or otherwise associated with) both the advertisement and the content file. The content license may contain preferences and rules of the content provider. The ad licenses may include bid controls.
User profile
The offer control preferably has access to up-to-date user profile information. This information may be stored, for example, in a database (e.g., a secure database of the type described in the '693 application) on the user's system.
User profile information may be obtained in a number of ways. For example, when a user purchases a gaming system, he may also obtain a license that, when executed, creates a "technical mind" user profile object. Such permissions may be stored in a special directory of the user's system. The license may also be downloaded when the user clicks on a link on the website. As yet another example, if a user subscribes to a plurality of travel TV shows, an online store that provides the TV shows may send a license that creates a user profile object that indicates that the user is interested in traveling. These objects may be deleted if the user's behavior changes. For example, the device may be rescued with permission whose control deletes outdated objects. In one embodiment, the licenses are signed and only if their signature is valid are they consumed by the advertisement matching module.
In one embodiment, the advertisement matching module looks for licenses in the license catalog, executes them, and deletes them before an advertisement match occurs. In this way, the advertisement matching process is based on the latest environment. Ad matching controls the use (e.g., reading) of user profile objects created as a result of executing the license during the bidding process.
In one embodiment, user profile information (e.g., objects) stored on a user's system can only be accessed by a control that is signed by the same entity as the control that created it, thus ensuring its privacy.
In one embodiment, the advertisement matching client obtains user information from the server side. The role of the client is to report the user's actions: the server side uses this information to determine an accurate user profile (metadata). Alternatively or in addition, if the client is intelligent enough to compute an accurate user profile, the round-trip from the client to the server and back is unnecessary. In both examples, the user's profile is stored as an object in the client's local database. In other embodiments, the user's profile information may be stored in another form, as discussed in more detail below.
One way in which user profile information may be used for offer control is to implement one or more host functions for providing this information. For example, a function called "system. The primary input parameter is the name that controls the attribute that is desired to be queried (e.g., "TechSavvy"). If an object exists, the output is the value of the object, or if such an object is not available or if an error occurs, the output is an error. The value of the object may represent a weighting (e.g., an indication of how reliable the system is).
In one embodiment, such a function has the following inputs:
and (4) a stack top:
where "name" is the address of the null terminating string (which contains the name of the object requested), "Return buffer" is the address of the memory buffer (where the value of the object is to be stored), and "Return buffer size" is a 32-bit integer (which indicates the size in bytes of the memory buffer (where the value of the object is to be stored)).
In one embodiment, the system. And (4) a stack top:
where "TypeId" is the object type id or a negative error code if the call fails, and "Size" is a 32-bit integer indicating the Size in bytes of data returned in the caller-supplied buffer or the required Size if the caller provides a buffer that is too small. If the requested object does not exist, the ERROR returned is ERROR _ NO _ SUCH _ ITEM. If the buffer supplied for the returned value is too small, the ERROR returned is ERROR _ insufficent _ SPACE. Other error codes may also be returned.
Another example of a function that may be defined in order to implement price quote control to access user profile information is "system. This function may be used by the control to verify the presence of a user metadata entry. In one embodiment, the primary output parameter is the name that controls the metadata that wants to confirm presence. The output is an integer value: zero if the object exists or a negative error code if it does not exist. In one embodiment, system.
Personal agent
The following describes the functionality of a personal agent ("PA") in a media distribution environment, where content is distributed in a variety of ways through a number of services and mechanisms, and where advertisers automatically pay for media access, who pay a premium price to a content provider when a particular advertisement is viewed by a consumer that is reliably known to have certain attributes and interests. In a preferred embodiment, the PA operates in conjunction with a consumer operated media viewer on a variety of devices (e.g., PC, tablet, cell phone, TV, etc.). The PA makes ad selections in real-time as the consumer based on local actions that reference the consumer's personal and environmental metadata for the benefit of the content provider. The PA sends anonymized information about advertisement viewing events to a trusted clearing house designated by the content provider. The isolated nature of the actions of the personal agent, anonymization process, and open and trusted information policies of the settlement structure provide substantial privacy protection.
The PA may learn more about the user through the user's online interaction and may use this information to select highly relevant advertisements and automatically recommend content that matches the user's interests. The PAs may do so without revealing the user's personal information to anyone, but they may also help the user to share this information (e.g., selectively through a social network).
Knowing that many PAs about the user can match the user's interests to the advertiser in a valuable way, so that the advertiser will be willing to pay more for the right to present certain advertisements to the user. Users will also benefit from viewing more relevant advertisements and content providers benefit from getting more payment by having the most relevant advertisements displayed in conjunction with their content. The PA may thus browse the internet to search for advertisers who notice that users browse information about a certain type of car, sell similar products, and may target advertisements to that particular interest. Other data about the user may be used to find a more precise match or to select parameters in the advertisement presentation that may better match the user's context and interests (e.g., certain variations of the advertisement may be selected by gender). If the PA knows much about the user, it can do a better job of finding relevant advertisements and even finding "long tail" advertisements that are intended to attract a relatively small number of viewers. Thus advertisements for products may automatically find users rather than searching for those products on the internet, and viewing those advertisements may subsidize viewing the user's favorite TV shows and movies. Although a company may not find it cost effective to advertise its products during SuperBowl, a large amount of video showing the advantages of the products may already be available and will be appreciated by the knowledge that it intends to decide to purchase it or similar products.
In one embodiment, the user's personal agent has access to the user's personal information, but it works for the user, behaves in the manner indicated by the user, and generally does not need to specifically inform anyone about the user's information. The personal agent may also be capable of performing some or all of the following operations:
● collects the user's personal information from various sources and stores that information in encrypted form, where it is only accessible to personal agents and users on a variety of different devices;
● surveying and categorizing this personal information to characterize the interests and hobbies of the user to provide personal metadata scores useful in matching media objects with the interests of the user;
● nominating a search for users on the internet to make recommendations regarding media (e.g., music, videos, articles, e-books, etc.) that the user may like;
● pseudonymous searches for advertisements for products and services that the user is most likely to enjoy.
When a media presentation (video, program guide, etc.) wants to show an advertisement to a user, the personal agent will select the advertisement that will pay the most for the content that the user wants to view based on the best match between the user's interests and attributes, the interests and attributes targeted by the advertiser, the characteristics of the content the user is viewing, the media presentation environment (e.g., where the user is, the time of day, the device the user is using, etc.), the number of times the user has viewed this or similar advertisements, etc.
The personal agent may have visibility into the user's actions and data on a number of different devices and securely redistribute personal information to various devices where the user's personal information may be used for the benefit of the user.
While the personal agent works for the benefit of the user, it is also preferably a "honest broker" that honors the benefit of the user as well as the benefit of the content provider and advertiser. In particular, the personal agent preferably protects the interests of the user by avoiding irrelevant or overly annoying advertisements and matching the interests and preferences of the user with the advertisements without disclosing this information to the advertiser (or to anyone except in an anonymized and trusted environment) unless the user allows. The personal agent protects the advertiser's interests by ensuring that the advertisement is properly presented using the profile information to match the advertiser's selected category in the auction. The personal agent protects the interests of the content provider by selecting advertisements that optimize the objectives of the content provider, paying the most money to the content provider in an auction, and/or meeting other criteria such as giving some advertisers precedence over others, avoiding advertisements that degrade the image of the content provider, etc.
The personal agent may perform a number of other operations. As noted above, they may roam the user's equipment and pick up useful and relevant information, then analyze it, classify it, implement it, and report it to the user in a useful form.
People interact through their computers, personal devices, and web applications in ways that generate a large amount of information that they typically consider private. For example, people have accounts with online retailers, social networking sites, credit card companies, banks in addition to browsing information including history and bookmarks. Much of this information is left behind and forgotten when the device is replaced. Many such information are re-entered repeatedly on the same device and on other devices. In one embodiment, the personal agent not only protects all such information but also uses it for the benefit of the user, for example, to make selections and recommendations.
Although a user may sometimes choose to share some of that information with others in a limited environment, in a preferred embodiment the personal agent treats the information as private and confidential.
As described above, embodiments of the systems and methods described herein may reduce the cost of advertisement-based content distribution while maximizing advertisement-based revenue that the content may produce. The preferred embodiments are designed as an efficient way to distribute advertisement-based content that can use current and future commercial targeting techniques on the market for the advertising slots. The preferred embodiment provides the consumer with participation rewards to protect their information even when they are used in the matching and bidding process on their own device. The burden on the content distribution itself is light. Virtually any distribution method may be used.
The preferred embodiments allow virtually any content provider to easily leverage a rich, targeted advertising network. According to a preferred embodiment, the content owner may monetize his or her content by simply following a process such as the one shown in FIG. 20. As shown in fig. 20, the content provider registers (2000) with the settlement institution using, for example, a table on the internet and downloads the package application (2002) or signs a contract with a package service (not shown). The content provider then packages its content (2004), for example, using an automated process in which the content owner/distributor specifies selections such as number of ad slots, minimum bid from advertiser, etc. The content may then be distributed 2006 in any suitable manner including, but not limited to:
(a) using any content delivery service on the network (including download using any download manager, progressive download, multicast, streaming, etc.)
(b) Using physical media (e.g. DVD, CD, memory card, USB dog stick, flash memory, hard disk drive, etc.)
(c) Via data broadcast
(d) Sharing via P2P over social networks, connections, pedestrian nets, SD cards, USB keys, etc
(e) Some or all of the above and/or more
Once the content is distributed, the content owner can sit, etc. and collect royalties and other information that can be provided about where/how its content is used so that it can optimize its future distribution choices (2008).
The content provider may also choose to share royalties with the content distributor that advertises its content and places a host for it. Preferred embodiments of the systems and methods described herein may arrange for automatic payment to those distributors from within the royalties of the content provider, or the content provider may sign directly with the rarefaction distributor.
The content provider's content will be played on any supported player on a wide variety of devices and may even package its content as an application that may include and install a player or plug-in specific for its content.
When playing content, a number of mechanisms may be used to ensure that playback events generate a maximum amount of compensation for the content provider. For example, in a preferred embodiment, the player scans the local device environment for advertisements or advertisement references that will pay the most when an advertisement is inserted into one of the advertisement slots in the content. These advertisements may come from a variety of sources with which the user interacts. These sources may include websites, push services, and advertisement scanning applications that are placed to share interests with device manufacturers or consumers. Multiple independent services bid on delivering advertisements and offer their placement in the content. The content provider need not recite placing these advertisements or select a business model for advertisement delivery but may specify a minimum reward and may exclude certain types of advertisements. In some embodiments, the content provider may select from different objective functions for evaluating which advertisements to select (e.g., using selection criteria other than price).
The advertising network that feeds the bidding process is expected to be large and growing with many independent sources with special knowledge of the consumer, but one of the best sources of effective targeting is a private user data repository that can be used securely by a local advertisement matching module to optimally match advertisements with content and advertisements as described herein.
Targeting advertisements using the techniques described herein has a number of advantages that can result in advertisers paying much higher CPM rates. The system may collect private data associated with the user through the user's device network. This user information may be collated, but kept private and never revealed to advertisers, and used in a multi-level matching and bidding scheme. For example, when advertisements are packaged, they may include bid controls for bidding during the time of content playback. The control may interact with a user profile database on the user's playback device to determine the quality of the match of the advertisement to the user and thus ultimately the bid. The bidding process is responsible for the advertiser and may be proprietary. The user data may include previous impression counts for specific advertisements or for related advertisements, as well as authentication data, targeting event data, and user supplied data about the user.
In some embodiments, one or more user agents select advertisements from a plurality of internet-based sources when a user interacts with the internet. These sources produce available metadata that agents use to select advertisements that, when selected, have a high probability of return at playback time for a particular user. The ad source may include a mass ad cache that may be ranked according to criteria that the user agent selects using criteria based on specific user data (although the agent's ad search criteria may reveal certain aspects of the consumer's personal information, in a preferred embodiment specific event data is not revealed except for possible search keywords that the consumer may use in a companion search). In effect, the user agent may generate a search query directed to a specialized online search engine that looks for advertisements rather than web pages, and the search engine relevance ranking is based on specific user data. Advertisements that are relevant to current online activity may also be pre-assigned (e.g., when a user searches for information about cars, a running reference to the car advertisement may then be delivered).
In a preferred embodiment, when a playback event occurs, all relevant ad controls are run to bid for ad slots for playing the content. In each client, the advertisement database manager may cull expired and uncompetitive advertisements from the database.
Advertisers may utilize the techniques described herein to encourage consumers to passively engage in event monitoring for optimal ad matching, thereby justifying higher CPM. Consumers may be assured that their personal information does not leave their own device or security broker that they control. Monitoring may even be activated in an application, browser, or operating system on virtually any device used by a consumer, including but not limited to a cellular phone, PC, gaming device, etc. Event logs can be abstracted and securely shared between consumer-owned devices (e.g., a consumer's domain), including in some embodiments a cloud-based private agent, such that a maximum amount of consumer information is collected and redistributed for use in advertisement matching across all devices that the consumer uses for content playback. The privacy of the consumer is protected because in a preferred embodiment the consumer's information is encrypted and only devices in the consumer's domain know the keys (because they are generated in the consumer's own device and not shared outside the domain).
In some embodiments, certificates may be delivered to the consumer's device that demonstrate attributes of the consumer that justify a higher offer. Further, in some embodiments, an advertising layout model may be deployed that awards prizes to the consumer or the consumer's charitable choices. That is, the consumer or the designee may receive a cash discount from the advertising revenue.
Thus, a system and method for efficient advertisement matching has been described. Embodiments of the systems and methods described herein may implement some or all of the following aspects:
update control for advertisements and content is delivered dynamically. Advertisers will get real-time (or near real-time) feedback about their advertising campaigns. The advertiser may dynamically modify the rules associated with the advertisement (to, for example, increase the minimum bid price). The control expressing these rules will be delivered to the client as early as possible. The delivery mechanism (push or pull) and schedule of these controls will depend on the particular deployment.
Local user profile collection. To comply with privacy laws and/or policies, in one embodiment, the client platform will collect information about the user's viewing patterns locally and send abstracted classification information to the clearing house instead of issuing private information. The settlement structure may share this abstract information with partners without private information.
Advertising and content rules. The kind of rules that can be expressed for each content item and for each advertisement is open. The rules may be collected from the content provider or advertiser as simple text (i.e., XML). As already mentioned, these rules may later be converted into objects of the type described in the' 693 application using a virtual machine code generator and may be associated with content or advertisements. A simple example of such a rule is when an ad is willing to pay 10 cents for each ad impression, but is willing to pay an additional 5 cents to the target population and when the ad is shown for a certain period of the day. A similarity rule may be associated with a piece of content.
Offline advertising for online devices. In some embodiments, multiple distribution means may be (but are not required to be) used to independently superdistribute content and advertisements. The selection of which advertisements to display when the content is rendered may be made independent of the content and is generally negotiated at content rendering time based on an optimal reward for rendering the advertisements.
The objective function and its delivery to the content (updates to the content). In one embodiment, when a consumer wishes to render content on a conforming device or application, the device executes a control program for the content item that requires the ad slots for the content to be filled according to an objective function that optimizes the content provider's goal of collecting advertising revenue from this viewing event. When calculating offers, the content-controlled objective function is used to select advertisements based on the offers. This objective function may also be expressed as a self-protected object. Different types of advertisement matching may be applicable. For example, a company has a variety of different advertisements for the same product that each target different consumer populations. The advertisement matching techniques described herein may be helpful in selecting the most appropriate advertisement for a given user.
And matching the advertisements in two levels. Some embodiments provide two levels of user targeting, where the first level matches the content with the consumer when the advertising content is delivered to a device or other user accessible delivery point, while the second level uses more granular information about the viewer's time, location, environment, and recent history. In other words, the advertisements can be both targeted to the user through distribution means and optimally matched for presentation based on local data on the presentation device.
Fast advertisement slot-use DMZ. In some embodiments, the content provider will be able to describe the number of advertisement slots for each content item. The content-desired advertisement slots are filled with advertisements that pay the most to the content provider at the time and place of presentation.
A trusted service. In a preferred embodiment, the system may provide trusted services for components that manipulate sensitive information. One component that would normally fall under this category is the settlement institution that collects audit reports from the consumer's device. Other components that may host a trusted service will typically include a data repository, an encapsulator, and a registration component. The trusted component may need to meet certain predefined robustness criteria in order to obtain authentication.
Affinity between content and advertisements. In some embodiments, advertisements are targeted to users, but in some cases, advertisers may choose to pay more money when displaying advertisements during the presentation of content that matches certain criteria. A simple example would be that an advertiser normally pays 10 cents, but is also willing to pay 12 cents when an advertisement is displayed with content falling under the content category "sports" or "quest". This illustrates the affinity between the content and the advertisement.
Delivering the policy to the client. Certain policies, such as local privacy policy and advertisement matching policy, may be expressed as control objects. These policies expressed as controls may be delivered to the client and updated periodically.
In one embodiment, the user profile may be expressed as a node object (e.g., as described in the' 693 application) having attributes. As more information is learned about the user from the client, more dynamic DRM ' links ', e.g. of the type described in the ' 693 application, are added to improve the user node. These links (e.g., impulse vendor, fashion awareness) may bear strengths based on advertisement viewing patterns. An ad control associated with the ad may reference these strength values and make a decision on the bid price.
In one embodiment, a property aggregator from an external entity may further refine the user profile for targeted advertisements. This node is introduced into the system through a trust mechanism and may include any quantified attribute of the user, such as membership in an organization (e.g., AAA, shopping club, etc.). Third party entities are compensated for this and the ad control can refer to these aggregator nodes and their strengths/their connections with user nodes during arbitration.
Although the foregoing has been described in some detail for purposes of clarity, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. For example, while several examples have been presented in an environment where advertisements are provided to users in conjunction with entertainment content delivered over the internet (such as movies), it will be appreciated that the systems and methods described herein are suitable for broader application and may be used in an environment where virtually any type of electronic content delivered over virtually any type of distribution system is matched and/or integrated. Similarly, although several examples have been described utilizing a DRM engine (such as the DRM engine described in the' 693 application), it will be appreciated that any suitable software and/or hardware for matching advertisements with content according to rules or policies may be used to implement embodiments of the systems and methods described herein. It should be noted that there are many alternative ways of implementing the processes and apparatuses described herein. The present embodiments are, therefore, to be considered as illustrative and not restrictive and the inventive subject matter is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
Claims (10)
1. A method performed by one or more computing devices for distributing an electronic content item for consumption with an advertisement, the method comprising:
creating, by at least one or more computing devices, a content electronic license that identifies one or more slots within the electronic content item in which the advertisement is to be inserted, the content electronic license further specifying a type of one or more advertisements that are not permitted to be inserted in the one or more slots, the content electronic license further specifying criteria for selecting the advertisement to be inserted in the one or more slots from among a plurality of advertisements;
securely associating, by at least one of the one or more computing devices, the content electronic license with the electronic content item;
distributing the electronic content item and the content electronic license to a third party device of a consumer of the electronic content item that represents the electronic content item, an
Inserting, by a third party device, an advertisement in one of one or more time slots, the advertisement selected by evaluating bids placed in association with each of the plurality of advertisements and by using criteria specified by the content electronic license, wherein the selected advertisement is one of the plurality of advertisements that generates the highest revenue for a content provider of the electronic content item, the selecting of the advertisement performed after the third party device receives an instruction to render the electronic content item.
2. The method of claim 1, further comprising: receiving information from a settlement facility regarding the selected advertisements inserted into the one or more slots.
3. The method of claim 1, further comprising: receiving, from a settlement facility, summary anonymous user profile information about a user to whom the electronic content item is presented.
4. The method of claim 1, further comprising:
summary and anonymous user profile information is received from a settlement facility regarding a user to whom the advertisement is presented.
5. A method performed by one or more computing devices for distributing electronic advertisements for consumption with electronic content items, the method comprising:
creating, by at least one of the at least one or more computing devices, an advertising electronic license that specifies a first amount that a provider of the electronic advertisement is willing to pay a content provider each time the electronic advertisement is rendered to an end user, the advertising electronic license further specifying a second amount that the provider of the electronic advertisement is willing to pay the content provider if one or more conditions are met, wherein the second amount is greater than the first amount;
securely associating, by at least one of the at least one or more computing devices, the advertising electronic license with the electronic advertisement;
distributing the electronic advertisement and the advertisement electronic license to a third party device of a consumer of the electronic content item that renders the electronic content item, an
Submitting, by a third-party device, a bid of a first amount or a second amount to insert the electronic advertisement into one or more time slots of the electronic content item, the submission of the bid being performed after the third-party device receives an instruction to render the electronic content item, the electronic advertisement being inserted into the one or more time slots if the bid generates a highest revenue for the content provider among a plurality of bids related to a plurality of electronic advertisements.
6. The method of claim 5, wherein the one or more conditions include one or more conditions related to a type of user.
7. The method of claim 5, wherein the one or more conditions include one or more conditions related to an environment in which the electronic advertisement is to be presented to the user.
8. The method of claim 5, wherein the one or more conditions include one or more conditions related to a type of the electronic content item presented by the third-party device.
9. The method of claim 5, wherein the one or more conditions include one or more conditions related to a type of user and a type of electronic content item presented by the third-party device.
10. The method of claim 5, further comprising:
receiving information from a settlement facility regarding a context in which another advertisement is selected for presentation to the user instead of the electronic advertisement;
creating a new license that specifies a third amount that the provider of the electronic advertisement is willing to pay the content provider if one or more conditions are met, wherein the third amount is greater than the first amount and the second amount; and is
Distributing the new license to the third party device.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18035909P | 2009-05-21 | 2009-05-21 | |
| US61/180359 | 2009-05-21 | ||
| PCT/US2010/001509 WO2010135001A2 (en) | 2009-05-21 | 2010-05-21 | Content delivery systems and methods |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1167276A1 HK1167276A1 (en) | 2012-11-23 |
| HK1167276B true HK1167276B (en) | 2017-07-14 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11599912B2 (en) | Content delivery systems and methods | |
| US20100293058A1 (en) | Ad Selection Systems and Methods | |
| US20100293050A1 (en) | Dynamic, Local Targeted Advertising Systems and Methods | |
| US20220398340A1 (en) | Systems and Methods for Encrypting and Controlling Access to Encrypted Data Based Upon Immutable Ledgers | |
| US7894448B1 (en) | Proving that a user profile satisfies selection criteria for targeted data delivery | |
| AU2012222202B2 (en) | E-used digital assets and post-acquisition revenue | |
| US20130173366A1 (en) | Processing of Electronic Referral Hyperlinks | |
| US20080216106A1 (en) | Content Distribution System | |
| US7584223B1 (en) | Verifying information in a database | |
| US20100274645A1 (en) | System and method for providing user directed advertisements over a network | |
| US20150046248A1 (en) | Campaign manager | |
| US20250191033A1 (en) | Content delivery systems and methods | |
| HK1167276B (en) | Content delivery systems and methods | |
| Pratama | Enhancing Digital Video Streaming Through Blockchain and Smart Contracts | |
| Mahieu et al. | nKatholieke Universiteit Leuven |