OP Custom Tag - Organizing Query Parameters per Page


This custom tag allows you to  organize the query parameters of each page (that has query parameters) into variables and values within your ObservePoint report. This will then enable you to set up Rules to go alongside your query parameters so you can accomplish monitoring and validation that your URLs are following your standards, as far as correct query parameters are concerned. To further break down the possible uses of this custom tag, you could specifically accomplish the following:
  • Test for the presence of required parameters (e.g. cid)
  • Test for the correct name conventions and taxonomy of your campaigns, as they are intended in your query parameters (e.g. use regex in a Rule to enforce naming conventions)
  • Test for the presence of typos or identifiable errors that may affect your attribution and campaign measurement

function opReqGetAsync(paramObject, acct, callback) {

var baseURL = window.location.protocol+"//"+window.location.hostname+"/observepointcustomtag?acct=" + acct;

var opReq = new XMLHttpRequest();

opReq.onreadystatechange = function() {

if (opReq.readyState === 4 && opReq.status === 200) {




opReq.open("POST", baseURL, true);



////////////////////////////////////////////////// Above is script that fires the OP Custom Tag, you should NOT modify it /////////////////////////////////////////////////////

//The Javascript object below is what you build and send to ObservePoint

var objQP = {};

// Gets the URL

const queryParam = window.location.href

// Parses the URL string into the data that we want, separate in "key=value" style, but not fully separated yet, and turns it into an array of "key=value" values

const splitArr = queryParam.split("?")[1].split("&")

// Takes the splitArr array, parses each value further, and then pushes the properties into obj{}

var arrToObj = splitArr.forEach(function(x) {

var key = x.split("=")[0]

var value = x.split("=")[1]

objQP[key] = value


opReqGetAsync(objQP, 'Query Parameters');

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us