区分引用相同链接 ID 和区域的多个链接

您可以通过以下方式区分链接:使用 s_objectID 变量来自定义链接 ID;自定义区域;以及自定义 AppMeasurement ActivityMap 模块文件。

例如,假设您拥有多个“购买”链接,且这些链接被 Activity Map 确认为属于同一个链接 ID 和区域:

代码示例 链接 ID 区域
<div id="recommendation panel">
  <div>
    <a href="product1.html">Buy</a>
  </div>
  <div>
    <a href="product2.html">Buy</a>
  </div>
  <div>
    <a href="product3.html">Buy</a>
  </div>
</div>
 
 
购买
 
 
购买
 
 
购买
 
 
 
 
推荐面板
 
 
推荐面板
 
 
推荐面板
 
 

如何自定义网页和标签,以区分这些链接的值?您有三种选项:您可以自定义链接 ID、自定义区域,或自定义 AppMeasurement ActivityMap 模块文件。

使用 s_objectID 来自定义链接 ID

通过为页面上的链接或链接位置创建唯一对象ID s_objectID,您可以改进Activity Map跟踪或使用Activity Map(而非链接URL)来报告链接类型或位置。 单击此处,以了解有关 变量的更多信息。s_objectID

重要

请注意,在Activity Map中使用s_objectID时,需要以分号(;)结尾。

代码示例 链接 ID 区域
<div id="recommendation panel">
  <div>
    <a onClick="s_objectID='Product1';" href="product1.html">Buy</a>
  </div>
  <div>
    <a onClick="s_objectID='Product2';" href="product2.html">Buy</a>
  </div>
 <div>
    <a onClick="s_objectID='Product3';" href="product3.html">Buy</a>
  </div>
</div>
 
 
Product1
 
 
Product2
 
 
Product3
 
 
 
 
推荐面板
 
 
推荐面板
 
 
推荐面板
 
 

自定义区域

您可以通过确保每个“购买”链接都定义了自己的区域,来自定义区域。 为此,请向每个“Buy”锚点标记的父标记之一添加"id"参数。

注意

您并非必须使用"id"参数作为区域标识符。 您还可以使用JavaScript变量"s.ActivityMap.regionIDAttribute"设置自己的标识符。

代码示例 链接 ID 区域
<div id="recommendation panel">
  <div id="region a">
    <a href="product1.html">Buy</a>
  </div>
  <div id="region b">
    <a href="product2.html">Buy</a>
  </div>
  <div id="region c">
    <a href="product3.html">Buy</a>
  </div>
</div>
 
 
购买
 
 
购买
 
 
购买
 
 
 
 
区域a
 
 
区域b
 
 
区域c
 
 

自定义 AppMeasurement ActivityMap 模块文件

注意

请务必测试修改后的代码,以确保修改后的代码能够正常运行。Adobe 对于修改后的代码的行为概不负责。

以下是一些​通用​链接/区域函数的示例,您可以将这些函数(以修改后的形式)放入您的 AppMeasurement.js 文件。

s.ActivityMap.link = function(ele, linkName) {
  if (linkName) {
    return linkName;
  }
  if (ele) {
    if (ele.tagName == 'A' && ele.href) {
      return ele.href;
    }
  }
}

在调用s.tl()期间传递linkName

s.ActivityMap.region = function(ele) {
  var className,
  classNames = {
    'header': 1,
    'navbar': 1,
    'left-content': 1,
    'main-content': 1,
    'footer': 1,
  }; 
  while ((ele && (ele = ele.parentNode))) {
    if ((className=ele.className) && classNames[className]) {
      return className;
    }
  }
  return "BODY";
}

在此页面上