AdRotator 控件本来不提供收集统计信息(比如用户已点击哪些广告,某一广告的点击次数等)的方法。AdRotator 控件显示的广告实际上只不过是超级链接的图像,不具有收集统计信息的特殊功能。
但是,因为可以控制广告所指向的 URL,所以可在应用程序中为广告添加跟踪逻辑。典型的实现方法是将所有广告都指向一个跟踪页,在此页上首先收集需要的统计信息,然后再跳转到广告的目标页上。
将广告重定向到跟踪页
重定向到跟踪页时,您不仅必须跳转到重定向页,而且还必须确保该重定向页具有收集统计信息所需的正确信息。执行此操作的简便方法是在查询字符串中包含所需的信息。
- 在单个广告的 NavigateURL 属性中,指定一个包含以下信息的 URL:
- 重定向页的名称
- 允许标识广告的信息
- 广告最终指向的页
下面的示例说明 XML 广告列表文件中的一个广告项。在此示例中,重定向页为 AdRedirector.aspx。广告标识符和最终目标页被指定为查询字符串。
注意 由于“and”符 (&) 在 XML 中是一个保留字符,因而查询字符串包含的将是实体引用
&
。<?xml version="1.0" encoding="GB2312" ?>
<Advertisements>
<Ad>
<ImageUrl>Widgets.gif</ImageUrl>
<NavigateUrl>AdRedirector.aspx?ad=Widgets&target=http://msdn.microsoft.com/widgets/</NavigateUrl>
<AlternateText>Microsoft Widgets</AlternateText>
<Keyword>computers</Keyword>
<Impressions>1</Impressions>
</Ad>
</Advertisements>
注意 广告调度文件最前端一定要有<?xml version="1.0" encoding="GB2312" ?>语句,指定编码方式为简体中文,若没有,就会出现"在字节索引XXX中找到无效的字节"的错误;<Imrpressions>是设置广告出现的频率
收集统计信息并跳转到目标页
您指定的跟踪页会执行两项功能:收集有关用户所单击广告的统计信息,然后,再次重定向到广告的最终目标页。这通常意味着跟踪页没有它自己的 UI。
如何收集统计信息取决于您的应用程序的要求。您可能至少要统计广告被点击的次数并将该信息存储在数据库中。
收集统计信息并跳转到目标页
- 在跟踪页的
Page_Load
处理程序中,提取有关已点击的广告和目标页的信息。 - 按照应用程序的要求,存储或用其他方法处理广告信息。
- 调用 Response.Redirect 方法以跳转到目标页。
下面的示例说明一个简单的
Page_Load
处理程序,此处理程序使用广告的名称作为关键字,统计已点击广告的次数并将计数存储在应用程序状态对象中。(在应用程序中,您很可能将此信息存储在数据库中。)更新计数后,代码将跳转到目标页。
Visual Basic
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim source As String = Request.QueryString("ad")
Dim redirect As String = Request.QueryString("target")
Dim adcounter As Integer
If Application(source) Is Nothing Then
adcounter = 0
Else
adcounter = CType(Application(source), Integer)
End If
adcounter += 1
Application(source) = adcounter
Response.Redirect(redirect)
End Sub
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim source As String = Request.QueryString("ad")
Dim redirect As String = Request.QueryString("target")
Dim adcounter As Integer
If Application(source) Is Nothing Then
adcounter = 0
Else
adcounter = CType(Application(source), Integer)
End If
adcounter += 1
Application(source) = adcounter
Response.Redirect(redirect)
End Sub
注: CType是强制转换,有点像c语言中的(int).
以上原文来自:http://msdn.microsoft.com/library/chs/default.asp?url=/library/chs/vbcon/html/vbtskTrackingAdResponsesForAdRotatorControl.asp
加上了一点我自己的理解,个人觉的这个还是蛮实用的.大家可以参照写出更有用的代码