.NET TIPS

[ASP.NET]AdRotatorコントロールでデータベースから広告情報を取得するには?[2.0のみ、C#、VB]

山田 祥寛
2006/08/04

 「TIPS:[ASP.NET]AdRotatorコントロールでクリック率を管理するには?」でも紹介したように、AdRotatorコントロールを利用することで、XML形式で記述した広告スケジュール・ファイルに基づいて、バナー広告を切り替え表示することができる。

 しかし、ある程度大規模なサイトになれば、入れ替わりの激しいバナー情報を独自のXMLファイルで管理するよりも、データベース上でそのほかのコンテンツ情報と合わせて一元的に管理する方が便利なことが多い。

 そこで本稿では、AdRotatorコントロールとSqlDataSourceコントロールを利用して、データベース上で管理されたバナー情報から広告バナーを制御する方法について紹介する(SqlDataSourceコントロールは.NET Framework 2.0で新たに追加されたコントロールだ)。

本稿で作成したサンプル・プログラムの実行結果(例)

 なお、本稿のサンプル・プログラムを利用するには、データベース上に以下のようなAdConfigテーブルを作成しておく必要がある。

フィールド名 データ型 概要
Url VARCHAR(255) バナーのリンク先
AltText VARCHAR(100) バナー画像の代替テキスト
BannerImage VARCHAR(255) バナー画像のURL
Keyword* VARCHAR(20) キーワード
Impressions* INT 表示確率(重み付け)
Width* INT バナー画像の幅
Height* INT バナー画像の高さ
AdText VARCHAR(50) 広告テキスト
AdConfigテーブルのフィールド・レイアウト

 テーブル名、および、テーブル内のフィールド名には任意の名前を指定できる。ただし、「*」がついている項目の名前については固定であるので注意すること。

 また、AdCoinfigテーブルにはサンプル・データとして、以下の表のようなバナー情報をあらかじめセットしておくものとする。

Url AltText BannerImage Keyword Impressions Width Height AdText
http://www.web-deli.com/ WebDeli http://www.web-deli.com/image/linkbanner_s.gif ASP.NET 50 80 30 ASP.NET、フリースクリプトをダウンロードできるよ!
http://www.wings.msn.to/index.php/-/A-03/4-7981-1070-1/ XMLデータベース入門 NeoCore/XprioriでXMLDBを極める! http://www.wings.msn.to/books/4-7981-1070-1/4-7981-1070-1_logo.jpg データベース 30 80 30 「XMLデータベースって何?」と思ったらこの1冊!
http://www.wings.msn.to/index.php/-/A-03/4-88337-491-2/ 書き込み式 SQLのドリル http://www.wings.msn.to/books/4-88337-491-2/4-88337-491-2_logo.jpg データベース 20 80 30 ドンドン身につく、スラスラ書ける
AdConfigテーブルにセットするデータ(例)

 それではさっそく、具体的な構築の手順をVisual Studio 2005(以降、VS 2005)環境を前提に見ていくことにしよう。

1. Webフォームをデザインする

 フォーム・デザイナ上には、以下の画面の要領でサーバ・コントロールを配置する。また、それぞれのコントロールに対しては、表の内容でプロパティ値を設定しておこう。

Webフォーム(C#:AdRotator_cs.aspx/VB:AdRotator_vb.aspx)のレイアウト
フォーム・デザイナ上に、サーバ・コントロールを配置する。
  AdRotatorコントロール(IDは「ad」)。
  Literalコントロール(IDは「ltrAd」)。

2. データソースの内容を定義する

 次に、AdRotatorコントロールに関連付けるデータソースを定義する。データソースを定義するには、AdRotatorコントロールの右上から[AdRotatorタスク]メニューを表示して[データソースの選択]から「<新しいデータソース>」を選択することで行える。

[データソース構成ウィザード]ダイアログ
AdRotatorコントロールの右上から[AdRotatorタスク]メニューを表示して[データソースの選択]から「<新しいデータソース>」を選択することで、このダイアログが表示される。

 上図のような[データソース構成ウィザード]ダイアログが起動するので、以下の画面の要領でデータソースの取得に必要な情報を設定する。

[データソース構成ウィザード]ダイアログにおける設定内容
データソースの取得に必要な情報を画面の内容に従って設定する。

 データソース構成ウィザードの設定手順については、別稿「無償データベース SQL Server 2005 Express Editionを使ってみよう」が詳しいので、こちらをご参照いただきたい。

3. AdRotatorコントロールのプロパティ情報を設定する

 データベースから取得した内容をAdRotatorコントロールにバインドするには、コントロールが必要とするフィールドにテーブル上のフィールドをマッピングする必要がある。AdRotatorコントロールにフィールドをマッピングするのは、XxxxxFieldプロパティ(以下の表のAlternateTextField、ImageUrlField、NavigateUrlFieldなどのプロパティ)の役割だ。

プロパティ
AlternateTextField AltText
ImageUrlField BannerImage
NavigateUrlField Url
AdRotatorコントロールのプロパティ情報

 ちなみに、これらXxxxxFieldプロパティのデフォルト値は、それぞれAlternateText、ImageUrl、NavigateUrlとなっている。データベース上のフィールド名がデフォルトの名前に従っている場合には、これらプロパティの設定は不要だ。

 以上で、データベースにあるバナー情報を基に広告バナーを表示するための設定は完了だ。続いては広告バナーの下に拡張情報として広告テキストを表示させる。

4. カスタム要素を広告バナーの下部に表示する

 「TIPS:[ASP.NET]AdRotatorコントロールで任意の付加情報を表示するには?」でも紹介したように、AdRotatorコントロールでは拡張情報も管理できる。これはデータソースとして標準の広告スケジュール・ファイルではなく、データベースを利用した場合も同様だ。

 以下では、データベース上にあらかじめ用意されたAdTextフィールド(広告テキスト)をAdRotatorコントロール下のLiteralコントロールに表示する例だ。

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class AdRotator_cs : System.Web.UI.Page
{
  protected void ad_AdCreated(object sender, AdCreatedEventArgs e)
  {
    // 対応するAdTextフィールドの内容を、広告生成のタイミングで表示
    ltrAd.Text = (String)e.AdProperties["AdText"];
  }
}
Partial Class AdRotator
  Inherits System.Web.UI.Page
  Protected Sub ad_AdCreated(ByVal sender As Object, _
  ByVal e As System.Web.UI.WebControls.AdCreatedEventArgs) Handles ad.AdCreated
    ' 対応するAdTextフィールドの内容を、広告生成のタイミングで表示
    ltrAd.Text = e.AdProperties("AdText")
  End Sub
End Class
カスタム情報を広告バナーに付随する処理(上:AdRotator_cs.aspx.cs、下:AdRotator_vb.aspx.vb)

 「TIPS:[ASP.NET]AdRotatorコントロールで任意の付加情報を表示するには?」で紹介したのと同じ要領で、拡張情報を取得できることが確認できるはずだ。本稿では、AdTextフィールドのみを追加しているが、もちろん、必要に応じて、複数の拡張情報を追加することも可能だ。実行した結果、冒頭のようなバナー画像が切り替え表示されることを確認してほしい。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:Webフォーム 処理対象:AdRotatorコントロール
使用ライブラリ:AdRotatorコントロール
使用ライブラリ:SqlDataSourceコントロール
関連TIPS:[ASP.NET]AdRotatorコントロールでクリック率を管理するには?
関連TIPS:[ASP.NET]AdRotatorコントロールで任意の付加情報を表示するには?

この記事と関連性の高い別の.NET TIPS
[ASP.NET]AdRotatorコントロールでクリック率を管理するには?
[ASP.NET]AdRotatorコントロールで任意の付加情報を表示するには?
[ASP.NET]GridViewコントロールでデータソースの内容を表示するには?
[ASP.NET AJAX]HoverMenuコントロールでマウス・ホバー時に表示されるポップアップ・メニューを定義するには?
[ASP.NET]GridViewコントロールで各列の表示をカスタマイズするには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間