本参考信息介绍了用于自定义 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
设置为 true 即可使用 # 锚标记分隔符(而不是默认的 ? 分隔符)来传递跟踪代码变量传递跟踪代码变量。
返回
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
设置为 true 即可使用 # 锚标记分隔符(而不是默认的 ? 分隔符)来传递跟踪代码变量传递跟踪代码变量。
_linkByPost()
_linkByPost(formObject, useHash)
此方法与 _setDomainName()
和 _setAllowLinker()
方法结合使用可启用跨网域用户跟踪。_linkByPost()
方法通过附加到表单 (HTTP POST) 的操作值的字符串将 GATC Cookie 从引荐表单传递到另一个网站。此方法通常在跟踪用户从一个网站到第三方购物车网站的行为时使用,但也可用于通过弹出式窗口或 iframe 向其他网域发送 Cookie 数据。
<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
设置为 true 即可使用 # 锚标记分隔符(而不是默认的 ? 分隔符)来传递跟踪代码变量查询字符串分隔符。
_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(bool)
确定是否应创建 GAC Cookie。默认情况下,GAC Cookie 由脚本写入,您无需执行任何操作即可写入 Cookie。您可以使用以下命令停用此 Cookie 的设置。
_gaq.push(['_storeGac', false]);