広告表示 SWF を開発する

Product
Video Cloud
対象となる役割
開発者
バージョン
Brightcove 5
エディション
Pro, Enterprise

広告表示 SWF の作成には、高度な開発スキルが必要です。この機能は、複雑な広告配信要件を抱える広告ネットワークや広告配信パートナが使用することを想定しています。Brightcove のお客様で、プロジェクトや製品に Brightcove の 広告表示 SWF が必要と思われる場合、まずはアカウント マネージャに問い合わせて、適合する Brightcove の広告パートナがいないか確認してください。

Ad SWF のダイアグラムこのトピックでは、広告表示 SWF の作成方法を説明します。デフォルトでは、Brightcove プレーヤは広告が XML 形式で返されると想定しています。Ad SWF を使用することで、Flash SWF をベースとした広告コンポーネントやモジュールが使えるようになります。これにより、広告の見た目と動作のバリエーションが大幅に広がります。

Brightcove プレーヤで、Brightcove の標準広告フォーマットではない独自の広告フォーマットを配信および表示したい場合は、独自の広告表示 SWF を作成できます。広告表示 SWFは、広告パートナによる開発にしばしば使用される拡張ツールです。

 

他の広告フォーマットと同様に、広告表示 SWF にも XML 仕様があり、以下のようになっています。

<adSwf version="1" trackStartURLs="http://trackingurl">
<adSwfURL>http://path-to-ad-swf.swf</adSwfURL>
<optionalArg>引数値 1</optionalArg>
<anotherArg>引数値 2</anotherArg>
</adSwf>

プレーヤは、このフォーマットで広告を受け取ると、指定された URL から SWF を取得して実行します。SWF は、広告コンテンツ自体の追加呼び出しを 1 回または複数回行うことができます。また、すべての表示とユーザー イベントを処理します。広告表示 SWF はリニア、ノンリニアのいずれにも対応し、動画またはオーバーレイ広告のように動作します。Brightcove の内蔵動画フォーマットと同様にリニアの広告を動作させるために、特別の API が提供されています。

広告表示 SWF の記述方法については、AdSwfDevKit.zip という zip ファイルをダウンロードしてください。以下のリソースが含まれています。

  • 広告表示 SWF の例 ExampleAdSwf.as および ExampleAdSwf.as
  • 広告表示 SWF 用の広告トランスレータの例 ExampleTranslator.as および ExampleTranslator.swf
  • 広告表示 SWF の表示に使用するライブラリ ファイル bc_ads.swc
  • API ガイド – AdSwf、AdSwfConfig、AdSwfContext、および AdSwfMediaEvent クラスの API リファレンス

広告表示 SWF を作成および使用する方法を知るためには、サンプルをセットアップして動作を確認してください。サンプルをセットアップする際の主な手順は以下のとおりです。

  1. サンプルの Ad Translator をコンパイルし、ホストします
  2. サンプルの広告表示 SWF をコンパイルし、ホストします
  3. サンプルの Ad Translator を使用するように、プレーヤを設定します
  4. サンプルの広告表示 SWF を配信する要求をトリガするために、キーと値のペアをプレーヤに追加します。
  5. プレーヤをロードし、広告の再生を確認します。

Ad Translator を設定する

Ad SWF のサンプルを簡単に試せるように、サンプルの zip ファイル AdSwfDevKit.zip に Ad Translator が含まれています。サンプルの Ad Translator を使わなくてもかまいません。この Ad Translator を使用する代わりに、お使いの広告サーバーでの他の広告と同様に、サンプルの広告表示 SWF をトラフィックすることも可能です。ただし、この Ad Translator を使用すると、広告サーバーでトラフィックせずに、サンプルの広告表示 SWF を確認できます。

Ad Translator をセットアップするには、ExampleTranslator.as をコンパイルするか、コンパイル済みの ExampleTranslator.swf を使用してください。ExampleAdSwf.as から始めるには、次の操作を行います。

  1. AdSwfDevKit.zip から bc_ads.swc および ExampleTranslator.as を解凍します。開発環境で ExampleTranslator.as をメイン クラスとするプロジェクトを作成します。
  2. 外部ライブラリとして bc_ads.swc を追加します。ライブラリ パスに設定するのではなく、外部ライブラリとして追加してください。そうしないと、SWF は必要なサイズよりわずかに大きくなります。 Adobe Flex Builder を使用している場合、[Additional Compiler Options] で -external-library-path=../bc_ads.swc を追加すれば、外部ライブラリとして追加することができます。Adobe Flash を使用している場合は、コンパイルする前に bc_ads.swc をアプリケーションの .fla と同じディレクトリへドロップするだけです。
  3. ExampleTranslator.as をコンパイルし、出力された SWF をプレーヤからアクセス可能な Web サーバーに配置します。この SWF は後で使用します。

コンパイル済みの ExampleTranslator.swf を使用するには、次の操作を行います。

  1. AdSwfDevKit.zip から ExampleTranslator.swf を解凍します。
  2. SWF をプレーヤからアクセス可能な Web サーバーに配置します。

Ad SWF サンプルを設定する

次に、サンプルの広告表示 SWF をコンパイルし、ホストします。ExampleAdSwf.as をコンパイルするか、コンパイル済みの Example.swf を使用することができます。ExampleAdSwf.as から始めるには、次の操作を行います。

  1. AdSwfDevKit.zip から bc_ads.swc および ExampleAdSwf.as を解凍します。Ad Translator プロジェクトに使用するフォルダとは別のフォルダに、これらのファイルをコピーします。
  2. 開発環境で ExampleAdSwf.as をメイン クラスとするプロジェクトを作成します。
  3. 外部ライブラリとして bc_ads.swc を追加します。ライブラリ パスに設定するのではなく、外部ライブラリとして追加してください。上の広告トランスレータと同じ手順に従います。
  4. ExampleAdSwf.as をコンパイルし、出力された SWF をプレーヤからアクセス可能な Web サーバーに配置します。

コンパイル済みの Example.swf を使用するには、次の操作を行います。

  1. AdSwfDevKit.zip から Example.swf を解凍します。
  2. SWF をプレーヤからアクセス可能な Web サーバーに配置します。

Ad SWF をテストする

ここまでで、Ad Translator SWF と広告表示 SWF をコンパイルし、ホストしました。これらの 2 つの要素を同時に使用して、広告表示 SWF をトラフィックすることができます。

  1. Brightcove Studio の Advertising モジュールで、広告表示 SWF をトラフィックしたいプレーヤを選択して、[Edit] をクリックします。
  2. プレーヤの [Edit] ダイアログで [Override default Ad Translator URL] を選択し、サンプルの Ad Translator SWF の URL を入力します。
  3. このプレーヤにロードされるキーと値のペアに、adSwf=http://host/adSwf.swf という新しいペアを追加して、URL を広告表示 SWF の実際の場所に変更します。
  4. [Save Changes] をクリックします。
  5. ブラウザにプレーヤをロードします。ブラウザにプレーヤがロードできるようになり、サンプルの広告表示 SWF が表示されます。

独自の広告表示 SWF を作成する

サンプルの広告表示 SWFの動作を見たことで、独自の広告表示 SWFの作成方法を確認できたと思います。サンプルの ExampleAdSwf.as を使って作成を開始することもできます。同じ基本構造に従った広告表示 SWF ができます。処理内容を理解するには、ExampleAdSwf.as のコメントを確認してください。ExampleAdSwf.as では、以下のようになります。

  1. Ad SWF クラスは com.brightcove.fl.advertising.adswf.AdSwf を拡張する必要があります。
  2. Security.allowDomain("admin.brightcove.co.jp") を使用してください。そうすると、SWF が Brightcove プレーヤ SWF と通信できるように、crossdomain.xml セキュリティ ファイルを設定する必要がなくなります。
  3. クラス コンストラクタで、プレーヤに対するイベント フックを追加したり、Ad SWF に必要なものをロードしたりすることができます。しばしば、外部 SWF がコンストラクタからロードされます。
  4. configureAd() および configureComplete() を使用して、現在の広告に対して AdSwfConfig を設定します。AdSwfConfig の設定を変更する必要がない場合は、これらの関数を使用する必要はありません。AdSwfConfig には、広告表示 SWF のために変更が必要かどうかを判断するため確認すべき設定がいくつかあります。
  • AdSwfConfig.pauseVideoPlayer は、特に重要な設定です。true に設定すると、広告表示 SWF はリニア広告として動作します。API により動画を一時停止させる代わりに、これを使用してください。より多くの機能が使用可能になります。pauseVideoPlayer を true に設定すると、mediaDuration API や mediaPosition API だけでなく AdSwfMediaEvent クラスも使用できます。AdSwfMediaEvent クラスにより、広告表示 SWFは、プレーヤからの一時停止、再生、および音量イベントに応答できるようになります。mediaDuration API および mediaPosition API により、広告表示 SWFは、表示用プレーヤに長さの情報を提供できます。pauseVideoPlayer を true に設定し、これらのイベントや API をすべて使用すると、広告表示 SWFは動画広告のように動作できます。
  • AdSwfConfig.keepVisibleAfterComplete は、ほとんど常に false に設定してください。ただし、永久に表示するバナー広告などの広告には、true に設定できます。広告表示 SWF が複数の広告を表示できるようにするためには、この設定を使用しないでください。使用すると、広告表示 SWF フォーマットの機能の多くがバイパスされてしまいます。複数の広告を表示する場合は、displayAd() により広告を表示してください。ポリシーは広告表示 SWFの外部で制御します。
  1. displayAd() 関数をオーバーライドする必要があります。これは、広告を表示する関数です。この関数はしばしば、実際の広告である別の SWF をロードします。AdSwfContext を使って、プレーヤの状態を変更したり、広告を初期化することもできます。Player APIは AdSwfContext を通してアクセスできます。これにより、広告表示 SWF は、様々な BEML コンポーネントに関する情報の取得、showSponsorMessage() のような機能による広告表示状況の変更、動画プレーヤのサイズおよび位置の取得など様々な機能を実行できます。
  2. 広告表示 SWF は、自動的にプレーヤ用の API を有効化します。したがって、API を有効化するために Publishing モジュールのプレーヤ設定を編集しなくても、広告表示 SWF は機能します。
  3. 広告の再生が完了したら、adComplete() を呼び出して、プレーヤに制御を戻します。必ず、設定されているイベント リスナをすべて削除してください。