我们在电子邮件中进行了跟踪,以通过 Google Analytics 跟踪返回我们网站的点击。但是有没有办法跟踪打开?我想我必须在某处的电子邮件中添加一个谷歌跟踪图像。也可能是javascript?
6 回答
正如其他人指出的那样,您不能在电子邮件中使用 Javascript。实际的跟踪是通过请求来完成的,__utm.gif
而 Javascript 只是构造 GET 参数。
Google 根据其移动网络文档支持非 Javascript 使用 Google Analytics: http ://code.google.com/mobile/analytics/docs/web/
它们记录了完整的参数列表,但唯一必要的参数是:
Parameter Description
utmac Google Analytics account ID
utmn Random ID to prevent the browser from caching the returned image
utmp Relative path of the page to be tracked
utmr Complete referral URL
听起来您正在使用 GA 的广告系列跟踪,但也想知道有多少打开。这可以通过谷歌分析来实现,因为他们使用像素跟踪来跟踪网页浏览量或事件,就像所有(我认为?)电子邮件跟踪一样。但是,您不能使用 javascript,因为它不会在电子邮件中执行。
使用 Google Analytics 像素跟踪:最简单的方法是使用浏览器开发工具,例如用于 Firefox 的 Firebug 或 Opera 的 Dragonfly 来捕获 utm.gif 请求并复制 URL。修改标题以满足您的需要。您可以将其视为事件或综合浏览量。如果你把它算作一个事件,它应该看起来像这样:
http://www.google-analytics.com/__utm.gif?utmwv=4.8.6&utmn=1214284135&utmhn=www.yoursite.com&utmt=event&utme=email_open&utmcs=utf-8&utmul=en&utmje=1&utmfl=10.1%20r102&utmdt=email_title&utmhid={10-digit time code}&utmr=0&utmp=email_name&utmac=UA-{your account}
我最好发布这个来省去每个人尝试构建那个可怕的 UTM gif URL 的麻烦。
您现在可以使用新的Measurement Protocol API发送 POST 请求并轻松记录事件、页面浏览量、点击量或几乎任何其他类型的测量。超级简单!
POST /collect HTTP/1.1
Host: www.google-analytics.com
payload_data
例如,下面是在 C# 中发送事件的代码片段(使用 SSL 端点):
public void SendEvent(string eventCategory = null, string eventAction = null, string eventLabel = null, int? eventValue = null)
{
using(var httpClient = new HttpClient() {BaseAddress = new Uri("https://ssl.google-analytics.com/")}) {
var payload = new Dictionary<string, string>();
// Required Data
payload.Add("v", "1"); // Version
payload.Add("tid", "UA-XXX"); // UA account
payload.Add("aip", "1"); // Anonymize IP
payload.Add("cid", Guid.NewGuid().ToString()); // ClientID
payload.Add("t", "event"); // Hit Type
// Optional Data
payload.Add("ni", "1"); // Non-interactive hit
// Event Data
if (eventCategory != null)
{
payload.Add("ec", eventCategory);
}
if (eventAction != null)
{
payload.Add("ea", eventAction);
}
if (eventLabel != null)
{
payload.Add("el", eventLabel);
}
if (eventValue != null)
{
payload.Add("ev", eventValue.Value.ToString(CultureInfo.InvariantCulture));
}
using (var postData = new FormUrlEncodedContent(payload))
{
var response = httpClient.PostAsync("collect?z=" + DateTime.Now.Ticks, postData).Result;
if (!response.IsSuccessStatusCode)
{
throw new Exception("Could not send event data to GA");
}
}
}
}
比使用 __utm gif 破解要容易得多。
有用的例子
您可以通过执行以下操作轻松地将其添加到电子邮件中:
在一封电子邮件中:
<img src="{url}/newsletter/track.gif?newsletterName=X" />
例如,在您的 MVC 站点中NewsletterController
:
public ActionResult Track(string newsletterName) {
using(var ga = new AnalyticsFacade()) {
ga.TrackEmailOpen(newsletterName);
}
return Content("~/images/pixel.gif", "image/gif");
}
在您的 Global.asax 或RouteConfig
:
routes.MapRoute(
"newsletteropen",
"newsletter/track.gif",
new
{
controller = "Newsletter",
action = "Track"
});
BOOM,完成,儿子。您现在可以使用受支持和记录的更好的 API 来跟踪电子邮件打开情况。
您的要求是跟踪给定用户打开电子邮件的次数。我们有类似的问题。我们正在使用 SMTP 中继服务器,并且想要跟踪我们的营销电子邮件打开了多少次,此外还有 google-analytics,它仅在有人点击电子邮件中指向我们网站的内部链接时才会注册。
这是我们的解决方案。它基于通过覆盖 html 的图像元素进行 REST 调用(我们的电子邮件是基于 html 的)
其中 TRACKING 是动态生成的 url,它指向我们的 REST 服务,其中包含有关向其发送电子邮件的人的跟踪信息。是这样的
//def trackingURL = URLEncoder.encode("eventName=emailTracking&entityType=employee&entityRef=" + email.empGuid, "UTF-8");
trackingURL = baseUrl + "/tracking/create?" + 跟踪网址;
它将类似于“ https://fiction.com:8080/marketplace/tracking/Create?eventName=email&entityType=Person&entityRef=56 ”
当生成实际的电子邮件 html 时,TRACKING 将替换为
重要的一点是返回图像类型的响应并返回带有 REST 响应的一像素透明图像。
所以我假设电子邮件包含指向您网站的链接。当然 GA 可以记录该链接被点击的频率,因为点击该链接会依次打开页面导致函数 *_trackPageview()* 被调用,该函数被 GA 记录为pageview。
因此,只要该页面具有标准的GA page tag,就不需要对网页标记中的 GA 代码或 GA 浏览器进行特殊配置。您唯一需要做的额外工作是,您可以将这些页面浏览量与来自其他来源的访问者的页面浏览量区分开来。
为此,您只需标记此链接。除非您有自己的系统并且它适合您,否则我建议您使用Google URL Builder为您执行此操作。Google URL Builder 只是一个网络表单,您可以在其中输入营销活动的描述性术语:活动来源、活动媒介、活动内容、活动名称。一旦您为这些术语中的每一个输入了值,并输入了您网站的 URL,Google 将立即为您生成一个“标记链接”(通过将这些值连接到您网站的 URL)。
这个由 Google URL Builder 生成的 URL 是放置在营销电子邮件文本中的链接。