I have a problem with Sitecore.Analytics
From my xslt, I do an ajax call to a webservice using jQuery.
In my webservice I need to register/save some Sitecore.Analytics data.
The problem is that I can’t use Sitecore.Analytics.AnalyticsTracker.Current.
So how do I do TriggerProfile and TriggerEvent?
I wonder if Sitecore.Analytics.AnalyticsManager could be to any help.
I recently encountered a similar scenario in having to track an analytics event within a webservice. As you noted, the problem is that
AnalyticsTracker.Currentis null within the context of a webservice.The reason for this is that
AnalytisTracker.Currentis populated during thetrackAnalyticspipeline, which in turn is invoked during therenderLayoutpipeline, which is only invoked if the context item is not null and the context item has presentation settings defined.With that said, there is a workaround 🙂
You can start the
AnalyticsTrackermanually like so:You can then retrieve an
AnalyticsTrackerinstance like so:And finally, you can create and trigger your event, profile, etc… The example below triggers a
PageEvent. Note: there is a special consideration to be made for aPageEvent(and most likely other events) in order to get theTimestampproperty populated. See the comments in the code below.Hope this helps!