Skip to content

Instantly share code, notes, and snippets.

@nehemiahj
Last active July 13, 2022 14:00
Show Gist options
  • Save nehemiahj/5ed601fe4773dd05b8eb23fd8634cbcd to your computer and use it in GitHub Desktop.
Save nehemiahj/5ed601fe4773dd05b8eb23fd8634cbcd to your computer and use it in GitHub Desktop.
Inject Referrer URL to Azure App Insights for Sitecore Instance
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
using Sitecore.Pipelines.HttpRequest;
using System.Web;
namespace Sitecore.Foundation.SitecoreExtensions.Pipelines.HttpRequestBegin
{
public class AddReferrerToTelemetry : HttpRequestProcessor
{
public override void Process(HttpRequestArgs args) => AddReferrerToTelemetry.Inject();
public static void Inject()
{
TelemetryConfiguration.Active.TelemetryInitializers.Add((ITelemetryInitializer)new ReferrerInitializer());
}
}
public class ReferrerInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
if (telemetry is RequestTelemetry requestTelemetry)
{
var httpContext = HttpContext.Current;
if (httpContext?.Request == null)
{
return;
}
var request = httpContext.Request;
requestTelemetry.Properties["Referrer"] = request.UrlReferrer.AbsoluteUri;
}
}
}
}
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"
xmlns:role="http://www.sitecore.net/xmlconfig/role/"
xmlns:useApplicationInsights="http://www.sitecore.net/xmlconfig/useApplicationInsights/">
<sitecore>
<httpRequestBegin>
<processor type="Sitecore.Foundation.SitecoreExtensions.Pipelines.HttpRequestBegin.AddReferrerToTelemetry,
Sitecore.Foundation.SitecoreExtensions"
resolve="true"
patch:before="*[1]"
useApplicationInsights:require="!false" />
</sitecore>
</configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment