Patent ID: 7792828

Claim:
A centralized system to select particular content items to be presented to a viewer from a plurality of content items, comprising: a server operable to: receive a content selection request, wherein the content selection request comprises first data describing the viewer; receive data describing a plurality of content items and a corresponding plurality of policies, wherein each content item is associated with a policy; determine data elements necessary to evaluate the plurality of policies, wherein the data elements comprise at least a portion of the first data describing the viewer, second data describing the viewer received from an external data source, data describing a context of the content selection request, and data describing content items previously provided to the viewer; for each of the data elements that does not have a current value present at the server, determine an external data source comprising the data element and request the current value of the data element from the data source; execute a rules engine, wherein the rules engine is operable to evaluate the plurality of policies in parallel based on the current values for the data elements necessary to evaluate the plurality of policies, in order to determine particular content items the viewer is eligible to receive in response to the content selection request; rank the content items the viewer is eligible to receive in a prioritized list; support a graphical user interface (GUI) operable to facilitate building and managing the policies; maintain an application program interface (API) library operable to manage communications between a requesting service and the rules engine; provide to the viewer a predetermined number of the highest prioritized content items from the prioritized list; and store the content items provided to the viewer as content items previously provided to the viewer.