The present invention relates, in general, to online advertisements and, more specifically, to a method, a system, and a computer program product for providing targeted advertisements to users.
Since the advent of the Internet, the number of users accessing websites and using Internet for online transactions, online shopping, social networking, etc., has been increasing constantly. Today, most of the companies around the world understand the Internet's importance and know how it can be used for advertisement purposes. For instance, most of the websites now display targeted advertisement to the users accessing them to gather as much users' “attention” as possible.
Conventionally, targeted advertisement is displayed on a website based on the nature of the website content that the user is currently viewing. For example, if a-user is viewing a sports website, advertisements of companies selling sports goods may be shown to the user. Currently, there is no way by which other details of the users can be used for presenting targeted advertisements to users.
Currently, there is no system by which an advertisement campaign manager planning a “targeted advertisement campaign” can select the users to whom he/she can target for his/her advertisement campaign. For example, currently all the users accessing the above-mentioned sports website will be shown the same advertisement, and the advertisement manager running the advertisement campaign will have no option to “select” a subset of users to which specific advertisements should be shown.
In light of the above, a method and a system is required for targeted advertisements, which can overcome the limitations of the present day methods and systems.
According to an embodiment of the present invention, a method for providing targeted advertisements to a user is provided. The method includes determining a set of signals corresponding to at least one online activity associated with the user. The set of signals includes at least one of a share signal, a view signal, a search signal, and a click signal. Further, the method includes analyzing the set of signals to identify one or more user interests. In accordance with an embodiment of the present invention, analyzing the set of signals includes determining one or more keywords present in the set of signals to identify the one or more user interests.
The method includes tagging the user with at least one ad exchange cookie based on the one or more user interests and an available advertisement pool. In accordance with an embodiment of the present invention, the advertisement pool is maintained by an advertisement network. Finally, the method includes serving, by the advertisement network, an advertisement to the user based on the ad exchange cookie.
According to another embodiment of the present invention, a method for analyzing a set of signals to identify one or more user interests corresponding to the user is provided. The method includes identifying at least one of a webpage accessed by the user, a search query input by the user, a click performed by the user on a Uniform Resource Locator (URL), and a data shared by the user, based on information present in the set of signals. Further, the method includes determining one or more keywords present in at least one of the webpage accessed by the user, the search query input by the user, the click performed by the user, and the data shared by the user.
The method includes using an online information source, for example Wikipedia, to analyze the one or more keywords. Lastly, the method includes determining the one or more user interests based on the one or more keywords' analysis.
In accordance with yet another embodiment of the present invention, a method for identifying one or more users from a plurality of users for a predefined targeted advertisement is provided. The method includes analyzing a set of signals associated with the plurality of users. The set of signals includes at least one of a share signal, a view signal, a search signal, and a click signal. In accordance with an embodiment of the present invention, analyzing the set of signals associated with the users comprises identifying one or more keywords present in the set of signals to identify the one or more user interests of the users.
The method includes identifying one or more user interests for a user of the plurality of users based on the analysis of the set of signals. Further, the method includes matching the identified one or more user interests with the predefined targeted advertisement and then determining the one or more users from the plurality of users for the predefined targeted advertisement based on the matching.
According to yet another embodiment of the present invention, a method for allowing an advertisement campaign manager to identify one or more users for targeted advertisements is provided. The method includes providing an online tool to the advertisement campaign manager to allow the advertisement campaign manager to input keywords associated with the targeted advertisements. Further, the method includes using a predefined page level co-occurrence algorithm to determine one or more additional keywords related to the keywords input by the advertisement campaign manager. Further, the method includes providing an option to the advertisement campaign manager to select additional keywords from the determined one or more additional keywords.
The method also includes determining one or more users for targeted advertisement based on the keywords input by the advertisement campaign manager and the selected additional keywords. Lastly, the method includes presenting a list of one or more users to the advertisement campaign manager. In accordance with an embodiment of the present invention, the list of one or more users is divided into one or more sub-groups while the list is being presented to the user. The sub-groups can be, for example, group of influencers, affected users, and potentials.
According to yet another embodiment of the present invention, a system for providing targeted advertisements to a user is provided. The system includes a processor for determining a set of signals corresponding to at least one online activity associated with the user. The set of signals includes at least one of a share signal, a view signal, a search signal, and a click signal. Further, the system includes an analyzer for analyzing the set of signals to identify the one or more user interests. In accordance with an embodiment of the present invention, the analyzer analyzes the set of signals by determining one or more keywords present in the set of signals to identify the one or more user interests.
The system further includes a tagger for tagging the user with at least one ad exchange cookie based on the one or more user interests and an available advertisement pool. Additionally, the system includes an advertisement network module for serving an advertisement to the user based on the ad exchange cookie.
According to yet another embodiment of the present invention, a system for analyzing a set of signals to identify the one or more user interests corresponding to the user is provided. The system includes a processor configured to identify at least one of a webpage accessed by the user, a search query input by the user, a click performed by the user on a Uniform Resource Locator (URL), and a data shared by the user, based on information present in the set of signals. The processor is also configured to determine one or more keywords present in at least one of the webpage accessed by the user, the search query input by the user, the click performed by the user, and the data shared by the user. Further, the processor is configured to determine the one or more user interests based on one or more keywords' analysis.
Additionally, the system includes an analyzer for using an online information source, such as Wikipedia®, to analyze the one or more keywords.
According to yet another embodiment of the present invention, a system for identifying one or more users from a plurality of users for a predefined targeted advertisement is provided. The system includes an analyzer for analyzing a set of signals associated with a user of the plurality of users. The set of signals includes at least one of a share signal, a view signal, a search signal, and a click signal.
The system includes a processor configured to identify one or more user interests for a user of the plurality of users based on the analysis of the set of signals. In addition, the processor is configured to match the identified one or more user interests for the user with the predefined targeted advertisement. Thereafter, based on the matching, the processor determines the one or more users from the plurality of users for the predefined targeted advertisement.
According to yet another embodiment of the present invention, a system for allowing an advertisement campaign manager to identify the one or more users for targeted advertisements is provided. The system includes an online tool to allow the advertisement campaign manager to input keywords associated with the targeted advertisements. Further, the system includes a processor configured to use a predefined page level co-occurrence algorithm to determine one or more additional keywords related to the keywords input by the advertisement campaign manager.
The processor is also configured to provide an option to the advertisement campaign manager to select additional keywords from the keywords determined by the system. Further, the processor is configured to determine the one or more users for targeted advertisement based on the keywords input by the advertisement campaign manager and the selected additional keywords.
The system also includes a display for presenting a list of one or more users to the advertisement campaign manager. The list of the one or more users is divided into one or more sub-groups, for example, a group of influencers, a group of affected users, and a group of potentials.
According to yet another embodiment of the present invention, a computer program product to be used with a computer is provided. The computer program product includes a tangible computer usable medium having a computer readable program code embodied therein to provide targeted advertisements to the user. The computer program code includes program instructions for determining a set of signals corresponding to at least one online activity associated with the user. The set of signals include at least one of a share signal, a view signal, a search signal, and a click signal.
The computer program code includes program instructions for analyzing the set of signals to identify the one or more user interests. Further, the computer program code includes program instructions for tagging the user with at least one ad exchange cookie based on the one or more user interests and an available advertisement pool. The computer program code also includes program instructions to display, by an advertisement network, an advertisement to the user based on the ad exchange cookie.
According to yet another embodiment of the present invention, a computer program product for use with a computer is provided. The computer program product includes a tangible computer usable medium having a computer readable program code embodied therein for analyzing a set of signals to identify the one or more user interests corresponding to the user. The computer program code includes program instructions for identifying at least one of the following tasks, based on information present in the set of signals, performed by the user: accessing a webpage, searching a query, clicking on a Uniform Resource Locator (URL), and sharing data. Further, the computer program code includes program instructions for determining at least one of the following: one or more keywords present in at least one of the webpage accessed by the user, the search query input by the user, the click performed by the user, and the data shared by the user.
The computer program code includes program instructions for using an online information source to analyze the one or more keywords to determine the one or more user interests.
According to yet another embodiment of the present invention, a computer program product for use with a computer is provided. The computer program product includes a tangible computer usable medium having a computer readable program code embodied therein to identify one or more users from a plurality of users for a predefined targeted advertisement. The computer program code includes program instructions for analyzing a set of signals associated with a user of the plurality of users. The set of signals includes at least one of a share signal, a view signal, a search signal, and a click signal.
The computer program code includes program instructions for identifying the one or more user interests for a user of the plurality of users based on the analysis of the set of signals. Further,.the computer program code includes program instructions for matching the identified one or more user interests for the user with the predefined targeted advertisement. In addition, it includes program instructions for determining the one or more users from the plurality of users for the predefined targeted advertisement based on the matching.
According to yet another embodiment of the present invention, a computer program product for use with a computer is provided. The computer program product includes a tangible computer usable medium having a computer readable program code embodied therein to allow an advertisement campaign manager to identify the one or more users for targeted advertisements. The computer program code includes program instructions for providing an online tool to the advertisement campaign manager to allow him/her to input keywords associated with the targeted advertisements. Further, the computer program code includes program instructions for using a predefined page level co-occurrence algorithm to determine one or more additional keywords related to the keywords input by the advertisement campaign manager.
The computer program code includes program instructions for providing an option to the advertisement campaign manager to select additional keywords from the determined one or more additional keywords. Additionally, the computer program code includes program instructions to determine the one or more users for targeted advertisement based on the keywords input by the advertisement campaign manager and the selected additional keywords. It also includes program instructions for presenting a list of the one or more users to the advertisement campaign manager. In accordance with an embodiment of the present invention, the list of one or more users is divided into one or more sub-groups, for example, a group of influencers, a group of affected users, and a group of potentials.
An objective of the present invention is to provide a method, system and a computer program product for targeted advertisement, in which not only the website being viewed by the user is considered for targeted advertisement, but also the user's other “online activities” are tracked to display targeted advertisement to him/her. The user's online activities include, for instance, the search query input by him/her on a search engine or a webpage that is “shared” with other users.
Another objective of the present invention is to provide a method, system and a computer program product for identifying the user's interests by analyzing the user's various online activities and by using an online information source, such as Wikipedia®.
Yet another objective of the present invention is to provide a method, system and a computer program product which permits an advertisement campaign manager to identify users from the plurality of users for targeted advertisement and also to view his/her campaign's success or report through an online tool.
The preferred embodiments of the invention will, hereinafter, be described in conjunction with the appended drawings provided to illustrate, but not to limit, the invention, wherein like designations denote like elements, and in which:
In accordance with an embodiment of the present invention, the set of signals includes a “share signal” corresponding to the data shared by the user with other users, a “view signal” corresponding to the webpage browsed by the user, a “search signal” corresponding to a search query executed by the user and a “click signal” corresponding to a Web link clicked by the user.
The term “signal” used in this patent application means “information” that can be obtained from the user's online activities. For example, a share signal denotes the information that can be extracted from the data that is shared by the user with other users. As already mentioned, a set of signals is determined for a user at step 102. Essentially, at this step, “information” regarding the following user actions is gathered: the websites browsed, links clicked, search queries entered, and data shared with other users.
At step 104, the set of signals is analyzed to identify one or more user interests. In accordance with an embodiment of the present invention, analyzing the set of signals includes determining the keywords present in the signals to identify user interests. An online information source, such as Wikipedia®, can be used to identify the user interests using the determined keywords. Step 104 is described in detail in
At step 106, the user is tagged with at least one ad exchange cookie based on the identified user interests and an available advertisement pool. For example, if it is identified at step 104 that the user interests involve sports, an ad exchange cookie corresponding to a “sports shoe” advertisement may be tagged to the user, if the sport shoe advertisement is present in an available advertisement pool. Typically, the advertisement pool is maintained and stored by an advertisement network or a service provider that provides the service to multiple campaign managers to identify users for targeted advertisement.
At step 108, an advertisement is displayed to the user by the advertisement network based on the ad exchange cookie. Continuing with the above example, if the user is tagged with the sports shoe ad exchange cookie, the corresponding sports shoe advertisement is displayed to the user. In accordance with an embodiment of the present invention, the advertisement is displayed on the webpage being browsed by the user.
As already mentioned in
At step 202, at least one of a webpage accessed by the user, a search query input by the user, a click performed by the user on a Uniform Resource Locator (URL) and a data shared by the user is identified based on the information present in the set of signals. Generally, the information present in the signal would itself be the URL clicked by the user, the search query input by the user, the webpage accessed by the user or the data shared by the user.
At step 204, one or more keywords present in the webpage accessed by the user, the search query input by the user, the click performed by the user (URL) and the data shared by the user are determined. For example, keywords such as phone, subscriber identity module (SIM), wireless, mobile, etc., may be determined from a webpage accessed by the user (if the webpage is about mobile phones) or shared with other users.
At step 206, an online information source, such as Wikipedia®, is used to analyze the determined keywords. For instance, if the keywords determined from the set of signals are phone, SIM, mobile, etc., Wikipedia® is used to establish that the webpage from which the keywords are taken must be related to mobile phones or “technology” in general. Essentially, Wikipedia® is used to determine the “category” to which the webpage belongs (for example, the category in the example mentioned above is “technology”).
At step 208, the one or more user interests are determined based on the analysis of the keywords identified from the set of signals. For example, if it is determined that out of 10 webpages accessed by the user, 8 belong to the “technology” category, one belongs to the “entertainment” category, and one belongs to the “fashion” category, it is assumed that the user's interests lie in technology. The detailed process of identifying user interests from “categories” is described in
At step 302, a set of signals associated with one or more users of a plurality of users is analyzed. Typically, a pool of users (for example a predefined number of users from a geographical area) is considered for analysis and a set of signals associated with one or more users is analyzed separately. For instance, for each user, it is determined which webpages have been browsed by the user in the past 30 days, what webpages are shared by the user in the past 30 days, what Web links are clicked by the user in the past 30 days, etc. Those ordinarily skilled in the art will appreciate that the time duration of 30 days is used just as an example and any other time duration can be considered without departing from the scope of the invention.
As already explained in
The output of step 302 is a chart 402 as shown in
Once chart 402 is prepared, at step 304, one or more user interests for one or more users are identified based on the analysis of the set of signals. Step 304 is explained using chart 502 shown in
As shown in chart 502, first groups are made based on data gathered for the plurality of users. For example, group 1 is for technophiles (persons whose interest is in technology), group 2 is for music lovers, and so on. The data shown in the rows for each group depicts data for a particular user. For example, in chart 502, the first user (not shown) belongs to the technophile group (which is shown as Group 1 in chart 502), the second user belongs to the music lover group, the third user belongs to both technophile and business lover groups, and so on. Based on the number of “hits” for each category (for example Tech, Music, Business, etc.), a user is categorized into groups, as shown in chart 502. For example, the first user shown in chart 502 has 20 hits on technology websites or webpages, 2 hits on music websites or webpages, and so on. The term “hits” for a category here refers to the number of URLs clicked by the user, webpages shared by the user with other users, webpages browsed by the user, and search queries inputted by the user having the keyword(s) for the corresponding category.
Although chart 502 shows 100 groups, it will be apparent to a person ordinarily skilled in the art that more or less number of groups can be made based on user data.
Once chart 502 is formed, at step 306, the identified user interests of one or more users are matched to a predefined advertisement campaign. For example, if an advertisement campaign manager is planning to run an advertisement campaign and wants to know which users to target, the data identified up to step 304 will be utilized by the manager to match user interests with the advertisement campaign. For instance, if the advertisement campaign is about “clothing”, the users which have clothing as one of their interests are identified as “potential” targets for advertisements. Specifically, if the advertisement campaign manager is targeting users interested in “shoes”, he/she will have those people as “potential” targets who have clicked on URLs, accessed or shared webpages containing, for example, “shoes” or “socks” as keywords.
An example is shown in chart 602 of
Those ordinarily skilled in the art will appreciate that the terms mentioned above, such as “core” and “adjacent”, are exemplary in nature and do not limit the scope of the invention in any way. More campaign groups can be added based on the preferences of the advertisement campaign manager, without departing from the scope of the present invention.
Once users belonging to “core” and “adjacent” campaign groups are identified, a chart 702 (as shown in
Once chart 702 is prepared, at step 308, the one or more users are determined from the plurality of users for the targeted advertisement campaign. In accordance with an embodiment of the present invention, to determine users for the targeted advertisement from the plurality of users, one or more calculations are performed based on the information present in chart 702. In addition, decisions about which user to select for the targeted advertisement are made. Some illustrative formulas used for the calculations and the process followed to select users for targeted advertisement are described below.
To explain the process, it is assumed that the targeted advertisement is related to clothing. As shown in chart 802 of
A user is said to be an “influencer” if the “category score”>mean (μ)+2*standard deviation (σ). For example, the category score for the first user would be 5.
A user is said to be “affected” if μ+a<category score<p+2σ.
A user is said to be “potential” if μ−0.5*a<category score<μ+σ.
A user is said to be belonging to “others” category if category score<μ−0.5*σ.
Typically, if a user has a high category score, he/she is assumed to be an “influencer”. In other words, the user is assumed to be so much involved into clothing and fashion that he can “influence” other users as well. It is assumed that the user who is an influencer would be best fit for the targeted advertisement. Second, the user is said to be “affected”, if he/she has lower number of hits for clothing than the “influencers”, but still has reasonably high number of hits. For example, in chart 802, group 3 has 10 hits, which is lower than the hits for group 5 (20), but still higher than other groups.
A user is said to be a “potential” if he/she has at least some (for example more than 1 or 2 hits) hits. These hits are much lower than the hits of influencers and affected. For example, in chart 802, group 1 is a potential, as it has just 5 hits, which is lower than the hits of influencers and affected.
“Others” are those users who have a considerably lower number of hits than any of the three categories mentioned above. Moreover, these are those users who are not considered for the targeted advertisement.
Those ordinarily skilled in the art will appreciate that the formula mentioned above is exemplary in nature and any other formula can be used to categorize users without departing from the scope of the invention. Also, although it is mentioned that the users are classified based on the number of hits (corresponding to view signal, share signal, click signal and search signal), there can be another embodiments of the present invention where a single user can be classified into different categories based on his/her number of hits corresponding to share, click, search and view signals separately. For example, a user can be an ‘influencer’ based on his share signal, but can be a ‘listener’ based on his click signal.
Chart 902 is used by a campaign manager to determine which users to target. For example, if the manager wants to target only a few users, he/she will choose users belonging to core and influencers. Further, he/she may also want to provide different advertisements to different sets of users. For example, the manager can provide different ads to users belonging to core and influencers and different ads to users belonging to core and affected. The ads for core and influencers can be, for example, more detailed and can have custom offers in it, than the ads for users belonging to core and affected.
At step 1002, an online tool is provided to an advertisement campaign manager to allow him/her to input keywords or topics associated with the targeted advertisements. A snapshot of an exemplary online tool 1102 is shown in
The description of tabs shown under “Your Estimate” 1110 will be explained in the description of
Once the manager adds the topic related to the advertisement campaign, two recommendation lists are provided to the manager. These are: “Core Topics” 1304 and “Related Topics” 1306. The “core topics” are those which directly contain the topic selected by the manager. For example, if the manager selects the topic ‘golf’, all the other topics which contain the keyword ‘golf’ are shown to the manager under ‘Core Topics’ 1304. This is shown in
The manager can further select/deselect the topics between the recommendation lists and the selected topic lists by using the arrow buttons provided. Noticeably, the topics can be moved between “Available Core Topics” 1304 and “Selected Core Topics” 1308, and between “Available Related Topics” 1306 and “Selected Related Topics” 1310.
Once the topics are populated into selected lists 1308 and 1310, the corresponding unique user numbers are provided for each of them for information purpose. For example, as shown in
In accordance with an embodiment of the present invention, the topics in 1308 and 1310 together define an “Audience Segmentation”, i.e., the audience or the users identified having interests overlapping with 1308 and 1310. The total size of the audience segmentation is provided under the tab ‘Total Estimate’ 1314. As shown, the total unique user number in the audience segmentation is “11,551,700”. Those ordinarily skilled in the art will appreciate that this number is not the sum of the numbers in 1308 and 1310 because there are overlapping users who belong to multiple topics. Therefore the total unique number is always smaller than the sum of topic level unique estimation.
In addition to ‘Uniques’,
Another embodiment of the snapshot shown in
At step 1006, an option is provided to the manager to select keywords from the list of additional keywords or topics shown to him/her. As shown in
Once the manager selects the topics, he/she is shown a page on online tool 1102 which asks the manager to confirm his selection. A snapshot of such a page is shown in
Once the user has submitted the selections, at step 1008, the one or more users are determined for targeted advertisement based on the manager's selections. The entire process of identifying users for targeted advertisement has already been explained in regard to
Thereafter, at step 1010, the list of one or more users identified for targeted advertisement is presented to the campaign manager via online tool 1102 or sent via email.
Similarly,
In addition to category level profiles, the clickers are also grouped by their topic interests. For example, clickers with topic interest in “Acne” have contributed 2000 clicks, clickers with topic interest in “Scar” have made 1500 clicks and so on.
Processor 1804 is used to determine a set of signals corresponding to at least one online activity associated with the user. The online activity associated with the user can be, for example, clicking of a URL, browsing a webpage, inputting a search request, or sharing a webpage with other users. Once the set of signals is determined, analyzer 1806 analyzes it to identify the one or more user interests. Typically, analyzer 1806 uses an online information source, such as Wikipedia®, to analyze the set of signals and identify user interests. The entire process of identifying user interests is explained in
After user interests are identified, tagger 1810 tags the user with at least one ad exchange cookie based on the identified user interests and an available advertisement pool. As already mentioned in
Once the tagging is done, advertisement network module 1808 displays an advertisement to the user based on the ad exchange cookies.
In accordance with another embodiment of the present invention, processor 1804 is configured to perform three functions. The first function is to identify user interests for one or more users of the plurality of users based on the analysis of the set of signals by analyzer 1806. The second function is to match the identified user interests for the one or more users with a predefined targeted advertisement, and the third function is to determine one or more users from the plurality of users for the targeted advertisement based on the matching.
In accordance with yet another embodiment of the present invention, system 1802 also allows the campaign manager to plan his targeted advertisement campaign and identify the users for the targeted advertisements. Essentially, system 1802 presents the campaign manager with an online tool which he/she can view on the display of his personal or office computer, laptop, mobile phone, etc.
In this embodiment, the online tool allows the manager to input keywords associated with the targeted advertisement. Processor 1804 is configured to use a predefined page level co-occurrence algorithm to determine additional keywords related to the keywords inputted by the manager. These additional keywords are then displayed to the manager, and an option is provided to him/her to select some or all of the additional keywords.
Once the manager selects the additional keywords, processor 1804 determines a list of users for targeted advertisements based on the keywords inputted by the manager and the additionally selected keywords. Thereafter, the list of users is displayed to the manager.
Various embodiments of the present invention provide several advantages. First, using the present invention, a campaign manager planning an advertisement campaign can identify a set of users which he can target for his campaign. Second, the list of users to be targeted for the advertisement campaign is presented to the manager based on a combination of view signal, search signal, share signal, and click signal, which is not present in conventional methods and systems.
The method and system for providing targeted advertisements to a user, as described in the present invention, may be embodied in the form of a computer system. Typical examples of a computer system include a general-purpose computer, a programmed microprocessor, a micro-controller, a peripheral integrated circuit element, and other devices or arrangements of devices that are capable of implementing the steps that constitute the method of the present invention.
The computer system typically comprises a computer, an input device, and a display unit. The computer typically comprises a microprocessor, which is connected to a communication bus. The computer also includes a memory, which may include a Random Access Memory (RAM) and a Read Only Memory (ROM). Further, the computer system comprises a storage device, which can be a hard disk drive or a removable storage drive such as a floppy disk drive and an optical disk drive. The storage device can be other similar means for loading computer programs or other instructions into the computer system.
The computer system executes a set of instructions that are stored in one or more storage elements to process input data. These storage elements can also hold data or other information, as desired, and may be in the form of an information source or a physical memory element present in the processing machine. Exemplary storage elements include a hard disk, a DRAM, an SRAM, and an EPROM. The storage element may be external to the computer system and connected to or inserted into the computer, to be downloaded at or prior to the time of use. Examples of such external computer program products are computer-readable storage mediums such as CD-ROMS, Flash chips, and floppy disks.
The set of instructions may include various commands that instruct the processing machine to perform specific tasks such as the steps that constitute the method of the present invention. The set of instructions may be in the form of a software program. The software may be in various forms such as system software or application software. Further, the software may be in the form of a collection of separate programs, a program module with a large program, or a portion of a program module. The software may also include modular programming in the form of object-oriented programming. The software program that contains the set of instructions can be embedded in a computer program product for use with a computer, the computer program product comprising a tangible computer-usable medium with a computer-readable program code embodied therein. Processing of input data by the processing machine may be in response to users' commands, results of previous processing, or a request made by another processing machine.
The modules described herein may include processors and program instructions that are used to implement the functions of the modules described herein. Some or all the functions can be implemented by a state machine that has no stored program instructions, or in one or more Application-specific Integrated Circuits (ASICs), in which each function or some combinations of some of the functions are implemented as custom logic.
While the various embodiments of the invention have been illustrated and described, it will be clear that the invention is not limited only to these embodiments. Numerous modifications, changes, variations, substitutions, and equivalents will be apparent to those skilled in the art, without departing from the spirit and scope of the invention.