 		 * @param base64Encoded Whether JSONs in the payload should be base-64 encoded
 		 */
 		function Tracker(emitter:Emitter, namespace:String, appId:String, subject:Subject = null, stage:Stage = null, base64Encoded:Boolean = true) {
-				this.emitter = emitter;
-				this.appId = appId;
-				this.base64Encoded = base64Encoded;
-				this.namespace = namespace;
-				this.subject = subject;
-				this.trackerVersion = Version.TRACKER;
-				this.platform = DevicePlatform.WEB;
-				this.stage = stage;
-				
-				this.playerType = Capabilities.playerType;
-				this.playerVersion = Capabilities.version;
-				this.isDebugger = Capabilities.isDebugger;
-				
-				try 
-				{
-					SharedObject.getLocal("test");
-					this.hasLocalStorage = true;
-				} 
-				catch (e:Error)
-				{
-					this.hasLocalStorage = false;
-				}
-				this.hasScriptAccess = ExternalInterface.available;
+			this.emitter = emitter;
+			this.appId = appId;
+			this.base64Encoded = base64Encoded;
+			this.namespace = namespace;
+			this.subject = subject;
+			this.trackerVersion = Version.TRACKER;
+			this.platform = DevicePlatform.WEB;
+			this.stage = stage;
+			
+			this.playerType = Capabilities.playerType;
+			this.playerVersion = Capabilities.version;
+			this.isDebugger = Capabilities.isDebugger;
+			
+			try 
+			{
+				SharedObject.getLocal("test");
+				this.hasLocalStorage = true;
+			} 
+			catch (e:Error)
+			{
+				this.hasLocalStorage = false;
 			}
+			this.hasScriptAccess = ExternalInterface.available;
+			
+			if (this.hasScriptAccess) {
+				try { pageUrl = ExternalInterface.call("function getPageUrl() { return document.location.href; }"); } catch(e:Error) { pageUrl = "UNKNOWN"; }
+				try { pageTitle = ExternalInterface.call("function getPageTitle() { return document.title; }"); } catch(e:Error) { pageTitle = "UNKNOWN"; }
+				try { referrer = ExternalInterface.call("function getReferrer() { return document.referrer; }"); } catch(e:Error) { referrer = "UNKNOWN"; }
+			}				
+		}
 		
 		/**
 		 * @param payload Payload builder

		private var hasLocalStorage:Boolean;
		private var hasScriptAccess:Boolean;
		
		/**
		 * @param emitter Emitter to which events will be sent
		 * @param subject Subject to be tracked


package com.snowplowanalytics.snowplow.tracker
{
	import com.adobe.net.URI;
	import com.snowplowanalytics.snowplow.tracker.emitter.Emitter;
	import com.snowplowanalytics.snowplow.tracker.payload.IPayload;
	import com.snowplowanalytics.snowplow.tracker.payload.SchemaPayload;
