Home > analyze > FlashからGoogle Analyticsを使う(AS2、AS3両方対応)

FlashからGoogle Analyticsを使う(AS2、AS3両方対応)

  • Posted by: ryow
  • 2008年6月18日 21:11
  • analyze

※2008.11追記※
FlashCS3でAnalyticsを使う「Google Analytics Tracking for Adobe Flash」の方が簡単です。こちらをどうぞ!

via:
FlashからGoogle Analyticsをトラッキングするにはどうすればよいですか(Analyticsヘルプ)
Flashのボタンやフレームや、まぁいろんなタイミングで「このページが見られたか」「誰に見られたか」とかを計測するのに、Analyticsを使うのがスマートです。

FlashCS3のAnalyticsコンポーネントの解説はこちら

AS2ですが、古いGA(urchinTracker)に対応する方法は↓

on (release) {
getURL("javascript:urchinTracker('/folder/file');");
}

新しいコードに対応する書き方はこちら↓

on (release) {
getURL("javascript:pageTracker._trackPageview('/folder/file.html');");
}

などと書けばよいらしく、GAの関数に適当な引数をつけて呼んであげればよい、ということでした。
でもこれはAS2の話です。ではAS3ではどうかというと、getURL関数がなくなってしまったので(getURLはページ遷移ということでnavigatoToURL関数になりました)javascriptを呼び出すときはExternalInterfaceを使います。

import flash.external.ExternalInterface;
import flash.events.MouseEvent;
button001.addEventListener(MouseEvent.CLICK,TestJS)
 function TestJS(evt:MouseEvent):void {
      ExternalInterface.call("urchinTracker", "/flashclick/001btn");
    }

こんな感じでしょうか。

じゃあurchinTrackerを呼ぶのをもっと簡単にしたいよね、ということで、これだけを呼ぶクラスを作ってみます。

//ExGA.as
package{
  import flash.external.*
  public class ExGA{

    public static function track(pageID):void{
      ExternalInterface.call("urchinTracker",pageID)
    }
  }
}

こんなのが出ました、ってんで使い方としてはこちら。↓

//Flash IDE上のフレームスクリプト
//画面にはインスタンスbtn001があります
var page:String = "/flashclick/001btn"
btn001.addEventListener(MouseEvent.CLICK,trackFunc(page))

function trackFunc(_page:String):Function{
  return function(e:MouseEvent):void{
    ExGA.track(_page)
  }
}

これは何をやってんのかというと、(1)MouseEvent.CLICKで実行するハンドラに引数をあてて、(2)引数をstatic関数trackに送って、(3)MouseEventをもつハンドラ関数を定義している、ということです。
何でそんな面倒なやり方するんじゃ、という疑問については、addEventListenerに登録する関数に引数を持たせたいからです。別に引数をpageという変数で持ってるんだから

//Flash IDE上のフレームスクリプト
//画面にはインスタンスbtn001があります
var page:String = "/flashclick/001btn"
btn001.addEventListener(MouseEvent.CLICK,trackFunc)

function trackFunc(e:MouseEvent):void{
    ExGA.tracker(page)
}

というやり方でも全然OK。結果は
analytics

!!注意!! これは、Flash単体での解析ではありません。ページ内にga.jsを読み込んだ上での作業なので、フルフラッシュページの解析をしたいならこちらをチェックしてください。

Externalするときの注意

SWFObjectを使ったExternalInterfaceまとめでも書きましたが、この注意点(objectのIDに念のためexternal、と名づけておくとか)に加えて、まぁ確認の話なんですが、Flashからのexternalコールはローカル環境じゃ動かないという点が意外とハマるかも。javascriptのalertを呼ぶだけでもローカルじゃ動きません。
なぜか。
なぜなら、FlashPlayer←ブラウザ→JS、の流れで、ネットワークアクセスが発生しているからです。よく分からないけどそうです。

JSでalertを書いてそのまま実行するならローカル環境なんだけど、ASからJSを呼ぼうとしているときはネットワークを経由している(localhostみたいなもの?)のです。

macの場合は「web共有」をオンにしてlocalhost環境で試してみればOK。

あわせて読みたい

ECサイト4モデル式 Google Analytics経営戦略 (ビジネスアスキー) (ビジネスアスキー)
ECサイト4モデル式 Google Analytics経営戦略 (ビジネスアスキー) (ビジネスアスキー)
Google Analyticsではじめる SEO対策
Google Analyticsではじめる SEO対策

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://ryow.net/mt/mt-tb.cgi/339
Listed below are links to weblogs that reference
FlashからGoogle Analyticsを使う(AS2、AS3両方対応) from ryow.net Blog

Home > analyze > FlashからGoogle Analyticsを使う(AS2、AS3両方対応)

About

りょうどっとねっとブログ

Search

Return to page top