protected string AppendExtendedTracking(SiteTrackerSettings siteSettings, ref bool requiresScriptReference) { Dictionary <string, object> extendedTracking = this.GetExtendedTracking(siteSettings); requiresScriptReference = extendedTracking.Count > 0; return(this.SerializeTrackerSettings(extendedTracking, siteSettings.TrackingScriptOption.ToString())); }
public override string BuildTrackingScript(ScriptBuilderContext appenderContext, SiteTrackerSettings siteSettings, out bool requiresScriptReference) { requiresScriptReference = false; if (siteSettings == null) { return null; } StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("/* Begin GA Script */"); stringBuilder.AppendLine(_gaScript); stringBuilder.AppendLine(string.Format("ga('create', '{0}', 'auto');", siteSettings.TrackingId)); stringBuilder.AppendLine("// Extended Tracking"); stringBuilder.AppendLine(AppendExtendedTracking(siteSettings, ref requiresScriptReference)); stringBuilder.AppendLine("// Plugin Script"); stringBuilder.AppendLine(this.GetPluginScript()); if (siteSettings.TrackAuthors && !string.IsNullOrEmpty(appenderContext.Author)) { stringBuilder.AppendLine("// Custom Author Tracking"); stringBuilder.AppendLine(this.GetCustomDimension("Author", CustomVariables.AuthorVariable, appenderContext.Author)); } ContentReference contentReference = new ContentReference(appenderContext.PageId); ICollection<AnalyticsInteraction> interactions = EPiServer.GoogleAnalytics.Helpers.Extensions.GetInteractions(appenderContext.InteractionStore); // This is where the interesting stuff happens // All custom interactions are added here stringBuilder.AppendLine("// Begin Interactions"); foreach (AnalyticsInteraction interaction in interactions) { // Skip any interactions that are tied to a specific page if (ContentReference.IsNullOrEmpty(interaction.ContentLink) == false && contentReference.Equals(interaction.ContentLink) == false) { continue; } stringBuilder.AppendLine(interaction.GetUAScript()); } stringBuilder.AppendLine("// End Interactions"); // Clear any interactions that should not persist // across a request this.ClearRedundantInteractions(interactions); stringBuilder.AppendLine("ga('send', 'pageview');"); stringBuilder.AppendLine("/* End GA Script */"); return stringBuilder.ToString(); }
public override string BuildTrackingScript(ScriptBuilderContext appenderContext, SiteTrackerSettings siteSettings, out bool requiresScriptReference) { requiresScriptReference = false; if (siteSettings == null) { return(null); } StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("/* Begin GA Script */"); stringBuilder.AppendLine(_gaScript); stringBuilder.AppendLine(string.Format("ga('create', '{0}', 'auto');", siteSettings.TrackingId)); stringBuilder.AppendLine("// Extended Tracking"); stringBuilder.AppendLine(AppendExtendedTracking(siteSettings, ref requiresScriptReference)); stringBuilder.AppendLine("// Plugin Script"); stringBuilder.AppendLine(this.GetPluginScript()); if (siteSettings.TrackAuthors && !string.IsNullOrEmpty(appenderContext.Author)) { stringBuilder.AppendLine("// Custom Author Tracking"); stringBuilder.AppendLine(this.GetCustomDimension("Author", CustomVariables.AuthorVariable, appenderContext.Author)); } ContentReference contentReference = new ContentReference(appenderContext.PageId); ICollection <AnalyticsInteraction> interactions = EPiServer.GoogleAnalytics.Helpers.Extensions.GetInteractions(appenderContext.InteractionStore); // This is where the interesting stuff happens // All custom interactions are added here stringBuilder.AppendLine("// Begin Interactions"); foreach (AnalyticsInteraction interaction in interactions) { // Skip any interactions that are tied to a specific page if (ContentReference.IsNullOrEmpty(interaction.ContentLink) == false && contentReference.Equals(interaction.ContentLink) == false) { continue; } stringBuilder.AppendLine(interaction.GetUAScript()); } stringBuilder.AppendLine("// End Interactions"); // Clear any interactions that should not persist // across a request this.ClearRedundantInteractions(interactions); stringBuilder.AppendLine("ga('send', 'pageview');"); stringBuilder.AppendLine("/* End GA Script */"); return(stringBuilder.ToString()); }
protected string AppendExtendedTracking(SiteTrackerSettings siteSettings, ref bool requiresScriptReference) { Dictionary<string, object> extendedTracking = this.GetExtendedTracking(siteSettings); requiresScriptReference = extendedTracking.Count > 0; return this.SerializeTrackerSettings(extendedTracking, siteSettings.TrackingScriptOption.ToString()); }