Skip to content

Instantly share code, notes, and snippets.

@drawcode
Created January 3, 2013 05:44
Show Gist options
  • Select an option

  • Save drawcode/4441108 to your computer and use it in GitHub Desktop.

Select an option

Save drawcode/4441108 to your computer and use it in GitHub Desktop.
using System.Collections.Generic;
namespace GoogleAnalyticsTracker
{
public partial class Tracker
{
public void TrackPageView(string pageTitle, string pageUrl)
{
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("AnalyticsVersion", AnalyticsVersion);
parameters.Add("utmn", GenerateUtmn());
parameters.Add("utmhn", Hostname);
parameters.Add("utmcs", CharacterSet);
parameters.Add("utmul", Language);
parameters.Add("utmdt", pageTitle);
parameters.Add("utmhid", AnalyticsSession.GenerateSessionId());
parameters.Add("utmp", pageUrl);
parameters.Add("utmac", TrackingAccount);
parameters.Add("utmcc", AnalyticsSession.GenerateCookieValue());
var utme = _utmeGenerator.Generate();
if (!string.IsNullOrEmpty(utme))
parameters.Add("utme", utme);
RequestUrlAsync(UseSsl ? BeaconUrlSsl : BeaconUrl, parameters);
}
public void TrackEvent(string category, string action, string label, int value)
{
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("AnalyticsVersion", AnalyticsVersion);
parameters.Add("utmn", GenerateUtmn());
parameters.Add("utmhn", Hostname);
parameters.Add("utmni", "1");
parameters.Add("utmt", "event");
var utme = _utmeGenerator.Generate();
parameters.Add("utme", string.Format("5({0}*{1}*{2})({3})", category, action, label ?? "", value) + utme);
parameters.Add("utmcs", CharacterSet);
parameters.Add("utmul", Language);
parameters.Add("utmhid", AnalyticsSession.GenerateSessionId());
parameters.Add("utmac", TrackingAccount);
parameters.Add("utmcc", AnalyticsSession.GenerateCookieValue());
RequestUrlAsync(UseSsl ? BeaconUrlSsl : BeaconUrl, parameters);
}
public void TrackTransaction(string orderId, string storeName, string total, string tax, string shipping, string city, string region, string country)
{
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("AnalyticsVersion", AnalyticsVersion);
parameters.Add("utmn", GenerateUtmn());
parameters.Add("utmhn", Hostname);
parameters.Add("utmt", "event");
parameters.Add("utmcs", CharacterSet);
parameters.Add("utmul", Language);
parameters.Add("utmhid", AnalyticsSession.GenerateSessionId());
parameters.Add("utmac", TrackingAccount);
parameters.Add("utmcc", AnalyticsSession.GenerateCookieValue());
parameters.Add("utmtid", orderId);
parameters.Add("utmtst", storeName);
parameters.Add("utmtto", total);
parameters.Add("utmttx", tax);
parameters.Add("utmtsp", shipping);
parameters.Add("utmtci", city);
parameters.Add("utmtrg", region);
parameters.Add("utmtco", country);
RequestUrlAsync(UseSsl ? BeaconUrlSsl : BeaconUrl, parameters);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment