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
处理程序,此处理程序使用广告的名称作为关键字,统计已点击广告的次数并将计数存储在应用程序状态对象中。(在应用程序中,您很可能将此信息存储在数据库中。)更新计数后,代码将跳转到目标页。
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0be121fa5b8988fbabbbc526af3b0fc0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4fd96b3cf02f4c7b5c8964ac8167f7af.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
注: CType是强制转换,有点像c语言中的(int).
以上原文来自:http://msdn.microsoft.com/library/chs/default.asp?url=/library/chs/vbcon/html/vbtskTrackingAdResponsesForAdRotatorControl.asp
加上了一点我自己的理解,个人觉的这个还是蛮实用的.大家可以参照写出更有用的代码