Expand my Community achievements bar.

SOLVED

Parsing URL minus domain & QSP to Page Name

Avatar

Level 2

Hi,

 

Apologies if this is mentioned but I couldn't find anything in Adobe documentation or on the forums.

 

A site I'm working on doesn't use a data layer and currently only passes URL into the Page Name variables. I'm looking for a workaround to pass URL minus domain and query string parameters into the Page Name var, possibly with slashes replaced by colons.

 

Is there a rule for this I can use within Adobe Launch? Assume it may require some custom code.

 

Thanks,

James

1 Accepted Solution

Avatar

Correct answer by
Level 8

@Jmaguire -

The simplest approach might be to create a "page name" data element that parses the pathname per your requirements. 


Maybe start with something like this:

var path = document.location.pathname;

if (path === "/") {
  // specify a default value if the path is "/" (assume home page)
  path = "homepage";
} else {
  // remove leading "/", then replace all remaining "/" with ":"
  path = path.replace(/^\//, "").replace(/\//g, ":");
}

return path;

 

Then, in your rules, reference the data element. 

View solution in original post

11 Replies

Avatar

Correct answer by
Level 8

@Jmaguire -

The simplest approach might be to create a "page name" data element that parses the pathname per your requirements. 


Maybe start with something like this:

var path = document.location.pathname;

if (path === "/") {
  // specify a default value if the path is "/" (assume home page)
  path = "homepage";
} else {
  // remove leading "/", then replace all remaining "/" with ":"
  path = path.replace(/^\//, "").replace(/\//g, ":");
}

return path;

 

Then, in your rules, reference the data element. 

Avatar

Level 8
@Jmaguire - document.location.pathname is ONLY the file path of the URL. It does NOT include protocol, hostname, query parameters, or has values. See the following link for more information: https://developer.mozilla.org/en-US/docs/Web/API/URL

Avatar

Level 6

Just as a subtle note on this method, you will not get the expected names from this method if a user saves the page onto their computer. It will instead populate with the path on the person's computer where the HTML document lives. If you wanted to avoid this data, you may either want to run s.abort on locally saved pages or consider an option for setting pagename based on internal document context.

Avatar

Community Advisor and Adobe Champion

Dear Jmaguire,

Why do you want to capture the pathname + Query String Parameters in the pagename? I would not recommend it because it will result in duplication of the pages.

URL: https://experienceleaguecommunities.adobe.com/adobe-analytics-questions/message-id/21725?q=test

Pagename: /adobe-analytics-questions/message-id/21725?q=test

You are trying to achieve the above right? If yes, please do not go for it, particularly in the Page Name variable.

Thanks, Arun.

Avatar

Level 2

--- duplicate comment, Experience League site being very buggy today! ---

Avatar

Level 2

Hi @PratheepArunRaj, I want to capture path name MINUS domain and QSPs.

 

Brian's answer is very helpful but still includes QSPs and as you mention this would cause many duplicate pages to be captured separately.

Avatar

Level 8
The example I provided does NOT include query parameters.

Avatar

Community Advisor and Adobe Champion
Yes... I would ask you to go for Pathname along excluding QSPs as shared by Brian... Better solution...