frontend: add Google Analytics snippet

These were previously added by an internal deploy script. Add them
directly to avoid needing internal bits.

Only activate analytics when running on play.golang.org.

Change-Id: I1f47972d99922199917d13aece26693e274514aa
Reviewed-on: https://go-review.googlesource.com/84978
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/frontend/edit.go b/frontend/edit.go
index 2e8809f..bb5eaa3 100644
--- a/frontend/edit.go
+++ b/frontend/edit.go
@@ -18,8 +18,9 @@
 var editTemplate = template.Must(template.ParseFiles("edit.html"))
 
 type editData struct {
-	Snippet *snippet
-	Share   bool
+	Snippet   *snippet
+	Share     bool
+	Analytics bool
 }
 
 func (s *server) handleEdit(w http.ResponseWriter, r *http.Request) {
@@ -63,8 +64,9 @@
 	}
 	w.Header().Set("Content-Type", "text/html; charset=utf-8")
 	data := &editData{
-		Snippet: snip,
-		Share:   allowShare(r),
+		Snippet:   snip,
+		Share:     allowShare(r),
+		Analytics: r.Host == hostname,
 	}
 	if err := editTemplate.Execute(w, data); err != nil {
 		s.log.Errorf("editTemplate.Execute(w, %+v): %v", data, err)
diff --git a/frontend/edit.html b/frontend/edit.html
index 7e240b4..8bf62f2 100644
--- a/frontend/edit.html
+++ b/frontend/edit.html
@@ -3,6 +3,16 @@
 	<head>
 		<title>The Go Playground</title>
 		<link rel="stylesheet" href="/static/style.css">
+		{{if .Analytics}}
+		<script async src="https://www.googletagmanager.com/gtag/js?id=UA-11222381-7"></script>
+		<script>
+			window.dataLayer = window.dataLayer || [];
+			function gtag(){dataLayer.push(arguments);}
+			gtag('js', new Date());
+			gtag('config', 'UA-11222381-7');
+			gtag('config', 'UA-49880327-6');
+		</script>
+		{{end}}
 		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
 		<script src="/static/jquery-linedtextarea.js"></script>
 		<script src="/playground.js"></script>
@@ -49,20 +59,27 @@
 				about.show();
 			})
 			// Preserve "Imports" checkbox value between sessions.
-			if (readCookie('playgroundImports') == 'true')
+			if (readCookie('playgroundImports') == 'true') {
 				$('#imports').attr('checked','checked');
+			}
 			$('#imports').change(function() {
 				createCookie('playgroundImports', $(this).is(':checked') ? 'true' : '');
 			});
+			{{if .Analytics}}
 			// Fire Google Analytics events for Run/Share button clicks.
-			if (window.trackEvent) {
-				$('#run').click(function() {
-					window.trackEvent('playground', 'click', 'run-button');
+			$('#run').click(function() {
+				gtag('event', 'click', {
+					event_category: 'playground',
+					event_label: 'run-button',
 				});
-				$('#share').click(function() {
-					window.trackEvent('playground', 'click', 'share-button');
+			});
+			$('#share').click(function() {
+				gtag('event', 'click', {
+					event_category: 'playground',
+					event_label: 'share-button',
 				});
-			}
+			});
+			{{end}}
 		});
 
 		function createCookie(name, value) {