CSFAdvertisingNeedOfDelivery

Use this component to ensure advertisements are selected often enough to meet business commitments.

Intended use: Content Selection pipeline, Initial Score stage.

Values Read

The CSFAdvertisingNeedOfDelivery component reads the following values from the indicated dictionaries.

Key

Dictionary

Description

_performance

Order

A reference to the Performance dictionary retrieved from the cache by the CSFInitPipeline component.

_content.need_of_delivery

Order

The need of delivery for the item — the initial score of the item.

_content.invalid_nod

Order

A Boolean flag. If True, the need of delivery will be recalculated for the item.

_content.ad_type

Order

The type of the ad. Valid types are:

  • 1 for paid ads.

  • 2 for house ads.

_content.ad_weight

Order

The current weight assigned to the ad. Used for house ads or paid ads in a campaign-level goaled campaign.

_content.event_name

Order

The name of the event.

_content.events_scheduled

Order

The total number of events scheduled for the item.

_content.events_served

Order

The total number of events served to date.

_content.prev_events_served

Order

The number of events served before the effective date.

_content.eff_date_start

Order

The effective item start date.

_content.date_end

Order

The item end date.

_content.time_of_day_start

Order

The time of day the event starts.

_content.time_of_day_end

Order

The time of day the event ends.

_content.days_of_week

Order

The days of the week bit flags.

Trace

Context

Optional. A Boolean indicating whether score adjustment tracing is enabled. This component will not produce trace strings unless this flag is set to True.

_cache._LastNODRecalc

Context

Optional. The _LastNODRecalc key value is read from the _cache key, a reference to the current dictionary containing advertising information. The _LastNODRecalcvalue is the time that the CSFAdvertisingNeedOfDelivery component last recomputed the need of delivery for all ads in the ContentList object.

Values Written

The CSFAdvertisingNeedOfDelivery component writes the following values to the indicated dictionaries.

Key

Dictionary

Description

_content

Order

Specifically, the component writes to the following fields of the content items:

need_of_delivery

The calculated need of delivery for the ad.

invalid_nod

Reset to False because the need of delivery has been calculated.

score

The score for the item. Initialized to the need of delivery for the item or, for house ads, the ad_weight key.

_cache._LastNODRecalc

Context

The time that the CSFAdvertisingNeedOfDelivery component last recomputed the need of delivery for all ads in the ContentList object.

Remarks

This component calculates the Need of Delivery (NOD) for ad items in the ContentList object and assigns these as the initial scores for the items. The NOD for each item is recalculated periodically or when the invalid_nod flag for that item is True. For more information about columns in the ContentList object, see CSFLoadAdvertisements.

The CSFAdvertisingNeedOfDelivery component uses the SetScore method of the ContentList object for setting the initial scores.

The NOD value for paid advertisements is not calculated in this component. Rather, for efficiency, it is calculated in the CSFLoadAdvertisements cache loader component, and in the CSFRecordEvent pipeline component. For paid ads, this component copies the value in the need_of_delivery field into the score field.

The NOD for house ads is set to be equal to the weight of the house ad. The decision as to whether or not to serve house ads is made by the CSFSelectWinners pipeline component. House ads compete only against other house ads. The run percentage for a house ad is equal to the weight of the ad divided by the sum of the weights for all house ads.

Commerce Server uses a NOD formula for paid ads. It is designed to give each ad a fair chance of selection when the entire ad schedule is lagging. Under this formula, all ads appear at rates proportional to their goals.

The formula is:

NOD = (Events Scheduled / Time Total) / (Events Served / Time Elapsed)

With the formula used, an ad meeting its delivery goals will have a NOD equal to 1.0. An ad that is lagging will have an NOD greater than 1.0. The farther behind an ad is in its delivery goal, the greater the NOD. Ads that have exceeded their delivery goals have an NOD of less than 1.0.

See Also

Other Resources

CSFSelectWinners