这部分内容主要面向 Adobe Analytics 管理员。关注的重点是新的链接跟踪参数,以及这些参数如何确保链接在各种浏览器和设备上的唯一性和一致性,以及如何更好地处理链接在页面上的位置变换。
其文本(非 href)可能包含 PII(个人身份识别信息)的任何链接,均应使用 s_objectID 或通过以 s.ActivityMap.linkExclusions 或 s.ActivityMap.regionExclusions 排除 ActivityMap 链接收集的方式进行显式实施。有关 Activity Map 如何收集 PII 数据的更多信息,请转至此处。
Activity Map 根据以下两个 ID 进行链接跟踪:
如果 HTML 拥有 s_objectid,则默认情况下,主 ID 就是 s_objectid。否则,以下参数将作为主 ID(按照下面的优先顺序):
链接操作是指单击链接时网页所采取的操作 - 通常是指单击链接后访问的 URL。使用链接操作时,可能会遇到以下一些问题:
因此,与使用链接操作 (URL) 相比,使用 InnerText 具备以下优势:
这个新增的属性允许用户指定一个能够代表链接所在页面区域的字符串。
例如,针对位于网页菜单区域的“联系我们”链接而言,用户可能希望传递“Menu”区域参数。同样地,针对位于网页页脚的“联系我们”链接,可能需要将区域参数设置为“footer”。
“链接区域”值并非设置在链接中,而是设置在包含该区域的 DOM HTML 树上的一个 HTML 元素中。使用“链接区域”具备以下优势:
自定义区域跟踪
您可以自定义链接的区域参数(默认为链接 ID):一个设置为“ID”的标签将会把所有包含“id”参数的 HTML 元素作为一个区域。因此,将区域标签设置为“id”很可能会返回大量不同的区域(页面上有多少个不同的“ID”,就会返回多少个不同的区域)。或者,如果您希望实现更具定制化的效果,则可以将区域标签设置得更加具体,例如“region_id”。
您可以在下方看到一些 HTML 样例,均使用默认区域 ID 属性“id”。
<div id="content">
<div id="breaking_news">
<a href="breaking-news.html">...</a>
</div>
<div id="todays_top_headlines">
<a href="breaking-news.html">...</a>
</div>
如果您愿意,可以使用任意字符串标识符来标记元素,在本例中使用的是“lpos”,然后添加名为“lpos”的属性。
<script language="JavaScript" type="text/javascript">
s.ActivityMap.regionIDAttribute = "lpos";
</script>
<div id="nav" lpos="navbar">
<ul>
<li>Menu Category A
<ul>
<li><a href="">Menu Item A 1</a>
<li><a href="">Menu Item A 2</a>
</ul>
</li>
<li>Menu Category B
<ul>
<li><a href="">Menu Item B 1</a>
<li><a href="">Menu Item B 2</a>
</ul>
</li>
</ul>
</div>
<div id="content">
<div id="breaking_news" lpos="breaking_news>
<a href="breaking-news.html">...</a>
</div>
<div id="todays_top_headlines">
<a href="breaking-news.html">...</a>
</div>
请注意,下面列出的变量仅供参考。您应该不拘一格,正确地配置 Activity Map,但是您可以使用这些变量来自定义您的实现。
s.ActivityMap.regionIDAttribute
字符串,可以将来自 s.linkObject
的某些上级(父级、父级的父级…)元素(例如被单击的元素)的标签属性用作区域 ID。
示例
默认为“id”参数。您可以将此变量设置为其他参数。
s.ActivityMap.link
函数,可以收到所单击的 HTMLElement
并且应该返回代表所单击的链接的字符串值。如果返回值为 false(空、未定义、空字符串、0),则表示没有跟踪任何链接。
示例
// only ever use "title" attributes from A tags
function(clickedElement) {
var linkId;
if (clickedElement && clickedElement.tagName.toUpperCase() === 'A') {
linkId = clickedElement.getAttribute('title');
}
return linkId;
}
s.ActivityMap.region
函数,可以收到被单击的 HTMLElement,且应该返回代表链接被单击时所在的区域的字符串值。如果返回值为 false(空、未定义、空字符串、0),则表示没有跟踪任何链接。
示例
// only ever use lowercase version of tag name concatenated with first className as the region
function(clickedElement) {
var regionId, className;
while (clickedElement && (clickedElement = clickedElement.parentNode)) {
regionId = clickedElement.tagName;
if (regionId) {
return regionId.toLowerCase();
}
}
}
s.ActivityMap.linkExclusions
字符串,可接收以逗号分隔的字符串列表,以便在链接文本中进行搜索。如果找到,则链接不会由 Activity Map 跟踪。如果未设置,则不会尝试停止由 Activity Map 跟踪链接。
示例
// Exclude links tagged with a special linkExcluded CSS class
<style>
.linkExcluded {
display: block;
height: 1px;
left: -9999px;
overflow: hidden;
position: absolute;
width: 1px;
}
</style>
<a href="next-page.html">
Link is tracked because link does not have hidden text matching the filter.
</a>
<a href="next-page.html">
Link not tracked because s.ActivityMap.linkExclusions is set and this link has hidden text matching the filter.
<span class="linkExcluded">exclude-link1</span>
</a>
<a href="next-page.html">
Link not tracked because s.ActivityMap.linkExclusions is set and this link has hidden text matching the filter.
<span class="linkExcluded">exclude-link2</span>
</a>
<script>
var s = s_gi('samplersid');
s.ActivityMap.linkExclusions = 'exclude-link1,exclude-link2';
</script>
s.ActivityMap.regionExclusions
字符串,可接收以逗号分隔的字符串列表,以便在区域文本中进行搜索。如果找到,则链接不会由 Activity Map 跟踪。如果未设置,则不会尝试停止由 Activity Map 跟踪链接。
示例
// Exclude regions on the page from its links being trackable by ActivityMap
<div id="links-included">
<a href="next-page.html">
Link is tracked because s.ActivityMap.regionExclusions is set but does not match the filter.
</a>
</div>
<div id="links-excluded">
<a href="next-page.html">
Link not tracked because s.ActivityMap.regionExclusions is set and this link matches the filter.
</a>
</div>
<script>
var s = s_gi('samplersid');
s.ActivityMap.regionExclusions = 'links-excluded';
</script>