Last active
May 10, 2021 17:38
-
-
Save troex/dd7dc23e72aa40221d72530babf1d0a8 to your computer and use it in GitHub Desktop.
Attribution snippet for Unbounce pages (legacy, using jQuery)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script type="text/javascript"> | |
window.Attribution=window.Attribution||[];window.Attribution.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","group","track","ready","alias","page","once","off","on"];window.Attribution.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);window.Attribution.push(t);return window.Attribution}};for(var i=0;i<window.Attribution.methods.length;i++){var key=window.Attribution.methods[i];window.Attribution[key]=window.Attribution.factory(key)}window.Attribution.load=function(e){if(document.getElementById("attribution-js"))return;var t=document.createElement("script");t.type="text/javascript";t.id="attribution-js";t.async=true;t.src="//scripts.attributionapp.com/attribution.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)};window.Attribution.load(); | |
window.Attribution.projectId="YOUR_PROJECT_ID"; | |
window.Attribution.page(window.ub && window.ub.page && window.ub.page.name); | |
}}(); | |
</script> | |
<script type="text/javascript"> | |
var attributionAlreadySubmitted = false; | |
var fallbackTrigger = undefined; | |
function attributionSubmit(e, $) { | |
var button = $(e.currentTarget); | |
var form = undefined; | |
var formName = 'Marketing Form Submitted'; | |
// customize event name based on path | |
if (location.pathname == '/request-demo/') { | |
formName = 'Lead Form Submitted'; | |
} | |
button.attr({ disabled: true }); | |
if (button.closest('form').length) { | |
form = button.closest('form'); | |
} else if (button.siblings('form').length) { | |
form = button.siblings('form'); | |
} else if ($('.lp-pom-form form').length) { | |
form = $('.lp-pom-form form'); | |
} | |
if (form) { | |
var traits = form. | |
serializeArray(). | |
reduce(function (obj, item) { | |
if (item.name.indexOf('email') >= 0) item.name = 'email'; | |
if (!item.name.match(/^(page|ub)/)) obj[item.name] = item.value; | |
return obj; | |
}, {}); | |
Attribution.identify(traits); | |
} else { | |
Attribution.track('ERROR: Unbounce form not found'); | |
} | |
Attribution.track(formName, { | |
button_name: $(e.currentTarget).text() | |
}, function() { | |
attributionSubmitForm(form, button); | |
}); | |
fallbackTrigger = setTimeout(function() { | |
attributionSubmitForm(form, button); | |
}, 2500); | |
} | |
function attributionSubmitForm(form, button) { | |
if (!attributionAlreadySubmitted) { | |
attributionAlreadySubmitted = true; | |
button.attr({ disabled: false }); | |
form.submit(); | |
clearTimeout(fallbackTrigger); | |
attributionAlreadySubmitted = false; | |
} else { | |
// console.log('already submitted'); | |
} | |
} | |
lp.jQuery(window).load(function() { | |
lp.jQuery(function($) { | |
Attribution.ready(function() { | |
$('.lp-pom-form .lp-pom-button'). | |
unbind('click tap touchstart'). | |
bind('click.formSubmit tap.formSubmit touchstart.formSubmit', function(e) { | |
if ($('.lp-pom-form form').valid()) attributionSubmit(e, $); | |
}); | |
$('form'). | |
unbind('keypress'). | |
bind('keypress.formSubmit', function(e) { | |
if (e.which === 13 && e.target.nodeName.toLowerCase() !== 'textarea' && $('.lp-pom-form form').valid()) attributionSubmit(e, $); | |
}); | |
}); | |
}); | |
}); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment