Embodiments of the present disclosure relate to the field of online advertising and, more particularly, to advertisements targeting on video playlists.
On the Internet, video hosting websites allow users to upload, view, and share user video content. Such video content may include content from professional content creators, e.g., movie clips, TV clips, and music videos, as well as content from amateur content creators such as video blogging and short original videos. Users can be directed to videos on a video hosting site via a Uniform Resource Locator (URL) link shared by another user, or via a search for particular content on the video hosting site.
Access to videos has enabled opportunities for improving the targeting of advertisements to receptive audiences. In particular, advertisers can select certain parameters that should trigger placement of their advertisements when relevant videos are presented to end users. One frequently used parameter is a category of video content. Advertisers are typically provided with a list of existing categories for selection. However, these categories are usually rather broad and do not provide sufficient granularity for targeting. In addition, videos are typically categorized using an automatic classifier, which may not correspond to user-perceived categorization of videos.
In some embodiments, a method to provide advertisements targeting media playlists is presented. The method includes storing, by an advertisement server, associations between media playlists and advertisements in a data store. The method further includes receiving an advertisement request pertaining to a media item, the media item being part of at least one of the selected media playlists, obtaining at least one advertisement for the media item based on the associations stored in the data store, and providing the obtained advertisement to the content providing server.
In another embodiment, a method to obtain advertisements for requested media items includes receiving, at a computing device, a user request for a media item, identifying one or more media playlists associated with the requested media item, obtaining one or more advertisements targeting the identified media playlists, and presenting at least one of the obtained advertisements along with the requested media item to a user.
In yet another embodiment, a method to determine performance scores for advertisements includes determining whether a present advertisement is associated with at least one media playlist, and predicting a performance score of the present advertisement using data pertaining to at least one media playlist.
In additional embodiments, computing devices for performing the operations described above are also implemented. Further, in some embodiments, a computer readable storage medium is provided to store instructions causing a processing device to perform the operations described above.
The present disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the disclosure.
Systems and methods to provide advertisements targeting media playlists are described. A media playlist is a user-created list of media items (e.g., movies, video clips, audio clips, etc.). For example, a user may create a video playlist including recent music videos of a certain singer, a video playlist including favorite movies of a particular genre, and so on. Media playlists are dynamic in nature (e.g., they can be updated to include more recent media items and remove outdated media items). Users can allow their media playlists to be viewed by other users by, for example, sharing media playlists on various websites (e.g., content hosting websites, social networking websites, etc.), or including media playlists in blogs, personal web pages, etc. In addition, users can search for media playlists of other users on, for example, content hosting websites or social networking websites.
Embodiments of the present disclosure expose media playlists as placements for advertisement targeting. A placement may refer to any web property that can enable the presentation of advertisements (“ads”). A web property can represent, for example, a search result page, a watch page, a website, a subset of web pages, or any other network distributed content, etc.
In one embodiment, an advertisement server allows an advertiser to select one or more media playlists as placements, and specify one or more ads targeting the selected media playlists. The advertisement server may store associations between the selected media playlists and corresponding ads in a data store. These associations may then be used to present ads when media items from corresponding media playlists are viewed by the end users.
The presentation of ads that target media playlists can be facilitated by a content hosting server, which may store data identifying media playlists created by various users and media items included in these media playlists. When the content hosting server receives a user request for a media item, the content hosting website may identify at least one media playlist that includes the requested media item, and send an advertisement request with an identifier of the media playlist to the advertisement server. The advertisement server may then determine whether this media playlist is associated with any ads in the data store. If so, the advertisement server may provide one or more ads associated with the media playlist to the content hosting website, which may present the requested media item along with the associated ad(s) to the user.
Embodiments of the present invention improve targeted advertising associated with media items by utilizing media playlists as placements for ads. A media playlist reflects user-perceived categorization of media items and is dynamic in nature, thereby providing an effective means for the targeting of ads to receptive audiences.
The advertiser devices 108 and the user devices 106 may include any type of computing devices such as portable digital assistants, mobile phones, laptop computers, portable media players, tablet computers, netbooks, notebooks, desktop computers, gaming consoles, DVD players, media centers, and the like. The advertisement management system 102 and the content providing system 110 may each be hosted by one or more machines such as one or more server computer systems, routers, gateways, etc. Alternatively, the advertisement management system 102 and the content providing system 110 may be hosted by the same machine.
In some implementations, advertisers can access the advertisement management system 102 via advertiser devices 108 to enter, maintain and track advertisement information. The advertisement management system 102 may provide a list of available placements and corresponding prices for the available placements to the advertisers. An advertiser can specify one or more targeting criteria to select placements on which the advertiser would like to place the ads. The advertisement management system 102 may then store the associations between the selected placements and the corresponding ads. The ads may include graphical ads (e.g., banner ads), text only ads, image ads, audio ads, video ads, etc. The ads may also include embedded information, such as a link, meta-information, and/or machine executable instructions.
The advertisement management system 102 may receive advertisement requests from one or more content providing systems 110. A content providing system 110 may represent a video hosting website, a news content provider, a social network site, or any other entity that provides media content (e.g., video or audio content) to the user devices 106. The content providing system 110 may submit an advertisement request to the advertisement management system 102 upon receiving a media item request from a user device 106. The advertisement request submitted by the content providing system 110 may include media item request information such as an identifier of the requested media item, a category corresponding to the requested media item (e.g., business, movies, music, etc.), media item type (e.g., video, audio, etc.), media item age, geo-location information, etc.
Upon receiving an advertisement request from the content providing system 110, the advertisement management system 102 may select one or more ads matching media item request information and provide the selected ads to the content providing system 110. The content providing system 110 can combine the requested media item with one or more ads provided by the advertisement management system 102, and provide the resulting content page to the user device 106 for presentation to the user (e.g., via a web browser). In one implementation, the ads selected by the advertisement management system 102 are auctioned to determine what ads should be returned to the content providing system 110 and/or the order in which they should be presented to the user. This determination may depend on, for example, other advertisers' bids (e.g., the maximum amount an advertiser will pay per user click on an advertisement) and/or the performance scores of the ads. The performance score of an ad may be calculated based on, for example, historical click-through rates, relevance of an advertiser's ad text and keywords, an advertiser's account history, etc. In another implementation, the ads are selected by the advertisement management system 102 on a reservation basis (e.g., based on predefined conditions) without taking into account other advertisers' bids and/or the performance scores of the ads.
The content providing system 110 can return usage information to the advertisement management system 102. The usage information may include measured or observed user behavior related to requested content, such as whether a user has selected or “clicked” on a link to a requested media item. In addition or alternatively, the usage information may include measured or observed user behavior related to advertisements that have been served, such as whether a user has clicked on an ad returned by the advertisement management system 102, has been referred to the advertiser's web page, and has consummated a purchase there before leaving that web page. The usage information can further include traffic information, which contains user demographic information such as user age, location, and gender.
The advertisement management system 102 performs financial transactions, including crediting the content providing systems 110 and/or other entities associated with the placements used for advertising. The advertisement management system 102 may also charge the advertisers based on the usage information.
In one embodiment, the advertisement management system 102 includes a playlist advertisement subsystem 112 that exposes media playlists created by users as placements for advertisement targeting. Data pertaining to the media playlists may be provided to the playlist advertisement subsystem 112 by the content providing systems 110 and may include media items (e.g., movies, video clips, audio clips, etc.) included in each media playlist and one or more characteristics of the media playlist. The characteristics of the media playlist may include, for example, a media playlist type (e.g., movies, video clips, audio clips, etc.), a media playlist category (e.g., a certain topic, a certain artist, a certain genre, a certain director, a certain actor, etc.), a media playlist owner, one or more keywords associated with the content of the media playlist, the number of media items included in the media playlist, a media playlist popularity indicator (e.g., the number of users that accessed the media playlist), a media playlist viewer demographics (e.g., demographics of users that accessed the media playlist), whether media items included in the media playlist can be monetized (e.g., whether the media items can be presented with ads), etc.
An advertiser can access the advertisement management system 102 and specify media playlists as a type of placement. In response, the playlist advertisement subsystem 112 can present a list of available media playlists to the advertiser. The advertiser can then select desired media playlists based on media playlist characteristics, and specify one or more ads that should target each of the selected media playlists. The playlist advertisement subsystem 112 may store associations between the media playlists and the corresponding ads in a data store based on advertiser input provided to the playlist advertisement subsystem 112 or based on information received from another system or subsystem.
In one embodiment, the content providing system 110 includes a media playlist manager 114 that collects data pertaining to media playlists created by users of the user devices 106 and provides this data to the advertisement management server 102. Data pertaining to media playlists can be collected based on user input or obtained from other systems (not shown).
When a user device 106 sends a request for a media item to the content providing system 110, the media playlist manager 114 may identify one or more media playlists that include the requested media item, and send an advertisement request specifying the identified media playlists to the advertisement management system 102. In response, the advertisement management system 102 may find ads associated with the media playlists specified in the advertisement request and provide one or more of these ads to the content providing system 110, which combines these ads with the requested media item and provides the resulting content page to the user device 106 for presentation to the user. Alternatively, the user device 106 may identify one or more media playlists that include a requested media item and provide an advertisement request specifying the identified media playlists to the advertisement management system 102.
In some implementations, the advertisement request may also include other information about the requested media item, such as the requested media item itself, a category of the requested media item (e.g., a specific genre, actor, director, etc. if the requested media item is a movie), and/or user characteristics (e.g., language, location, age, etc.). In such implementations, the advertisement management system 102 may not only return ads associated with the relevant media playlist(s) but also ads matching other information about the requested media item. In one embodiment, the ads selected by the advertisement management system 102 are auctioned to determine what ads should be presented to the user and/or the order in which they should be presented.
In one embodiment, the media playlist manager 114 (and/or the user device 106) tracks user behavior related to ads associated with media playlists and returns data about such user behavior to the advertisement management system 102. The advertisement management system 102 may then credit the content providing system 110 (and/or the user device 106). In addition, in one embodiment, the advertisement management system 102 can credit the creators of media playlists if ads associated with their playlists were clicked on by the end users and/or resulted in a purchase on the advertiser's web page. By sharing revenues with the creators of media playlists, the advertisement management system 102 provides an incentive for users to create media playlists that may be interesting to other users in terms of media item grouping, content and quality.
The playlist characteristic collector 202 collects information about media playlists created by users of content hosting websites and other content providing systems. Information about a media playlist may identify media items included in the media playlist and include one or more characteristics of the media playlist. The characteristics of the media playlist may include, for example, a media playlist type, a media playlist category, a media playlist owner, one or more keywords associated with the content of the media playlist, the number of media items included in the media playlist, a media playlist popularity indicator, a media playlist viewer demographics, whether media items included in the media playlist can be monetized, etc. The playlist characteristic collector 202 stores the information about the media playlists in the playlist data store 212.
The playlist selection tool 204 provides a list of available media playlists to an advertiser when the advertiser selects media playlists as a type of placement. The playlist selection tool 204 may also allow the advertiser to specify one or more playlist characteristics and search for media playlists matching the specified characteristics. For example, the advertiser may specify a category (e.g., children's movies) and a minimum number of items in a media playlist (e.g., 20 movies), and the playlist selection tool 204 will return media playlists matching the specified characteristics (e.g., video playlists including at least 20 movies for children). The advertiser can then select desired media playlists from the media playlists matching the specified characteristics.
The playlist ad creator 206 receives an advertiser input specifying one or more ads (e.g., toy ads) that should target each of the selected media playlists (e.g., certain children's movies), and stores the associations between the media playlists and the ads in the advertisement store 214. These associations are then used to present ads with media items contained in corresponding media playlists. In one embodiment, the playlist ad creator 206 stores, in the advertisement store 214, an identifier of a media playlist together with an identifier of each ad targeting the media playlist. In this embodiment, if a new media item is later added to the media playlist, and this media item is subsequently requested by a user, the media item will be presented with one or more ads previously associated with the media playlist. In other words, in accordance with this embodiment, targeted advertising can be dynamically adapted to changes in the media playlists.
In another embodiment, the playlist ad creator 206 identifies all media items included in a media playlist selected by an advertiser, and stores an identifier of each media item together with identifiers of ads targeting the selected media playlist. The playlist ad creator 206 may periodically receive changes made to the media playlists (e.g., new media items added to the media playlists and existing media items deleted from the media playlists), and may update the associations in the advertisement store 214 accordingly.
In some implementations, the advertisement store 214 not only stores associations of ads with media playlists but also associations of ads with other characteristics of media items and/or users. These characteristics may include, for example, a media item name or other identifier (e.g., a URL), a media item content category, a media item type, a media item author, a media item geo-location, user demographics (e.g., age, language, time zone, occupation), etc.
The playlist ad provider 208 receives advertisement requests pertaining to media items from content providing systems and returns ads for the media items to the content providing systems. In one embodiment, a content providing system submits an advertisement request pertaining to a media item when a user selects the media item from a media playlist presented to the user, and the content providing system includes the identifier of this media playlist in the advertisement request. In another embodiment, the content providing system submits an advertisement request pertaining to a media item when a user requests the media item without first viewing a corresponding media playlist (e.g., by directly searching for the media item, entering a URL of the media item or selecting a link to the media item). In this other embodiment, the content providing system finds all media playlists containing the media item, and includes the identifiers of these media playlists in the advertisement request. In yet another embodiment, the content providing system does not include identifiers of any media playlists in the advertisement request but rather includes the identifier of the media item itself.
Upon receiving the advertisement request pertaining to the media item, the playlist ad provider 208 searches the advertisement store 214 for ads matching the advertisement request. The matching may be determined based on one or more identifiers of media playlists included in the advertisement request and/or an identifier of the media item. Additionally, in some embodiments, the matching is also determined based on other characteristics included in the advertisement request such as the media item name or URL, the media item content category, the media item type, the media item author, user demographics, etc. When all matching ads are found, all or some of these ads are returned to the content providing server. In one embodiment, the ads to be returned are selected based on their performance scores as will be discussed in more detail below. The order in which the ads should be presented to the user may also depend on their performance scores, as well as other advertisers' bids.
The playlist revenue calculator 210 receives information specifying user behavior related to ads associated with media playlists and determines which of these ads were clicked on by the end users and/or resulted in a purchase on the advertiser's web page. The playlist revenue calculator 210 then identifies the creators of such media playlists (e.g., using data in the playlist data store 212 and the advertisement store 214) and credits a share of revenue generated by such ads to the creators of corresponding media playlists.
The playlist ad performance predictor 216 calculates performance scores of ads selected for the media item by the playlist ad provider 208 and stores the calculated performance scores in the ad performance data store 218. As discussed above, the performance score of an ad is calculated using factors pertaining to the ad (e.g., a historical click-through rate of the ad, relevance of an advertiser's ad text and keywords, an advertiser's account history). In addition, the performance score of the ad may depend on whether the ad is associated with any media playlist. In one embodiment, if the playlist ad performance predictor 216 determines that an ad is associated with a media playlist, the playlist ad performance predictor 216 increases the performance score of the ad (e.g, by a predetermined number or a fraction and/or based on how many media playlists the ad is associated with) since users are likely to be more receptive to ads targeting media playlists.
The playlist creator 302 allows users to create media playlists and stores information about media playlists in the playlist data store 308. Information about a media playlist may identify a media playlist and media items contained in the media playlist, and also include one or more characteristics of the media playlist. The characteristics of the media playlist may include, for example, a media playlist type, a media playlist category, a media playlist owner, one or more keywords associated with the content of the media playlist, the number of media items included in the media playlist, a media playlist popularity indicator, a media playlist viewer demographics, whether media items included in the media playlist can be monetized, etc. The playlist creator 302 may also update media playlist information in the playlist data store 308 when users add new media items to media playlists, remove existing media items from media playlists, or update characteristics of media playlists. In one embodiment, the playlist creator 302 provides information about media playlists to an advertisement management system (e.g., upon request or at predetermined time intervals).
The playlist identifier 304 receives requests for media items from user devices and submits advertisement requests pertaining to the media items to the advertisement management system. The playlist identifier 304 may receive a request for a media item when a user selects the media item from a media playlist presented to the user, and may include the identifier of this media playlist in the advertisement request pertaining to the media item. Alternatively, the playlist identifier 304 may receive a request for a media item when a user requests the media item without first viewing a corresponding media playlist (e.g., by directly searching for the media item, entering a URL of the media item or selecting a link to the media item), may search the playlist data store 308 to find all media playlists containing the media item, and may include the identifiers of the found media playlists in the advertisement request pertaining to the media item.
The playlist ad presenter 306 receives one or more ads from the advertisement management system, combines the requested media item with the ads, and returns the resulting content page to the user. In one embodiment, the playlist ad presenter 306 also monitors user behavior related to ads associated with media playlists, determines which of these ads were clicked on by the end users and/or resulted in a purchase on the advertiser's web page, and provides this information to the advertisement management system.
Referring to
At block 404, the advertisement server allows the advertiser to select one or more media playlists from the set and identifies the selected media playlists. At block 406, the advertisement server receives user input specifying one or more ads targeting the selected media playlists. An exemplary GUI for providing ads targeting video playlists will be discussed in more detail below in conjunction with
At block 408, the advertisement server stores associations between the media playlists and corresponding advertisements in a data store. In one embodiment, the advertisement server stores an identifier of a selected media playlist with an identifier of each advertisement targeting this media playlist, as will be discussed in more detail below in conjunction with
In some implementations, the advertisement server not only stores associations of ads with media playlists but also associations of ads with other characteristics of media items and/or users. These characteristics may include, for example, a media item name or other identifier (e.g., a URL), a media item content category, a media item type, a media item author, a media item geo-location, user demographics (e.g., age, language, time zone, occupation), etc. In addition, the advertisement server may also allow an advertiser to specify whether an ad should be presented with newly added media items (media items that will be added to a corresponding media playlist after an association between the ad and the media playlist has been recorded) and/or subsequently removed media items (media items that will be removed from the media playlist after the association between the ad and the media playlist has been recorded).
Referring to
If the advertisement server does not find any ads associated with these media playlists in the advertisement data store (block 608), method 600 ends. Alternatively, if the advertisement server finds one or more ads associated with these media playlists in the advertisement data store, the advertisement server provides some or all of the found ads to the content hosting site (block 610).
Referring to
Referring to
At block 812, the advertisement server receives an advertisement request from a content hosting site and determines that the advertisement request identifies a media item. At block 814, the advertisement server determines whether the identified media item is associated with any ads in an advertisement data store (block 814). If not, method 800 ends. If so, the advertisement server provides at least some of these ads to the content hosting site (block 816).
Referring to
At block 904, the advertisement server finds multiple ads in an advertisement data store based on the set of media item characteristics. For example, the advertisement server may find ads 1, 2 and 3 based on the media item category, ads 4 and 5 based on the media item author, and ads 6, 7 and 8 based on the media playlists containing the media item. The advertisement server then identifies performance scores of the found ads (e.g., by obtaining these scores from ad performance data store 218).
At block 908, the advertisement server determines whether any of the selected ads is associated with at least one media playlist. If not, method 900 proceeds to block 912. If so, the advertisement sever adjusts performance scores of the ads associated with media playlists (block 910). In one embodiment, the advertisement server increases the performance score of each ad associated with a media playlist (e.g, by a predetermined number or a fraction and/or based on how many media playlists the ad is associated with). One embodiment of a method for predicting a performance score of an add associated with a media playlist will be discussed in more detail below in conjunction with
At block 912, the advertisement server selects one or more ads with higher performance scores and provides the selected ads to the content hosting site. The number of selected ads may be predefined or determined based on the type of content page that will present the ads. In one embodiment, the advertisement server also defines the order for presenting the ads using the performance scores and/or the bids of corresponding advertisers.
Referring to
At block 1008, the advertisement server may optionally adjust the performance score of the ad based on characteristics of the media playlist. For example, the advertisement server may estimate the popularity of the media playlist using one or more characteristics of the media playlist (e.g., a media playlist type, a media playlist category, a media playlist owner, a media playlist author, a media playlist access history, user demographics, etc.) and adjust the performance score of the ad based on the estimated popularity of the media playlist.
The exemplary computer system 1100 includes a processing device (processor) 1102, a main memory 1104 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 1106 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 1116, which communicate with each other via a bus 1108.
Processor 1102 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processor 1102 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The processor 1102 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processor 1102 is configured to execute instructions of the advertisement management system 102 and/or the content providing system 110 for performing the operations and steps discussed herein.
The computer system 1100 may further include a network interface device 1122. The computer system 1100 also may include a video display unit 1110 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 1112 (e.g., a keyboard), a cursor control device 1114 (e.g., a mouse), and a signal generation device 1120 (e.g., a speaker).
The data storage device 1116 may include a computer-readable storage medium 1124 on which is stored one or more sets of instructions of the advertisement management system 102 and/or the content providing system 110 embodying any one or more of the methodologies or functions described herein. The instructions of the advertisement management system 102 and/or the content providing system 110 may also reside, completely or at least partially, within the main memory 1104 and/or within the processor 1102 during execution thereof by the computer system 1100, the main memory 1104 and the processor 1102 also constituting computer-readable storage media. The instructions 1126 may further be transmitted or received over a network via the network interface device 1122.
While the computer-readable storage medium 1124 is shown in an exemplary embodiment to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.
In the foregoing description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.
Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “identifying”, “providing”, “enabling”, “finding”, “selecting” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example’ or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an embodiment” or “one embodiment” or “an implementation” or “one implementation” throughout is not intended to mean the same embodiment or implementation unless described as such.
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.