package { import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLRequestMethod; /** * Tracking class for google analytics * @author l.gn * @link http://satoridigital.com */ public class GoogleAnalyticsGIF { private static var _trackedURL:String; //tje url of the website we are tracking private static var _trackingID:String; //the tracking id as been setup in google analytics. /** * Static, sends the page to the analytics gif * @param page:String - the tracking tag we want to send to goodle analytics */ public static function sendTracking(page:String):void { if (_trackingID && _trackedURL) { var loader:Loader = new Loader(); var url:String = "http://www.google-analytics.com/__utm.gif?utmwv=4.3&utmdt=Smart_Banners&utmhn=" + encodeURIComponent(_trackedURL) + "&utmp=" + encodeURIComponent(page)+ encodeURIComponent(_trackingID); trace("Tracking url >-- " + url); var request:URLRequest = new URLRequest(url); request.method = URLRequestMethod.GET; loader.addEventListener(Event.COMPLETE, trackingSentHnadler); loader.addEventListener(IOErrorEvent.IO_ERROR, trackingIOErrorHnadler); loader.load(request); }else { throw new Error("wow! wait a second you need to set your trackingID and url!"); } } private static function trackingSentHnadler(e:Event):void { //nothing to handle.. } private static function trackingIOErrorHnadler(e:IOErrorEvent):void { trace("woops! Error!: " + e.text); } public static function set trackedURL(value:String):void { _trackedURL = value; } public static function get trackedURL() :String{ return _trackedURL ; } public static function set trackedID(value:String):void { _trackingID = value; } public static function get trackedID():String { return _trackingID ; } } }