/salesforce_adwords_google_analytics_integration_web-to-lead_form_example.html
Last active Jan 8, 2020
Sample Salesforce web-to-lead form that captures Adwords GCLID in a hidden form field & Google Analytics Visitor ID in another hidden form field. Make sure to replace xxxxx, yyyyy, zzzzz with your specific Salesforce field values. Include your Google Analytics Tracking ID. Create a User Scope custom dimension in your Google Analytics property Ad…
<!DOCTYPE html> | |
<html> | |
<head> | |
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"> | |
<script> | |
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | |
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | |
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | |
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); | |
ga('create', 'UA-XXXXX-Y', 'auto'); | |
ga(function(tracker) { | |
var clientId = tracker.get('clientId'); | |
tracker.set('dimension100',clientId); | |
}); | |
ga('send', 'pageview'); | |
</script> | |
</head> | |
<body> | |
<form action="https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST"> | |
<script> | |
window.onload = function getGclid() { | |
document.getElementById("xxxxx").value = (name = new | |
RegExp('(?:^|;\\s*)gclid=([^;]*)').exec(document.cookie)) ? | |
name.split(",")[1] : ""; | |
document.getElementById("zzzzz").value = (name = new | |
RegExp('(?:^|;\\s*)_ga=([^;]*)').exec(document.cookie)) ? | |
name.split(",")[1].split(".").slice(2).join(".") : ""; | |
} | |
</script> | |
<input type=hidden name="oid" value="yyyyy"> | |
<input type=hidden name="retURL" value="http://"> | |
<label for="first_name">First Name</label><input id="first_name" maxlength="40" name="first_name" size="20" type="text" /><br> | |
<input id="xxxxx" name="xxxxx" type="hidden" /><br> | |
<input id="zzzzz" name="zzzzz" type="hidden" /><br> | |
<input type="submit" name="submit"> | |
</form> | |
<script type="text/javascript"> | |
function setCookie(name, value, days){ | |
var date = new Date(); | |
date.setTime(date.getTime() + (days*24*60*60*1000)); | |
var expires = "; expires=" + date.toGMTString(); | |
document.cookie = name + "=" + value + expires; | |
} | |
function getParam(p){ | |
var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search); | |
return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); | |
} | |
var gclid = getParam('gclid'); | |
if(gclid){ | |
var gclsrc = getParam('gclsrc'); | |
if(!gclsrc || gclsrc.indexOf('aw') !== -1){ | |
setCookie('gclid', gclid, 90); | |
} | |
} | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment