We’re here to help! Whether you need product support, want to talk to an OpenGov expert, or just want a little more information, you can reach a member of the appropriate team below.
Sales
Contact our sales team to learn more about OpenGov or to schedule a personalized demo.
OpenGov is committed to achieving all of our regulatory requirements and customer expectations while maintaining the highest ethical standards. Should you have any concerns or wish to report a suspected violation, please submit it to for immediate attention.
tag
* ppcUrlCookiePart1 and ppcUrlCookiePart2 must be called — see bottom of script
* Update ppcUrlCookiePart1 and ppcUrlCookiePart2 to match your querystring and form field names
*/
// Leave this as true to always use querystring values if they exist;
// if no querystring, will attempt to get cookie values
var ppcUseLatestValues = true;
// Function to get cookie value
function getCookie(param_name) {
var i, x, y, cookie = document.cookie.split(";");
for (i = 0; i < cookie.length; i++) {
x = cookie[i].substr(0, cookie[i].indexOf("="));
y = cookie[i].substr(cookie[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == param_name) {
return unescape(y);
}
}
}
// Function to create cookie
function setCookie(param_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; domain=opengov.com; path=/; expires=" + exdate.toUTCString());
document.cookie = param_name + "=" + c_value;
}
// Function to check if cookie exists and, if not, grab value from URL and store it
function checkCookie(param_name, param_url_name) {
var param_value = getCookie(param_name);
if ((param_value != null && param_value !== "" && param_value !== "undefined") && ppcUseLatestValues === false) {
// cookie exists and we don't want to overwrite
} else {
var pageURL = window.location.search.substring(1);
var URLVariables = pageURL.split('&');
for (var i = 0; i < URLVariables.length; i++) {
var parameterName = URLVariables[i].split('=');
if (parameterName[0] == param_url_name) {
param_value = parameterName[1].split("#")[0];
}
}
if (param_value && param_value !== "undefined") {
setCookie(param_name, param_value, 365);
}
}
}
// Store UTM & gclid cookies from querystring
function ppcUrlCookiePart1() {
var param_names = [
'utm_source;utm_source',
'utm_medium;utm_medium',
'utm_campaign;utm_campaign',
'utm_adgroup;utm_adgroup',
'utm_term;utm_term',
'utm_content;utm_content',
'gclid;gclid' // ✅ Corrected: looks for ?gclid= in URL
];
for (var i = 0; i < param_names.length; i++) {
var param_object = param_names[i].split(";");
checkCookie(param_object[0], param_object[1]);
}
}
// Grab cookie value for form injection
function mGetCookie(param_name) {
return getCookie(param_name);
}
// Fallback for non-Marketo forms (uses getElementsByName)
function mCheckCookie(param_name, param_field_name) {
var param_value = mGetCookie(param_name);
if (param_value != null && param_value !== "" && param_value !== "undefined") {
try {
var obj1 = document.getElementsByName(param_field_name);
obj1[0].value = param_value;
return true;
} catch (err) {
return false;
}
}
return false;
}
// Fallback injection for non-Marketo forms
function ppcUrlCookiePart2() {
var param_names = [
'utm_source;utm_source',
'utm_medium;utm_medium',
'utm_campaign;utm_campaign',
'utm_adgroup;utm_adgroup',
'utm_term;utm_term',
'utm_content;utm_content',
'gclid;Google Click ID'
];
for (var i = 0; i < param_names.length; i++) {
var param_object = param_names[i].split(";");
mCheckCookie(param_object[0], param_object[1]);
}
}
// Helper to get gclid from either cookie or _gcl_aw
function getGclid() {
var direct = getCookie('gclid');
if (direct) return direct;
var gclAw = getCookie('_gcl_aw');
if (!gclAw) return null;
var parts = gclAw.split('.');
return parts.length >= 4 ? parts[3] : null;
}
// 🔒 Always attempt to set cookies if params exist (even if not passed through nav)
ppcUrlCookiePart1();
// ✅ When Marketo form is ready, inject values into correct field names
try {
MktoForms2.whenReady(function (form) {
// Delay slightly in case cookies are still being set
setTimeout(function () {
const formValues = {
'utm_source__c': mGetCookie('utm_source'),
'utm_medium__c': mGetCookie('utm_medium'),
'utm_campaign__c': mGetCookie('utm_campaign'),
'utm_term__c': mGetCookie('utm_term'),
'utm_content__c': mGetCookie('utm_content'),
'Google_Click_ID__c': getGclid()
};
console.log('[Injecting values into Marketo form]', formValues);
form.setValues(formValues);
}, 250); // Delay just in case async scripts slow cookie creation
});
} catch (err) {
// If error on Marketo form, try regular fallback
ppcUrlCookiePart2();
}