·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> ASP.NET - AdRotator Web 服务器控件概述

ASP.NET - AdRotator Web 服务器控件概述

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23
     AdRotator Web 服务器控件可用于显示链接到其他页的图形。要显示的图形列表和关联的目标链接将保留在数据源中,如 xml 文件或数据库。



1、方案

AdRotator Web 服务器控件提供一种在 asp.net 网页上显示广告的方法。该控件可显示您提供的 .gif 文件或其他图形图像。当用户单击广告时,系统会将他们重定向到指定的目标 URL。该控件会从您使用数据源(通常是 XML 文件或数据库表)提供的广告列表中自动读取广告信息,如图形文件名和目标 URL。

AdRotator 控件会随机选择广告,每次刷新页面时都将更改显示的广告。广告可以加权以控制广告条的优先级别,这可以使某些广告的显示频率比其他广告高。也能编写在广告间循环的自定义逻辑。



2、背景

AdRotator Web 服务器控件可用于显示广告图形,如 .gif 或类似图像。然后可以将用户重定向到目标 URL。图形和目标 URL 可从数据源提供,如 XML 文件。

广告信息可来自各种源,如下所示:

·XML 文件。可以将广告信息存储在 XML 文件中,此文件包含对广告横幅及其关联属性的引用。

·任何数据源控件,如 SqlDataSource 或 ObjectDataSource 控件。例如,可以将广告信息存储在数据库中,使用 SqlDataSource 控件检索广告信息,然后将 AdRotator 控件绑定到数据源控件。

自定义逻辑。可以为 AdCreated 事件创建处理程序,并在该事件过程中选择广告。



3、用于广告文件的 XML 文件格式

存储广告条图像位置、用于重定向的 URL 以及关联属性的一个方法是将这些信息放入一个 XML 文件中。通过使用 XML 文件格式,可以创建和维护一个广告清单,而不必在对某一广告进行更改时更改应用程序的代码。



4、用于广告文件的数据库架构

除了可以为广告信息创建一个 XML 文件之外,还可以将广告信息存储到一个数据库表中。该表需要一种 AdRotator 控件可以读取的特定架构。



5、通过关键字筛选广告

在广告文件中,可以通过如下方法指定广告的类别:使用 KeyWord 属性,然后将 AdRotator 控件配置为根据您指定的筛选条件显示广告。例如,如果一个广告文件同时包含银行和硬件商店两个类别的广告,而您可能只希望页面显示与银行有关的广告。通过将 AdRotator 控件的 KeywordFilter 属性设置为“banks”(银行),可让该控件筛选掉硬件商店广告。

如果指定了筛选器,则会发生下面两种情况之一:

·如果 AdRotator 控件可以找到带有匹配关键字的广告,则显示一条带有该关键字的广告。

·如果不存在关键字的匹配项,则 AdRotator 控件将在浏览器中显示一幅空白图像。



6、跟踪广告响应

AdRotator 控件本身不提供收集统计信息(比如用户已点击哪些广告,某一广告的点击次数等)的方法。但是,因为可以控制广告所指向的 URL,所以可在应用程序中为广告添加跟踪逻辑。典型的实现方法是将所有广告都指向一个跟踪页,在此页上首先收集需要的统计信息,然后再跳转到广告的目标页上。



7、缓存广告

如果缓存了包含 AdRotator 控件的页面,则每当从缓存中检索该页时,AdRotator 控件都将自动执行缓存替换,将缓存的广告替换为新广告。



8、类参考

下表列出了与 AdRotator 控件相关的类。

成员
说明

AdRotator
控件的主类。

AdCreatedEventHandler
表示处理 AdRotator 控件的 AdCreated 事件的方法。

AdCreatedEventArgs
为 AdRotator 控件的 AdCreated 事件提供数据。





9、如何:使用 AdRotator Web 服务器控件显示 XML 文件中的广告

      AdRotator Web 服务器控件可从有一条或多条广告记录的数据源读取广告信息。您可以将信息存储在一个 XML 文件中,然后将 AdRotator 控件绑定到该文件。

AdRotator 控件的所有属性都是可选的。XML 文件中可以包括下列属性:

·ImageUrl   要显示的图像的 URL。

·NavigateUrl   单击 AdRotator 控件时要转到的网页的 URL。

·AlternateText   图像不可用时显示的文本。

·Keyword   可用于筛选特定广告的广告类别。

·ImPRessions   一个指示广告的可能显示频率的数值(加权数值)。在 XML 文件中,所有 Impressions 值的总和不能超过 2,048,000,000 - 1。

·Height   广告的高度(以像素为单位)。此值会重写 AdRotator 控件的默认高度设置。

·Width   广告的宽度(以像素为单位)。此值会重写 AdRotator 控件的默认宽度设置。

A、创建广告列表作为 XML 文件

·在网站的 App_Data 文件夹中创建一个新的 XML 文件。为了更好地保证安全,请将该文件的文件扩展名命名为除 .xml 之外的名称,如 .ads。

说明: 建议您将广告文件放置在 App_Data 文件夹中,原因是 ASP.NET 可防止浏览器利用该文件夹中的文件。

·向文件中添加下列 XML 元素:

<?xml version="1.0" encoding="utf-8" ?>

<Advertisements xmlns="http://schemas.microsoft.com/AspNet/AdRotator-Schedule-File">

</Advertisements>

      ·在 Advertisements 元素中,为每个要包括在广告列表中的广告创建一个 Ad 元素,然后保存文件。

下面是一个文件示例:

<?xml version="1.0" encoding="utf-8" ?>

<Advertisements xmlns="http://schemas.microsoft.com/AspNet/AdRotator-Schedule-File">

  <Ad>

    <ImageUrl>~/images/Contoso_ad.gif</ImageUrl>

    <NavigateUrl>http://www.contoso-ltd.com</NavigateUrl>

    <AlternateText>Ad for Contoso, Ltd. Web site</AlternateText>

    <Impressions>100</Impressions>

  </Ad>

  <Ad>

    <ImageUrl>~/images/Aspnet_ad.gif</ImageUrl>

    <NavigateUrl>http://www.asp.net</NavigateUrl>

    <AlternateText>Ad for ASP.NET Web site</AlternateText>

    <Impressions>50</Impressions>

  </Ad>

</Advertisements>



B、从数据库显示广告

·在 ASP.NET 网页上要显示广告的位置放置一个 AdRotator。

·将 AdRotator 控件的 AdvertisementFile 属性设置为您在前面的过程中创建的 XML 文件的路径。

说明: 建议您使用相对 URL,以使应用程序的可移植性更好。使用类似 ~\App_Data\文件名.ad 的语法。运行网页时,AdRotator 控件会读取 XML 广告文件,并选择一个广告进行显示。



10、如何:使用 AdRotator Web 服务器控件显示数据库中的广告

      AdRotator 控件可从包含一条或多条广告记录的数据源读取广告信息。您可以将广告信息存储在具有特定架构的数据库表中,然后在运行时使用数据源控件读取广告记录。如果有一个带有广告信息的现有表,则可以将该表的架构映射到 AdRotator 控件所需的字段。

只要数据库有对应的数据源控件,就可以将广告信息存储在任何类型的数据库中。



A、创建广告数据库表

·如果还没有包含广告信息的数据库表,请创建具有下列架构的表。除 ID 之外的所有列均是可选的。

说明:

提供的数据类型是 SQL Server 类型。如果使用的是不同的数据库,请替换相应的合适类型。

列名称
数据类型
说明

ID
int
这是主键。此列可给定任何名称。

ImageUrl
nvarchar(length)
要作为广告显示的图像的相对或绝对 URL。

NavigateUrl
nvarchar(length)
广告的目标 URL。如果没有提供值,则广告不是一个超链接。

AlternateText
nvarchar(length)
找不到图像时显示的文本。有些浏览器中,该文本还会作为工具提示显示出来。替换文字也用于辅助功能,以便无法看到图形的用户可以听到大声读出的说明。

Keyword
nvarchar(length)
可作为页筛选依据的广告类别。

Impressions
int(4)
一个指示广告的可能显示频率的数字。数字越大,显示该广告的频率越高。在 XML 文件中,所有 Impressions 值的总和不能超过 2,048,000,000 - 1。

Width
int(4)
图像的宽度(以像素为单位)。

Height
int(4)
图像的高度(以像素为单位)。



·如果有一个带有广告信息的现有数据库表,请设置 AdRotator 控件的下列属性,将数据库表架构映射到该控件所需的字段:

·         AlternateTextField

·         ImageUrlField

·         NavigateUrlField

·在带有广告信息的表中插入新记录。



B、从数据库显示广告

·在网页上放置一个数据源控件,如 SqlDataSource 或 accessDataSource 控件。

·使用连接字符串和查询配置数据源控件,从先前创建的数据库表选择所有记录。

·在要显示广告的 ASP.NET 网页上放置一个 AdRotator 控件。

·将 AdRotator 控件的 DataSourceID 属性设置为先前在步骤 1 中创建的数据源控件的 ID。 当网页运行时,AdRotator 控件将查询数据库,看是否有广告并选择一条广告进行显示。



11、如何:以编程方式在 AdRotator Web 服务器控件中选择广告

      使用 AdRotator Web 服务器控件,可以通过在 AdCreated 事件处理程序中创建自定义逻辑来动态选择广告。

使用 AdCreated 事件选择广告

·为 AdRotator 控件创建 AdCreated 事件处理程序。 在该处理程序中传递的第二个参数包含对要创建的广告的引用。

·设置广告对象的属性,以指定要显示的广告的图像和定位 URL。 下面的示例演示如何设置 AdCreatedEventArgs 控件的 ImageUrl、NavigateUrl 和 AlternateText 属性:

protected void AdRotator1_AdCreated (object sender,

   System.Web.UI.WebControls.AdCreatedEventArgs e)

{

   e.ImageUrl = "images/contoso_ad.gif";

   e.NavigateUrl = "http://www.contoso-ltd.com/";

   e.AlternateText = "Ad for Contoso, Ltd Web site";

}