基本用法
<asp:AdRotator ID="AdRotator1" runat="server" AdvertisementFile="~/Ads.xml" />
AdvertisementFile XML 結構
<?xml version="1.0" encoding="utf-8"?>
<Advertisements>
<Ad>
<ImageUrl>~/Images/ad1.jpg</ImageUrl>
<NavigateUrl>https://example.com/product1</NavigateUrl>
<AlternateText>產品一促銷</AlternateText>
<Keyword>Promo</Keyword>
<Impressions>80</Impressions>
</Ad>
<Ad>
<ImageUrl>~/Images/ad2.jpg</ImageUrl>
<NavigateUrl>https://example.com/product2</NavigateUrl>
<AlternateText>新品上市</AlternateText>
<Keyword>New</Keyword>
<Impressions>20</Impressions>
</Ad>
</Advertisements>
常用屬性對照表
| 屬性 | 說明 | 範例 |
| AdvertisementFile | XML 檔案虛擬路徑 | ~/Ads.xml |
| KeywordFilter | 只顯示符合關鍵字的廣告 | KeywordFilter="Promo" |
| Target | 連結開啟目標 | _blank、_top、_self |
| BorderWidth / BorderColor | 邊框寬度與顏色 | 1 / #000 |
| Width / Height | 廣告圖片寬高(像素) | 300 / 200 |
| CssClass | 套用 CSS 類別 | ad-banner |
伺服器端事件:AdCreated
protected void AdRotator1_AdCreated(object sender, AdCreatedEventArgs e)
{
// 可在廣告產生後動態修改屬性或記錄曝光
string keyword = e.AdProperties["Keyword"]?.ToString();
if (keyword == "Promo") lblTag.Text = "🔥 熱門推薦";
}
動態切換 XML(程式碼指定)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 依使用者角色載入不同廣告組
AdRotator1.AdvertisementFile = User.IsInRole("VIP") ? "~/Ads_VIP.xml" : "~/Ads_General.xml";
}
}
注意事項
- XML 檔案必須為合法 XML,編碼建議 UTF-8。
Impressions 總和為權重基數,單一廣告曝光機率 = 自身 Impressions / 總和。
- 若需追蹤點擊,請在 NavigateUrl 導向中介頁面記錄後再轉址。
- 現代專案常改用 JavaScript 輪播庫,AdRotator 適合簡單伺服器端隨機輪播需求。