本節適用對象為 Adobe Analytics 系統管理員。本節重點放在新的連結追蹤參數,以及這些新參數如何在瀏覽器和裝置之間確保連結獨特性和一致性,並改善頁面上的連結重新定位處理。
任何可能含有 PII (個人識別資訊) 之文字的連結,都應使用 s_objectID 明確實作,或是使用 s.ActivityMap.linkExclusions 或 s.ActivityMap.regionExclusions 排除 ActivityMap 連結集合。如需進一步瞭解 Activity Map 收集 PII 資料的可能方式,請前往這裡。
Activity Map 的連結追蹤是根據下列兩個 ID:
如果 HTML 有 s_objectid,則主要 ID 預設為 s_objectid。否則會使用下列參數做為主要 ID (按照下列優先順序):
「連結動作」是當連結被點按時,網頁所採取的動作 - 通常是連結點按後造訪的 URL。使用連結動作時可能會遇到的問題包括:
因此,我們改用 InnerText,比起連結動作 (URL) 具有以下優點:
這個新屬性可讓使用者指定字串,用來代表連結所在的頁面區域。
例如,針對位在網頁之功能表區段的「聯絡我們」連結,使用者可能會想傳遞「功能表」(Menu) 區域參數。同樣地,對於位在網頁頁尾的「聯絡我們」連結,區域參數可以設為「頁尾」(footer)。
連結區域值並非設在連結本身,而是設在包含該區域的 DOM HTML 樹狀結構上的一個 HTML 元素中。使用「連結區域」具備下列優點:
自訂區域追蹤
您可以自訂連結的區域參數 (預設為連結 ID):設為 "ID" 的標記會使用具有 "id" 參數的所有 HTML 元素做為「區域」。因此,將區域標記設為 "id" 最有可能傳回許多不同的區域 (數量即頁面上設定的 "ID" 數)。此外,如果您想要自訂性更強的實作,可將區域標記設定為更具體的項目,例如 "region_id"。
以下顯示一些使用預設區域 ID 屬性 "id" 的 HTML 範例。
<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
的某些上階 (parent、parent.parent 等) 元素 (亦即,被點按的元素) 中作為區域 ID 的標記屬性。
範例
預設為 "id" 參數。您可將此變數設定為其他參數。
s.ActivityMap.link
函數:接受被點按的 HTMLElement
,且應傳回代表被點按的連結的字串值。如果傳回值為 false (null、未定義、空字串、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 (null、未定義、空字串、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>