サンプルの Google Flash Tracking Analytics SWF のソース

Product
Video Cloud
対象となる役割
開発者
バージョン
Brightcove 5
モジュール
Player API
エディション
すべて

このページでは、サンプルの Google Flash Tracking Analytics SWF のソース、GoogleAnalytics.as を示します。または、zip ファイルとしてダウンロードすることも可能です。このサンプル ファイルは、プレーヤのロード、ストリームの開始、およびストリームの完了イベントをGoogle Analytics に通知します。詳細は、アナリティクス SWF の例: Google Analytics Flash Tracking を参照してください。

package {
import com.brightcove.api.APIModules;
import com.brightcove.api.CustomModule;
import com.brightcove.api.events.ExperienceEvent;
import com.brightcove.api.events.MediaEvent;
import com.brightcove.api.modules.ExperienceModule;
import com.brightcove.api.modules.MenuModule;
import com.brightcove.api.modules.VideoPlayerModule;
import com.google.analytics.AnalyticsTracker; 
import com.google.analytics.GATracker; 
import flash.display.Stage;
import flash.system.Security;
     
public class GoogleAnalytics extends CustomModule {
     // ----------------------------------------------------------------------------
// 定数
// Google アカウント ID は URL パラメータ gid からロードされる
private const ACCOUNT_ID     :String = loaderInfo.parameters.gid; 
private const BRIDGE_MODE    :String = "AS3";
private const DEBUG_MODE     :Boolean = false;
     // ----------------------------------------------------------------------------
// イベント名
private const EVENT_PLAYER_LOAD    :String = "player_load";
private const EVENT_VIDEO_START    :String = "video_start";
private const EVENT_VIDEO_COMPLETED:String = "video_complete";
     // ----------------------------------------------------------------------------
        
private var _bcExperience:ExperienceModule;
private var _bcVideo:VideoPlayerModule;
//private var _bcMenu:MenuModule;
private var _bcStage:Stage;
private var _tracker:AnalyticsTracker;
  
      /**
* コンストラクタ
      */
public function GoogleAnalytics() {
Security.allowDomain("*");
      }
  
      // ----------------------------------------------------------------------------
      /**
* イベントを発生させる。このメソッドには、ページ ロードとして、またはリンクのクリックとして、 
* イベントを発生させる正確な方法に関するすべてのロジックが 
* 含まれる。
      */
private function fireEvent(eventName:String):void {
var experienceId:Number  = _bcExperience.getExperienceID();
var playerName:String  = _bcExperience.getPlayerName();
var action:String = "";
switch (eventName) {
case EVENT_PLAYER_LOAD:
var experienceURL:String = _bcExperience.getExperienceURL();
var referrerURL:String = _bcExperience.getReferrerURL();
action = "/playerid=" + experienceId + "/playername="
+ playerName + "/url=" + experienceURL + "/refurl="
+ referrerURL + "/" + eventName;
break;
// 必要に応じてここにケースを追加する
default:
var video:Object = _bcVideo.getCurrentVideo();
var playlistId:Number  = video.lineupId;
var videoId:Number   = video.id;
var videoName:String = video.displayName;
action = "/playerid=" + experienceId + "/playername=" + playerName 
+ "/playlistid=" + playlistId + "/videoid=" + videoId
+ "/videoname=" + videoName + "/" + eventName;
      }
_tracker.trackPageview(action);
      }
     /**
*  興味があるイベントすべてについて、ここで登録する。
      */
private function registerEvents():void {
_bcStage = _bcExperience.getStage();
// Brightcove プレーヤ ステージおよび Google アカウント ID への参照を持つ Google トラッカを作成する
_tracker = new GATracker(_bcStage, ACCOUNT_ID, BRIDGE_MODE, DEBUG_MODE);
_bcVideo = player.getModule(APIModules.VIDEO_PLAYER) as VideoPlayerModule;
if (_bcVideo != null) {
_bcVideo.addEventListener(MediaEvent.BEGIN, onMediaBegin);
_bcVideo.addEventListener(MediaEvent.COMPLETE, onMediaComplete);
// 注記:ここで Brightcove プレーヤ イベント リスナーを追加できます
      }
// BC メニュー イベントを追跡したい場合、ここで Menu モジュールへの参照を取得する
//_bcMenu = player.getModule(APIModules.MENU) as MenuModule;
fireEvent(EVENT_PLAYER_LOAD);
      }
     /**
* プレーヤがステージにアクセスできる場合のためのハンドラ。
      *
* @param event ExperienceModule がディスパッチしたイベント。
      */
private function onAddedToStage(event:ExperienceEvent):void {
_bcExperience.removeEventListener(ExperienceEvent.ADDED_TO_STAGE, onAddedToStage);
registerEvents();
      }
     /**
* 新しいメディアが始まったときのためのハンドラ。
      *
* @param event VideoPlayerModule がディスパッチしたイベント。
      */
private function onMediaBegin(event:MediaEvent):void {
fireEvent(EVENT_VIDEO_START);
      }
     /**
* メディアがはじめて完了したときのためのハンドラ。
      *
* @param event VideoPlayerModule がディスパッチしたイベント。
      */
private function onMediaComplete(event:MediaEvent):void {
fireEvent(EVENT_VIDEO_COMPLETED);
      }
     /*
* プレーヤはインタラクションの準備が完了。ステージへのアクセスがないかチェックする。
      */
override protected function initialize():void {
_bcExperience = player.getModule(APIModules.EXPERIENCE) as ExperienceModule;
_bcStage = _bcExperience.getStage();
if (_bcStage == null) {
_bcExperience.addEventListener(ExperienceEvent.ADDED_TO_STAGE, onAddedToStage);
} else {
registerEvents();
      }
    }
  
  }
}
タグ
サンプル, ユーティリティ SWF