Ad SWF を開発する

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

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

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

プレーヤがこのフォーマットで広告を受け取ると、指定された URL から SWF を取得して実行します。SWF コンポーネントはサードパーティの広告ネットワークによる広告で、広告自体から広告コンテンツの追加呼び出しを 1 回または複数回行うことができます。SWF コンポーネントは、すべての表示とユーザイベントを処理します。

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

  • Ad SWF のサンプル - ExampleAdSwf.asExample.swf
  • Ad SWF の 広告トランスレータのサンプル - AdSwfExampleTranslator.asExampleTranslator.swf
  • ライブラリファイル - bc_ads.swc
  • API ガイド - AdSWF、AdSWFConfig、AdSWFContext クラスの API リファレンス。
Back to Top
サンプル Ad SWF の使用

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

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

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

Ad トランスレータをセットアップするには、AdSwfExampleTranslator.as をコンパイルするか、またはコンパイル済みの ExampleTranslator.swf を使用します。ExampleAdSwf.as について説明します。

  1. AdSwfDevKit.zip から bc_ads.swcExampleAdSwf.as を取得します。
  2. 開発環境で、ExampleAdSwf.as をメインクラスとするプロジェクトを作成します。
  3. 外部ライブラリとして bc_ads.swc を追加します。ライブラリパスに設定するのではなく、外部ライブラリとして追加してください。外部ライブラリとして追加しないと、実際に使用する SWF ははるかに大きいので、プレーヤのロード時間に悪影響を与えます。たとえば Adobe Flex Builder を使用している場合、[Additional Compiler Options] で -external-library-path=bc_ads.swc を追加すれば、外部ライブラリとして追加することができます。Adobe Flash を使用している場合は、コンパイルする前に bc_ads.swc をアプリケーションの .fla と同じディレクトリへドロップするだけです。
  4. ExampleAdSwf.as をコンパイルし、出力された SWF をプレーヤからアクセス可能な Web サーバに配置します。この SWF は後で使用します。

コンパイル済みの ExampleTranslator.swf を使用するには、以下のようにします。

  1. AdSwfDevKit.zip から ExampleTranslator.swf を取得します。
  2. SWF をプレーヤからアクセス可能な Web サーバに配置します。
Back to Top
サンプル Ad SWF の設定

次に、サンプルのAd SWF をコンパイルし、ホストします。ExampleAdSwf.as をコンパイルするか、コンパイル済みの Example.swf を使用することができます。ExampleAdSwf.as について説明します。

  1. AdSwfDevKit.zip から bc_ads.swcExampleAdSwf.as を取得します。
  2. 開発環境で、ExampleAdSwf.as をメインクラスとするプロジェクトを作成します。
  3. 外部ライブラリとして bc_ads.swc を追加します。ライブラリパスに設定するのではなく、外部ライブラリとして追加してください。外部ライブラリとして追加しないと、実際に使用する SWF ははるかに大きいので、プレーヤのロード時間に悪影響を与えます。たとえば Adobe Flex Builder を使用している場合、[Additional Compiler Options] で -external-library-path=bc_ads.swc を追加すれば、外部ライブラリとして追加することができます。Adobe Flash を使用している場合は、コンパイルする前に bc_ads.swc をアプリケーションの .fla と同じディレクトリへドロップするだけです。
  4. ExampleAdSwf.as をコンパイルし、出力された SWF をプレーヤからアクセス可能な Web サーバに配置します。

コンパイル済みの Example.swf を使用するには、以下のようにします。

  1. AdSwfDevKit.zip から Example.swf を取得します。
  2. SWF をプレーヤからアクセス可能な Web サーバに配置します。
Back to Top
Ad SWF のトライアウト

ここまでで、Ad トランスレータとAd SWF をコンパイルし、ホストしました。これらの 2 要素をともに使用して、Ad SWF をトラフィックすることができます。

  1. Brightcove スタジオ の Advertising モジュールで、Ad SWF をトラフィックしたいプレーヤを選択して、[編集] をクリックします。
  2. プレーヤの [編集] ダイアログで [デフォルトのAd トランスレータを上書きする] を選択し、サンプルの Ad Tag Translator SWF の URL を入力します。
  3. このプレーヤにロードされるキーと値のペアに、adSwf=http://host/adSwf.swf という新しいペアを追加して、URL をAd SWF の実際の場所に変更します。
  4. [保存] をクリックします。
  5. ブラウザにプレーヤをロードします。ブラウザにプレーヤがロードできるようになり、サンプルのAd SWF が表示されます。
Back to Top
独自の Ad SWF の作成

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

  • Ad SWF クラスは、com.brightcove.fl.advertising.adswf.AdSwf を継承する必要があります。
  • クラスのコンストラクタで、プレーヤに対するイベントフックを追加したり、Ad SWF に必要なものをロードしたりすることができます。
  • displayAd() 関数をオーバーライドする必要があります。この関数は通常、実際の広告である別の SWF をロードします。AdSwfContext を使って、プレーヤの状態を変更したり、広告を初期化することもできます。ExampleAdSwf.as では、displayAd() 関数は以下のようになっています。
    override public function displayAd(adContext:AdSwfContext):void {
                
      this.adContext = adContext;
      trace("Beginning the display of the example SWF ad");
      
      // AdSwfExampleTranslator から渡された可能性がある要素を表示します。
      if (adContext.adSwfFormat.additionalElements.hasOwnProperty("optionalArg")) {
        trace("Optional arg value was: " + adContext.adSwfFormat.additionalElements.optionalArg);    
      }
                                        
    // 他のことをする前に、使用する可能性がある API モジュールをロードします。
    adContext.moduleLoader.addEventListener(Event.COMPLETE, modulesLoaded);
     adContext.moduleLoader.loadModules();
    }
  • 広告の再生が完了したら、adComplete() を呼び出して、プレーヤに制御を戻します。