增强 Web 分析跟踪解决方案 – Google Analytics
如何增强并充分利用谷歌分析或任何其他网站跟踪工具。这对于那些只想了解更多的人来说,对这些应用程序的工作原理有一个很好的认识。
引言
作为网站开发人员,最常见的任务之一是在网站上安装某种网站跟踪软件,以便业务人员和决策者能够获得有关网站表现的报告。其中一个工具,而且鉴于其成本(免费!),谷歌分析是一个非常好的工具。在本文中,我将介绍一些方法和技巧,以充分利用此工具,尽管这些方法和技巧也可以应用于您可能使用的任何工具或软件解决方案。本文中的示例使用了谷歌分析代码,但原理适用于任何工作方式相似的分析工具。谷歌分析仅提供一个用户定义的跟踪变量供您使用。这对于我们的使用非常有限,我希望将来谷歌能够决定增加其解决方案允许的用户定义变量数量。其他解决方案提供不止一个自定义变量,这显然为您添加报告数据中的洞察力和深度提供了极大的灵活性。然而,为了演示一些跟踪思路,即使一个变量也足够了。
问题所在
现在让我们来详细说明我们要完成的事情。首先,我想从业务角度解释我们试图解决的问题。跟踪网站访问就是电子营销的全部。任何使用某种在线广告的网站都完全依赖报告来评估营销工作是否真的值得。您的广告投放服务(如谷歌的AdWords、Overture等)提供的报告工具提供了详细的广告效果报告,如果您在网站上正确设置,您就可以获得非常全面的投资回报率报告。
然而,有一些情况会“漏掉”这些报告工具的视线。主要是因为这需要比这些解决方案提供的“即插即用”代码更复杂的网站编码。让我们来看一个典型的场景。
用户 X 访问了一个名为 teddysearch.com 的搜索引擎网站,您在该网站上投放了付费广告或横幅广告。用户搜索“毛绒泰迪熊”,您的按点击付费广告出现。该用户点击广告,并很高兴地找到了您的专业销售毛绒泰迪熊的电子商务商店。带有您广告系列的链接如下所示
<a href="http://www.fluffyteddy.com/view.asp?utm_source=
teddysearch&utm_medium=CPC&utm_content=fluffy">link</a>
现在,当您的访客无意中浏览您的页面时,谷歌分析代码会创建一些客户端 Cookie。这就是谷歌分析能够在页面浏览和重复访问之间跟踪访客的方式。
我们关心的 Cookie 称为“_utmz”,如果我们查看 Cookie 中的值,我们将发现所有广告系列详细信息
utmcsr=teddysearch|utmccn=fluffy|utmcmd=CPC
正如您所理解的,谷歌分析将广告系列详细信息保存在 Cookie 中,并将其存储 6 个月(前提是用户在此期间不删除 Cookie)。
将此数据存储六个月很重要,因为在我们的场景中,该用户此刻并没有购买毛绒泰迪熊。他只是想起自己有更重要的事情要做,而不是浏览泰迪熊,所以他没有购买任何东西就离开了您的网站。一周后,他突然萌生了购买泰迪熊的冲动,并记起了您的网站。这次,他没有访问搜索引擎,而是直接在他的浏览器中输入了您的网站地址。
现在,因为您的用户不是网站开发人员,他没有清除 Cookie,因此当谷歌分析查看是否存在“_utmz” Cookie 时,它会找到您按点击付费广告系列的所有详细信息,即“teddysearch.com”。现在您的用户愉快地将他最喜欢的泰迪熊添加到购物车,然后继续结账。
太好了,又一位快乐的客户即将收到一只泰迪熊,更妙的是,谷歌分析刚刚将这次购买或交易与您的“teddysource”按点击付费广告系列关联起来。
这对于跟踪您的实际广告成本非常有益。如果谷歌分析没有将此交易链接到其原始来源,您将认为您只是在“teddysearch”上浪费金钱,而且没有任何交易产生,因为您所有的交易都会被归类为“直接”,这是谷歌分析没有来源的所有内容的来源。
到目前为止,一切都很好很干净。但当我们的用户访问我们的网站时不遵循常规、保守的路径(有谁会呢?)时,会发生什么?追踪事情变得有点困难。例如,假设您在多个网站上投放了按点击付费广告,并且您试图了解人们来自哪里。
现在,在这种情况下,我们的用户访问了 teddysearch.com,看到了您的广告,点击并访问了网站,但没有购买任何东西。像以前一样,谷歌分析记录了这次访问来自 teddysearch.com,但一周后,同一用户在不同的网站上搜索,看到了不同的广告,并点击了那个广告。发生的情况是,“_utmz” Cookie 中的值会被新的广告系列详细信息覆盖。
所以现在,“_utmz” Cookie 将拥有
utmcsr=compareyourbear.com|utmccn=teddy|utmcmd=CPC
现在,您的用户去购买了另一只可爱的泰迪熊,谷歌分析将这次交易归类为 compareyourbear.com,而该用户最初来自 teddysearch.com 的事实完全被遗忘了!
从广告成本的角度来看,这次交易实际上花费了 2 次点击,但报告为一次。我已向谷歌分析技术支持验证了这一点,并提供了确切的场景,并得到了确认原始链接已被覆盖的答复。
解决方案
在本文中,我想介绍一种通过在网站上添加一些代码来解决此问题的方法。这段代码会创建一个名为“MyGoogleTracker”的另一个 Cookie,该 Cookie 会保存已标记 URL 的源元素中的所有值,即使谷歌 Cookie 中的值被覆盖,此 Cookie 中的值仍然保留,并且新值会附加到其中。
也就是说,在我们的示例中,这两个值都将按发生的顺序得到保留。然后,只需一行代码,即可将此值放入谷歌分析提供的用户定义变量中。
在谷歌分析报告套件的“用户定义”下,您将看到值如下出现
teddysearch.com|compareyourbear.com
通过使用交叉细分工具,您可以分析您的数据并意识到第二次交易实际上属于在进行交易之前访问过这两个网站的访问者。
这是 JavaScript 代码
function GetSourceFromUTMZCookie() {
// getting the value from the original Google Analytics cookie
var str = document.cookie;
var source = "";
var a = str.indexOf("utmcsr=");
if (a > -1) {
var val = str.substring(a);
var b = val.indexOf("|");
source = val.substring(7,b);
}
return source;
}
function GetValuesFromLocalCookie() {
// Getting the historical values from local cookie
var str = document.cookie;
var val = "";
var a = str.indexOf("MyGoogleTracker=");
if (a > -1) {
val = str.substring(a+16);
}
return val;
}
function CreateMyTrackingCookie(source) {
// create the local cookie and append old values
var existing = GetValuesFromLocalCookie();
if (existing != source) {
if (existing != "") {
source = existing + "|" + source;
}
var date = new Date();
date.setTime(date.getTime()+(365*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
document.cookie ='_MyGoogleTracker='+source+'; expires='+expires+'; path=/'
}
}
// alert(document.cookie);
// alert(GetValuesFromLocalCookie());
var source = GetSourceFromUTMZCookie();
CreateMyTrackingCookie(source);
// alert(source);
将以下代码放在末尾以调用用户定义的变量
// sets up the call to the 'user defined' variable in Google Analytics
__utmSetVar(GetValuesFromLocalCookie());
希望本文能让您对谷歌分析的工作原理以及更高级的网站跟踪的可能性有所了解。