Can I have more than one s.ActivityMap.regionIDAttribute | Community
Skip to main content
nicholasr284932
Level 2
March 5, 2019
Solved

Can I have more than one s.ActivityMap.regionIDAttribute

  • March 5, 2019
  • 2 replies
  • 2690 views

I recently changed my s.ActivityMap.regionIDAttribute to "region_id" but I still wanted activity map to default to "id" if "region_id" was not set. I thought this was the default behavior but I'm noticing activityMap returning a regionID of "BODY" when "region_id" is not defined. Can I pass an array or a delimited string to s.ActivityMap.regionIDAttribute to have it try "region_id" and then fall back to "id" or will it only ever take one identifier?

-- Nick

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Asheesh_Pandey

Hi Nick,

Setting conditions to fall back to "id" when "region_id" should not be a problem. You will need to modify "AppMeasurement ActivityMap Module" file.

Below example returns "BODY" when parentNode is not available, here you can make an update to return "id" in while coding block.

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";

}

Useful links:

https://marketing.adobe.com/resources/help/en_US/analytics/activitymap/activitymap-link-tracking-methodology.htmlDifferentiating Multiple links that Reference the same Link ID and Region  

https://marketing.adobe.com/resources/help/en_US/analytics/activitymap/activitymap-link-tracking-methodology.html

Thanks!

Asheesh

2 replies

Asheesh_Pandey
Community Advisor
Asheesh_PandeyCommunity AdvisorAccepted solution
Community Advisor
April 27, 2019

Hi Nick,

Setting conditions to fall back to "id" when "region_id" should not be a problem. You will need to modify "AppMeasurement ActivityMap Module" file.

Below example returns "BODY" when parentNode is not available, here you can make an update to return "id" in while coding block.

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";

}

Useful links:

https://marketing.adobe.com/resources/help/en_US/analytics/activitymap/activitymap-link-tracking-methodology.htmlDifferentiating Multiple links that Reference the same Link ID and Region  

https://marketing.adobe.com/resources/help/en_US/analytics/activitymap/activitymap-link-tracking-methodology.html

Thanks!

Asheesh

nicholasr284932
Level 2
August 14, 2019

So what I finally ended up doing was below. It takes either the defined activitymap.regionIDAtttribute or uses "region_id". If it can't find either of those and hit 'id' first it uses that. All else fails it returns 'body'

   e.region = function (a) {

   for (var d, b = e.regionIDAttribute || "region_id"; a && (a = a.parentNode);) {

   if (d = q(a, b, b, b)) return d;

   if (d = q(a, 'id', 'id','id')) return d;

   if ("BODY" == a.nodeName) return "BODY"

  }

  }