Home > ActionScript3.0 | JavaScript > SWFObject+ExternalInterfaceでのGoogle Analytics設定

SWFObject+ExternalInterfaceでのGoogle Analytics設定

FlashとJavaSrciptの連携をするにはExternalInterfaceを使うと便利です。過去記事で面倒なやり方をエントリーしましたが今後はこちらのやり方で行こうと想います。

先日「Google Analytics」がFlashコンテンツのアクセス解析に対応しましたが、こちらのやり方は後でやってみるとして、とりあえずExternalInterfaceを使ってJavaSrciptと連携しGoogle Analyticsを使えるようにしてみます。

こんな感じです。



参考にさせて頂いたページ

以下、上記のサイト様のマネマネです。
まず、ExternalInterfaceを使ってJavaSrciptと連携します。htmlの設定はこんな感じ。

XHTML
<div id="externalFlash">
<script type="text/javascript">
	// <![CDATA[
	var so = new SWFObject('testGA.swf', 'external2', '350', '200', '9', '#ffffff');
		so.addParam('wmode', 'opaque');
		so.addParam('allowScriptAccess', 'always');
        so.write('externalFlash');
	// ]]>
</script>
</div>

1.SWFObjectを使ってFlashを表示させる部分をexternal**というdivで囲みます。
2.SWFObjectの第2引数をexternal**とします。
3.allowScriptAccessをalwaysに設定。

external**というidにするのがポイントのようです。Flashの設定は以下のようになります。(img1をクリックするとimg1用のページIDを送信)

Action Script
import flash.external.ExternalInterface;
import flash.events.MouseEvent;
img1.addEventListener(MouseEvent.CLICK,clickTest)

function clickTest(event:MouseEvent):void {
      ExternalInterface.call("pageTracker._trackPageview", "/flash/img1/");
    }

まず最初にexternalクラスのExternalInterfaceをimportして、callメソッドでJavaScript関数を呼び出します。call(”pageTracker._trackPageview”,”ページID”);という形式です。

さらにより使いやすくするためにpageTracker._trackPageviewを呼び出すためのクラスを作ります(ExGA.as)

Action Script
package{
  import flash.external.*
  public class ExGA{

    public static function tracker(pageID):void{
      ExternalInterface.call("pageTracker._trackPageview",pageID)
    }
  }
}

このクラスを使ってできたサンプルがこんな感じです。(ドキュメントクラスMain.as)

Action Script
package {
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextField;

	//Google Analytics
	import ExGA;

	public class Main extends MovieClip
	{

		//コンストラクタ
		public function Main():void {
			init();
		}

		public function init():void
		{
			//トラッキングに使うページID設定
			var page1:String = "/flash/433/";
			var page2:String = "/flash/peopot/";

			//イベントリスナー登録
			img1.addEventListener(MouseEvent.CLICK, clickTrack(page1));
			img2.addEventListener(MouseEvent.CLICK, clickTrack(page2));
		}

		public function clickTrack(pageID:String):Function
		{
			return function(event:MouseEvent):void
			{
				ExGA.tracker(pageID)
				//TextFieldにページIDを表示
				textArea.text = pageID;
			}
		}
	}
}

MouseEvent.CLICKで実行するclickTrackハンドラに引数を持たせ、その引数をExGAクラスのstatic関数trackに送って、MouseEventをもつハンドラ関数を定義しています。これによりクリックした画像により個別のページIDを持たせることができます。

サンプルデータ(36KB)

Comments:1

digitrick Labs 08-11-24 (月) 0:01

links for 2008-11-23

SWFObject+ExternalInter…

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.chimanaco.net/archives/20081122192257.php/trackback
Listed below are links to weblogs that reference
SWFObject+ExternalInterfaceでのGoogle Analytics設定 from チマナコィズムシィステム

Home > ActionScript3.0 | JavaScript > SWFObject+ExternalInterfaceでのGoogle Analytics設定

Search
Feeds
Meta
works
MYUNGMI'S PARK+
友人のイラストレーターのポートフォリオサイトです。ゴキゲンなイラストがいっぱい!
AnotherBookmark
1日1カワイ子ちゃん
やっぱダッフルでしょ

Return to page top