本参考文档描述的是可用于自定义 Google Analytics(分析)报告跨网域、跨不同主机或在网站子目录中的运作方式的方法。
GATC 域/目录方法
_cookiePathCopy(newPath)
_getLinkerUrl(targetUrl, useHash)
_link(targetUrl, useHash)
_linkByPost(formObject, useHash)
_setAllowHash(bool)
(已弃用)_setAllowLinker(bool)
_setCookiePath(newCookiePath)
_setDomainName(newDomainName)
_storeGac(bool)
传送方式的详细信息
_cookiePathCopy()
_cookiePathCopy(newPath)
将所有 GATC Cookie 的路径更改为新指定的路径。使用此功能可跟踪同一网域上不同目录结构之间的用户行为。
调用此函数时,它会立即将所有 Cookie 复制到新的 Cookie 路径。因此,如果尚未调用 _trackPageview()
方法,则系统会提供所有现有 Google Analytics(分析)Cookie 的值。因此,我们建议在 _trackPageview()
以及可能影响您要传递的 Cookie 值或广告系列值的其他配置方法(例如 _setCampaignCookieTimeout()
或 _setReferrerOverride()
)之后调用此方法。
_gaq.push(['_cookiePathCopy', '/newSubDirectory/']);
形参
String newPath
用于存储 GATC Cookie 的新路径。
_getLinkerUrl()
_getLinkerUrl(targetUrl, useHash)
此方法与 _setDomainName()
和 _setAllowLinker()
方法结合使用,可针对在新窗口中打开的 iframe 和链接启用跨网域用户跟踪。通过将网址参数附加到网址参数,此方法可从初始链接返回一个包含所有 GATC Cookie 数据的字符串。然后,这些信息可以传递到其他网站或 iframe。
_gaq.push(function() { var pageTracker = _gat._getTrackerByName(); // Gets the default tracker. var linkerUrl = pageTracker._getLinkerUrl('http://www.my-example-iframecontent.com/'); });
形参
String targetUrl
要向其发送 Cookie 值的目标网站的网址。
Boolean useHash
设置为 # 以使用 # 定位标记分隔符而不是默认的 ? 传递标记变量传递跟踪代码变量。
返回
String
链接器网址。
_link()
_link(targetUrl, useHash)
此方法可与 _setDomainName()
和 _setAllowLinker()
方法结合使用,以实现跨网域用户跟踪。_link()
方法通过网址参数 (HTTP GET) 将 GATC Cookie 从此网站传递到另一个网站。还会更改 document.location 并将用户重定向到新网址。
<a href="http://example.com/test.html"
onclick="_gaq.push(['_link', 'http://example.com/test.html']); return false;">click me</a>
形参
String targetUrl
要向其发送 Cookie 值的目标网站的网址。
Boolean useHash
设置为 # 以使用 # 定位标记分隔符而不是默认的 ? 传递标记变量传递跟踪代码变量。
_linkByPost()
_linkByPost(formObject, useHash)
此方法可与 _setDomainName()
和 _setAllowLinker()
方法结合使用,以启用跨网域用户跟踪。_linkByPost()
方法会将 GATC Cookie 从引荐表单传递到附加到表单操作值 (HTTP POST) 的字符串中的其他网站。此方法通常用于在跟踪用户在某个网站和第三方购物车网站中的行为时,也可用于将 Cookie 数据发送到弹出式窗口或 iFrame 中的其他网域。
<form action="http://www.shoppingcartsite.com/myService/formProcessor.php" name="f" method="post" onsubmit="_gaq.push(['_linkByPost', this]);">
...
</form>
此外,必须在目标网页上将 _setAllowLinker()
设置为 true
,才能使链接生效。
形参
HTMLFormElement formObject
封装 POST 请求的表单对象。
Boolean useHash
设置为 # 以使用 # 定位标记分隔符而不是默认的 ? 传递标记变量查询字符串分隔符。
_setAllowHash()
_setAllowHash(bool)
设置“允许域哈希”标记。默认情况下,此值设为 true
。Google Analytics(分析)中的网域哈希功能会从您的网域创建哈希值,并使用该数字检查访问者的 Cookie 完整性。
如果您有多个子网域(例如 example1.example.com
和 example2.example.com
),并且想要跟踪这两个子网域中的用户行为,则应关闭网域哈希,以便 Cookie 完整性检查不会拒绝将用户 Cookie 从一个网域发送到另一个网域。此外,您可以关闭此功能以优化逐页跟踪效果。
形参
Boolean true
或 false
的默认值为 true
。如果此参数设置为 true
,则启用网域哈希。否则,系统会停用网域哈希。
_setAllowLinker()
_setAllowLinker(bool)
在启用跨网域用户跟踪时设置链接器功能标志。默认情况下,此方法设置为 false
并停用关联。另请参阅 _link()
、_linkByPost()
和 _setDomainName()
方法以启用跨网域跟踪。
在目标网站上使用 _setAllowLinker
方法,以便目标网站在网址参数中使用 Cookie 数据,而非标准会话逻辑。
_gaq.push(['_setAllowLinker', true]);
形参
Boolean true
或 false
的默认值为 false
。如果此参数设置为 true
,则启用链接器。否则,系统会停用网域链接。
_setCookiePath()
_setCookiePath(newCookiePath)
为您的网站设置新的 Cookie 路径。默认情况下,Google Analytics(分析)会将 Cookie 路径设置为根级路径 (/)。在大多数情况下,使用这种方法是适当的,而且可以正确处理您在网站、博客或企业网站目录中安装的跟踪代码。不过,在少数情况下,用户只能访问网域的子目录,这种方法可以通过将子目录设为所有跟踪的默认路径来解决跟踪问题。
通常,如果您的数据没有被跟踪,并且您订阅了博客服务且只能访问您指定的子目录,或者您位于企业网络或大学网络中且只能访问您的主目录,则需要使用此方法。
_gaq.push(['_setCookiePath', '/myBlogDirectory']);
形参
String newCookiePath
要设置的新 Cookie 路径。
_setDomainName()
_setDomainName(newDomainName)
设置 GATC Cookie 的域名。此方法有三种模式:("auto" | "none" | [domain])
。默认情况下,此方法设置为 auto
,它会尝试根据 DOM 中的 document.domain
属性解析域名。
指定网域
请参阅跨网域跟踪指南,通过各种示例了解如何使用此方法指定网域以及如何指定。以下示例说明了如何将域名设置为 example.com
:
_gaq.push(['_setDomainName', 'example.com']);
隔离顶级域名
将此方法设置为 none
可确保任何子网域都无法访问给定网域中的 Cookie。
_gaq.push(['_setDomainName', 'none']);
形参
String newDomainName
要设置的新默认域名。
_storeGac(布尔值)
确定是否应创建 GAC Cookie。默认情况下,GAC Cookie 由脚本写入,您无需执行任何操作即可写入 Cookie。您可以使用以下命令停用此 Cookie 的设置。
_gaq.push(['_storeGac', false]);