Google Analytics Tag Helper for ASP.NET Core
A simple ASP.NET Core Tag Helper that emits Google Analytics tracking code.

Tag Helpers are a cool new feature in ASP.NET Core that let you define custom HTML elements that are processed server-side.

I thought that it would be neat to be able to emit Google Analytics tracking code by writing a single HTML element:

<google-analytics tracking-id="UA-XXXXXXXX-X" />

I was able to accomplish that with the following tag helper:

public class GoogleAnalyticsTagHelper : TagHelper
    public string TrackingId { get; set; }

    public override void Process(TagHelperContext context, TagHelperOutput output)

        if (!String.IsNullOrEmpty(TrackingId))
            var sb = new StringBuilder();
            sb.AppendLine($"<script async src=\"{TrackingId}\"></script>");
            sb.AppendLine("  window.dataLayer = window.dataLayer || [];");
            sb.AppendLine("  function gtag(){dataLayer.push(arguments);}");
            sb.AppendLine("  gtag('js', new Date());");
            sb.AppendLine($"  gtag('config', '{TrackingId}');");


I hope this blog post helps you out, or gives you inspiration for your own ASP.NET Core tag helpers.

Posted by Matthew King on 5 November 2017
Permission is granted to use all code snippets under CC BY-SA 3.0 (just like StackOverflow), or the MIT license - your choice!
If this post helped you out, feel free to shout me a coffee