Passing GA Data through Eloqua Forms

May 17, 2019

Welcome to part three of my guide to integrating Google Analytics with Eloqua. If you have reached this page and want to read the first part of the guide (thoroughly recommended) then you can find it here: https://greg-staunton.com/eloqua-google-analytics-integration

In this part of the guide I am going to take you through “Detecting UTM parameter values on landing pages and passing them to Eloqua”.


If you have followed the steps 1 and 2 so far you will have a full understanding of what Google Analytics UTM parameters are, you will know exactly how to use for your campaign and you will have set up Eloqua correctly so you are passing back precisely what your web analytics team need, automatically, from all outbound Eloqua emails.

Now comes the fun part. You are going to update your campaign landing page so it automatically detects the UTM parameter values that are being passed over AND push that information back into Eloqua.

Detecting UTM parameter values on landing pages and passing them to Eloqua

There are two parts of Eloqua that are used to capture leads on landing pages:

  • A form
  • A landing page

Setting up your form

In this scenario you are only going to be asking for email. This is purely for the simplicity of this guide. In reality you will no doubt have all sorts of different questions you are using for gated content and no doubt use progressive profiling, etc.

You will build your form out as normal using the different contact and custom fields. After this you are going to need to build in another five custom fields to accommodate the five different Google Analytics UTM parameters that you wish to pass back to Eloqua.

Now you have set the hidden fields on your form you need to place it on the landing page. Next you need to set some JavaScript on your landing page which will pick up the UTM parameter values and populate the hidden fields on the form before submit.

Place the following script on your page:

var defaultHiddenFieldNameValue = "NoData";
function getQueryStringParamValue(strQStrParam) {
var strURL = document.location.href;
var strQStrParamValue = "";
          if (strURL.indexOf('?') != -1)
                      strQStrParamValue = strURL.substr(strURL.indexOf('?') + 1);
                      if (strQStrParamValue.indexOf(strQStrParam) != -1)
                                  strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf(strQStrParam));
                                  strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf('=') + 1);
                                  if (strQStrParamValue.indexOf('&') != -1)
                                  strQStrParamValue = strQStrParamValue.substr(0, strQStrParamValue.indexOf('&'));
                                  return strQStrParamValue;

                                  strQStrParamValue = defaultHiddenFieldNameValue;
                                  return strQStrParamValue;
                      strQStrParamValue = defaultHiddenFieldNameValue;
                      return strQStrParamValue;
var form = "MY_FORM";          //FORM NAME ON THIS LINE

function setCampaign(){
  var elqForm = document.forms[form];
  //repeat for each field to populate

elqForm.elements['utm_source'].value = getQueryStringParamValue('utm_source');
elqForm.elements['utm_medium'].value = getQueryStringParamValue('utm_medium');
elqForm.elements['utm_campaign'].value = getQueryStringParamValue('utm_campaign');
elqForm.elements['utm_content'].value = getQueryStringParamValue('utm_content');


window.onload = setCampaign;

You are now automatically pulling the values from your UTM parameters straight into Eloqua!

Everything is not yet finished though… Whilst you can download your form submissions and have all the values in place there are other things we can do with this automatically.

Eloqua Guide: How to use the Eloqua Sandbox

Eloqua Guide: How to use the Eloqua Sandbox

In the ever-evolving landscape of digital marketing, it's crucial to have a safe and controlled environment to test new strategies, campaigns, and configurations before implementing them in your live Eloqua instance. Eloqua offers a sandbox environment for this...

error: Content is protected !!