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:
|
_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:
|
_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.