Given that noone cared to share ideas, here is my proposed approach which is working, it would be nice to know how others are achiving the same results.
<script type = "text/javascript" >
var queryForm = function(settings) {
var reset = settings && settings.reset ? settings.reset : false;
var self = window.location.toString();
var querystring = self.split("?");
if (querystring.length > 1) {
var pairs = querystring[1].split("&");
for (i in pairs) {
var keyval = pairs[i].split("=");
if (reset || sessionStorage.getItem(keyval[0]) === null) {
sessionStorage.setItem(keyval[0], decodeURIComponent(keyval[1]));
if (pairs[i].indexOf('utm_source') > -1) {
document.controller.setValue('/ctx/vars/utm_source', keyval[1])
}
if (pairs[i].indexOf('utm_medium') > -1) {
document.controller.setValue('/ctx/vars/utm_medium', keyval[1])
}
if (pairs[i].indexOf('utm_campaign') > -1) {
document.controller.setValue('/ctx/vars/utm_campaign', keyval[1])
}
if (pairs[i].indexOf('utm_content') > -1) {
document.controller.setValue('/ctx/vars/utm_content', keyval[1])
}
}
}
}
}
setTimeout(function() {
queryForm();
}, 3000);
</script>
The script iterates through tags found on the URL and assigns the values for our defined tags to webapp variables which can then be used to store in ACC.