Marketo Form Events & Redirection | Community
Skip to main content
New Participant
September 2, 2020
Question

Marketo Form Events & Redirection

  • September 2, 2020
  • 1 reply
  • 1875 views

We recently launched a new product trial that captures lead information using a Marketo form and then redirects to the product for activation. We want to be able to track conversions in GA, LinkedIn, etc, so I need to decorate the form to capture the submission event.

 

Below is the code that we're using on our test page. Right now, it doesn't appear to work -- it just hangs on submission in perpetuity and no events are sent. Are we doing something wrong? My developer thinks it's something with GTM?

 

<script src="//app-ab43.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_1040"></form>
<script>
 MktoForms2.loadForm("//app-ab43.marketo.com", "290-OJT-747", 1040, function(form) {
    form.addHiddenFields({ previousURI: document.location.href })
    form.onSuccess((values) => {
       window.ga('send', {
        hitType: 'event',
        eventCategory: 'marketo',
        eventAction: 'form-fill',
        eventLabel: 'trialform',
        hitCallback: function(values) {
         document.location.href = `https://monitor.onclusive.com/wait_invite?email=${encodeURIComponent(values.Email)}`;
        }
      });
      return false;
     });
  });
</script>
This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

1 reply

SanfordWhiteman
New Participant
September 2, 2020

Well, first off, the code you currently have isn't the same as what you posted.  Right now, you have

<script> setTimeout(() => { console.log('ga', ga); ga('send', { hitType: 'event', eventCategory: 'marketo', eventAction: 'form-fill', eventLabel: 'trialform' }); ga('send', 'pageview', 'virtual page test'); }, 3000) MktoForms2.loadForm("//app-ab43.marketo.com", "290-OJT-747", 1040, function(form) { form.addHiddenFields({ previousURI: document.location.href }) form.onSuccess((values) => { return false; }); }); </script>

 

This code has multiple problems. 

 

First, compatibility. Backticks do not work in any version of IE. Neither do arrow functions. So that code isn't acceptable on a demand gen form — it needs to use standard string concatenation and functions.

 

Next, it has a race condition. Arbitrarily waiting for 3 seconds for ga to exist won't cut it, you have to actually use the event model to trigger only when the global object is available. 

 

(EDIT: I see you've changed the page yet again, this isn't going to be workable if the code keeps changing...)