CSFSelectWinners

Use the CSFSelectWinners pipeline component to choose items based on their final scores in the Content Selection pipeline.

Intended use: Content Selection pipeline, Select stage.

Configuration Values

You can determine when the CSFSelectWinners pipeline component displays house ads by setting component properties. Use the following box on the Select Winners tab of the Component Properties dialog box to determine this information.

Box

Description

Switch to house ads

The threshold at which house ads will be selected over paid ads. When the maximum Need of Delivery (NOD) for paid ads drops below this value, house ads are selected. The default is 0.95.

Values Read

The CSFSelectWinners pipeline component reads the following values from the indicated dictionaries.

Key

Dictionary

Description

_content.score

Order

The final scores of the various content items.

NumRequested

Order

Optional. The number of content items that should be selected for return. The default is 1 (one).

_content.industry

Order

Optional. The industry tag used to prevent two content items from same industry from being selected.

_content.need_of_delivery

Order

Optional. The contract requirements for delivering the ad.

_content.ad_type

Order

Optional. A paid (1) versus house (2) ad type.

_content.ad_weight

Order

Optional. This key is used for house ads to allow some to be displayed more frequently.

_content.customer_id

Order

Optional. This key is used to prevent competing ads.

ContextProfile.PageHistory

Context

Optional. A reference to the page-level history string. The reference allows the history to be passed between requests for content that are on the same page (can be used cross-page as well). This key is retrieved from the ContextProfile dictionary in the Context dictionary. It contains the item_ids of content items already selected on the page.

Values Written

The CSFSelectWinners pipeline component writes the following values to the indicated dictionaries.

Key

Dictionary

Description

_winnerindexes

Order

A reference to a SimpleList Object containing the ContentList Object indexes of selected content items.

_event

Order

This key is set to the string "REQUEST", unless it is already set.

context.ContextProfile.PageHistory

Context

Optional. The new page history, now including items selected in the current request. The PageHistory key is in the ContextProfile dictionary in the Context dictionary.

Remarks

To communicate the winners, the CSFSelectWinners pipeline component builds a new SimpleList object that contains the ContentList object indexes up to the requested number of winning content items.

The CSFSelectWinners pipeline component performs the following additional actions:

  • Sets the _event key to the string "REQUEST", unless it is already set.

  • Uses the PageHistory key to prevent showing the same ad more than once on a page. This is most useful in network ad models where multiple selection requests are made from the same page.

  • Prevents competing ads from appearing on the same page. This is based on the industry setting of each ad, combined with a user identifier.

The CSFSelectWinners pipeline component looks at the NumRequested key in the Order dictionary to determine how many content items to select. If that key is missing, one content item is selected. It is not considered an error to return fewer than NumRequested content items. The caller must handle this condition.

The PageHistory key is a string containing a list of IDs for content items already selected for the current page. The caller defines what constitutes a "page," and the caller is responsible for saving the PageHistory key across calls to the same page. The item_id keys from the content items in the ContentList object are written to this string in decimal form and are separated by commas. If the same ContentSelector Object is used for multiple content requests on the same page, then the PageHistory key will automatically be passed between the calls.

The following list describes the selection algorithm for ads:

  • Items appearing in the PageHistory key are not eligible for selection.

  • Paid ads with a Need of Delivery (NOD) value greater than the house ad threshold will always be selected over house ads.

  • Ads that compete with another ad that was already selected, including ads in the PageHistory key, are not eligible for selection. Competing ads are defined as ads in the same industry but from different users.

  • Selection proceeds are based on score, returning higher scores first. If multiple paid ads have the same score, selection between them is random.

The following list describes the selection algorithm for content types other than ads:

  • Items appearing in the PageHistory key are not eligible for selection.

  • Selection proceeds are based on score, returning higher scores first. If multiple items have the same score, selection between them is random.

See Also

Other Resources

Pipeline Component Reference