/// <summary> /// Create a new AnalyticsClient with a given configuration, session, environment and URI sender. /// </summary> /// <param name="configuration">Configuration of this Google Analytics Urchin client.</param> /// <param name="sessionManager">Session manager with visitor and session information.</param> /// <param name="environment">Provider of environmental information such as screen resolution.</param> /// <param name="sender">Action to take prepared URIs for Google Analytics and send them on.</param> public void Configure(UrchinConfiguration configuration, SessionManager sessionManager, IEnvironment environment, Action<Uri> sender) { Debug.Assert(tracker == null); var newTracker = new UrchinTracker(configuration, sessionManager, environment, sender); while (queue.Count > 0) newTracker.Track(queue.Dequeue()); tracker = newTracker; }
/// <summary> /// Create a new AnalyticsClient with a given configuration, session, environment and URI sender. /// </summary> /// <param name="configuration">Configuration of this Google Analytics Urchin client.</param> /// <param name="sessionManager">Session manager with visitor and session information.</param> /// <param name="environment">Provider of environmental information such as screen resolution.</param> /// <param name="sender">Action to take prepared URIs for Google Analytics and send them on.</param> public void Configure(UrchinConfiguration configuration, SessionManager sessionManager, IEnvironment environment, Action <Uri> sender) { Debug.Assert(tracker == null); var newTracker = new UrchinTracker(configuration, sessionManager, environment, sender); while (queue.Count > 0) { newTracker.Track(queue.Dequeue()); } tracker = newTracker; }
/// <summary> /// Track this activity in analytics. /// </summary> /// <param name="activity">Activity to track in analytics.</param> /// <param name="activityCustomVariables">Activity scoped custom variable slots to record for this activity.</param> public void Track(IUrchinActivity activity, CustomVariableSlots activityCustomVariables = null) { if (activity is AutoTimedEventActivity) { ((AutoTimedEventActivity)activity).End(); } var entry = new UrchinActivityEntry { Activity = activity, CustomVariables = GetFinalCustomVariables(activityCustomVariables) }; if (tracker == null) { queue.Enqueue(entry); } else { tracker.Track(entry); } }