CSFLoadAdvertisements
Use this component with the CacheManager object to load advertising content from a database.
Note
- 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
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
Save the query to a file.
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.
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.
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.