CSFLoadAdvertisements

Use this component with the CacheManager object to load advertising content from a database.

Ee783730.note(en-US,CS.20).gifNote

  • Although the CSFLoadAdvertisements component implements two pipeline component interfaces (IPipelineComponent and IPipelineComponentAdmin), it is not a pipeline component, it does not appear in the Pipeline Editor, and it cannot be used or configured in the Pipeline Editor.

Configuration Values

The following table describes the CSFLoadAdvertisements configuration values.

Box Description
ConnectionString The connection string for the campaigns database.
Query The SQL query used to populate the cache of advertisements. Reading this property returns the default query unless it has been overridden with a custom query.
RedirectUrl If specified, Commerce Server writes this value into the Cache dictionary unchanged.

You do not need to set RedirectUrl in Commerce Server 2002, as Commerce Server 2002 takes the value for RedirectUrl from the CSFContext dictionary.

Values Read

None.

Values Written

None.

Remarks

You can use the CSFLoadAdvertisements component with the CacheManager object to load advertising content for use later in your application.

When run by the CacheManager object, the CSFLoadAdvertisements component uses two pipeline dictionaries (Order and Context) to determine how to run and how to return information to the CacheManager object.

The CSFLoadAdvertisements component first opens a connection to the database and gets the list of ads. The component uses a ContentListFactory object to populate a ContentList object with the data. The component then breaks the retrieved data into templates, target groups, and page groups.

The following table describes the columns in the ContentList object returned by the CSFLoadAdvertisements component. Column names appear in alphabetical order.

Column Name Type Flags
ad_type short (CLCOL_I2) 1 (CLCOL_READONLY)
ad_weight Int (CLCOL_I4) 1 (CLCOL_READONLY)
campaign_id Int (CLCOL_I4) 1 (CLCOL_READONLY)
customer_id Int (CLCOL_I4) 1 (CLCOL_READONLY)
date_end date/time (CLCOL_DATE) 1 (CLCOL_READONLY)
date_start date/time (CLCOL_DATE) 1 (CLCOL_READONLY)
days_of_week short (CLCOL_I2) 1 (CLCOL_READONLY)
eff_date_start date/time (CLCOL_DATE) 1 (CLCOL_READONLY)
event_name String (CLCOL_STRING) 1 (CLCOL_READONLY)
events_scheduled Int (CLCOL_I4) 1 (CLCOL_READONLY)
events_served Int (CLCOL_I4) 1 (CLCOL_READONLY)
exposure_limit Int (CLCOL_I4) 1 (CLCOL_READONLY)
Height short (CLCOL_I2) 1 (CLCOL_READONLY)
Industry String (CLCOL_STRING) 1 (CLCOL_READONLY)
invalid_nod Boolean (CLCOL_BOOL) 0 (DEFAULT)
item_id Int (CLCOL_I4) 1 (CLCOL_READONLY)
Name String (CLCOL_STRING) 1 (CLCOL_READONLY)
need_of_delivery real (CLCOL_R4) 0 (DEFAULT)
prev_events_served Int (CLCOL_I4) 1 (CLCOL_READONLY)
Score real (CLCOL_R4) 6 (CLCOL_PRIVATE | CLCOL_SCORE_COLUMN)
Size String (CLCOL_STRING) 1 (CLCOL_READONLY)
target_groups SafeArray (CLCOL_VARIANTARRAY) 1 (CLCOL_READONLY)
Template String (CLCOL_STRING) 1 (CLCOL_READONLY)
time_of_day_end short (CLCOL_I2) 1 (CLCOL_READONLY)
time_of_day_start short (CLCOL_I2) 1 (CLCOL_READONLY)
Values IDispatch (CLCOL_DISPATCH) 1 (CLCOL_READONLY)
Width short (CLCOL_I2) 1 (CLCOL_READONLY)

Abbreviations in the table are enumerated values for the ContentList object. For more information, see the Remarks section for ContentListSchema.ColumnType.

If necessary, you can add additional custom fields into the ContentListFactory cache by overriding the default query for CSFLoadadvertisements. Overriding the query is an advanced programming technique, and requires that you have detailed knowledge of SQL queries. Because the default query for CSFLoadAdvertisements is large and complex, you should use the following steps to avoid accidential changes to the query.

To modify the SQL query for CSFLoadAdvertisements

  1. In Visual Studio .NET, query the component for the default SQL query. The following code describes how to query a component for the default SQL query:

    function GetAdQuery
        set oLoad = CreateObject("Commerce.CSFLoadAdvertisements")
        set dictConfig = oLoad.GetConfigData()
        GetAdQuery = dictConfig.Query
    end function
    
  2. Save the query to a file.

  3. Modify the saved copy of the query.

    You can add columns to the query. However, you should not remove existing columns, since removing existing columns may cause the advertising selection pipeline to fail. The query also contains placeholder strings such as "?" and "##GUIDGUIDGUIDGUIDGUIDGUIDGUIDGUIDGUID", which you should not alter or remove.

  4. Load the modified query from the file to the component at runtime. One way to load the query would be to use the Scripting.FileSystemObject object.

  5. Use the SetConfigData method from IPipelineComponentAdmin to set the new query property.

Example

See the example in CacheManager Object.

Copyright © 2005 Microsoft Corporation.
All rights reserved.