- AdRotator控件包含一个KeywordFilter属性。可以为每个广告提供一个关键字,然后用KeywordFilter过滤AdRotator控件控件显示广告。可以通过多种途径使用这个属性。例如,如果在一个页面中显示多个广告,那么可以用页面区域来过滤广告。可以使用KeywordFilter来在页面顶端展开大的横幅广告而在页面两边显示区块广告。当然也可以把不同的XML文件指派给不同的AdRotator。
1. 在XML文件中保存广告
- 可以把AdRotator控件显示的广告列表保存在由AdRotator控件的AdvertisementFile属性设置的XML文件中。例如,下面代码页面包含三个从XML文件AdList.xml中获取广告的AdRatator控件。
出于安全考虑,这个文件位于App_Data文件夹,浏览器不能访问位于App_Data文件夹的文件。下面代码包含AdList.xml的内容。
2. 在数据库表中存储广告
- 除了可以在XML文件中保存广告列表,也可以把广告列表保存在数据库中。例如,下面代码中的AdRotator控件绑定了SqlDataSource控件,SqlDataSource控件表示数据库表AdList的内容。
AdList数据库表的定义如下:
字段名
数据类型
Id
Int(IDENTITY)
ImageUrl
Varchar(250)
Width
Int
Hght
Int
NavigateUrl
Varchar(250)
AlternateText
NVarchar(100)
Keyword
NVarchar(50)
Impressions
Int
3. 跟踪显示转到
- 通常情况下,显示广告是为了赚钱。广告客户可能需要统计他的广告显示的频度(显示数),以及点击的频度(转到数)。要跟踪广告的显示次数,需要处理AdRotator控件的AdCreated事件。要跟踪广告点击次数,需要创建一个重定向处理程序。下面的代码页面包含了AdRotator控件的AdCreated事件处理程序。
《代码》
AdCreate事件处理程序做两件事:第一,向记录广告显示的数据库表AdStats插入一条新记录;第二,处理程序修改NavigateUrl以便把用户重定向到HTTP处理程序AdHandler.ashx。AdStats数据库表如下:
字段名
数据类型
Id
Int(IDENTITY)
AdId
Int
EntryDate
DateTime
Type
Int
Type字段表示记录类型,值为0表示显示广告,值为1表示点击广告。点击广告时,将链接到文件AdHandler.ashx。下面是该页面的代码。
AdRotatorTrack.aspx
AdCreated事件做两件事:第一,向记录广告显示数据库表AdStats插入一条新记录;第二,修改NavigateUrl以便用户重定向到HTTP处理程序AdHandler.ashx。
AdHandler.ashx
上面代码中处理程序执行两项任务:第一,在数据库表AdStats中插入一条新记录,记录发生的转到行为;第二,从数据库表AdList中取得NavigateUrl并把用户送到广告客户的网站。
最后一个页面显示AdStats数据库中的广告统计信息。下面代码包含该页面。
AdRotatorStats.aspx
上面代码中,第一个GridView显示广告显示统计,第二个GridView显示转到统计。