Fun with Google Analytics in the Flash IDE with AS3

ExternalInterface.call()
There’s always External Interface method. Some good tutorials on this out there too.

So far I found 1 Flashcoders post about a bug in IE7 that doesn’t allow the use of this technique.

nagivateToURL()
People seem to be complaining about unwanted popup windows with this method. It seems to work fine for me in the browser, both locally and off a server. Popup windows only show up with Test Movie, which, while annoying, will not be an issue with clients.

Google’s AS3 component / SWC library
Google has an Analytics component and an Analytics Library component that doesn’t require any javascript on your page and talks to their analytics system directly. Only problem seems to be it adds between 60KB and 40KB to your file size. The cool part – you don’t have to rely on Javascript at all.

SWFaddress for Google Analytics tracking
There’s a way to use SWFaddress 2.0 together with ga.js to track page views in Flash sites.

sendToURL()
There’re a few posts from 2007 that utilize the global function sendToURL().

/* ... */
var trgtURL:URLRequest = new URLRequest("javascript:pageTracker._trackPageview('mypath/mypage_link');");
sendToURL(trgtURL);
/* ... */

This technique wouldn’t work & gave me a security error every time, both during Test Movie and from a live server. I suspect the Flash player security changes between 9,0115 and 10 banned this method. Here’s the error: “Security Error: Error #2169: The method sendToURL may not be used for browser scripting. The URL javascript:pageTracker._trackPageview…”

getURL() ?
Oh, I hope not…

Something like this should work OK, given you import all the proper classes & Google’s javascript code is on the html page that displays your .SWF:

//...       
       trackTheGoogley("mysite.com/mycategory/mytrackerTextHere");

		public function trackTheGoogley(trackString:String):void
		{			
			if(ExternalInterface.available){
				ExternalInterface.call("pageTracker._trackPageview",trackString);
			} else {
				navigateToURL(new URLRequest("javascript:pageTracker._trackPageview('"+trackString+"')"), "_self");
			}
		}
//...     
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s