A common reporting question from marketers is how to track visitors that come to their landing pages from a variety of sources such as email, websites, direct mail, social media, banner ads, etc. The key to achieving this is through creating explicit unique links to that landing page. In other words, if you use the same link for each source, there's often no way to distinguish from where visitors came. We need a way to make the URL unique, and this can be achieved through Query Strings.


Query Strings are an addition to your landing page URL, and they are quite easy to construct. Even better, you can capture out values from the Query String in your URL into your Forms, allowing you to write those values to the Contact record, and ultimately synch them to your CRM system. You've likely seen them before but may not have realized their value.


Here's a quick example to illustrate: today I visited aol.com and clicked on a banner ad for Zulily's Festive Frocks deal. This takes me to their landing page, and note the URL used:




The part that is highlighted in green is the Query String. There are two elements to it: 1) the parameter (effectively the name of the Query String) which is "tid", and 2) the value (the unique value assigned). Zulily appears to have incorporated a lot of information into this value: "aol" is the referring website, "hmpg" might describe the banner size or placement, and "festivefrocks" is the content of the ad on which I clicked.


To further illustrate, I find another Zulily ad on aol.com, this time for Crocs. The URL of the landing page that this takes me to is:




Note the parameter is the same, "tid", but the value is different: "aol" is captured again, but the information about the banner ad and the offer is changed. Zulily can use this information to see how I came to their landing pages in terms of the referring website, the banner ad, and the offer.


This is all extremely actionable information, and as a visitor, I haven't actually done anything yet – I'm still an unknown visitor. Zulily wants to me to be a known visitor by driving me to complete a form. My conversion tells Zulily that this was a good referring source and an appealing offer, and they can also pass this data into their system used to track me to eventually becoming a customer (i.e., CRM system). Thus the marketing operations team can close the loop on reporting right back to that original referring source. Yay for festive frocks!


So how do you execute this tracking in Eloqua?


1. Create your Query String:

1.    In Eloqua10, go to Setup>Query Strings

2.    In Eloqua9, go to Automate>Web Profiling>Query Strings


From here, the interface is the same: select from the "Query Strings" menu, "New Query String Parameter". Provide a Display Name (consider employing a standard naming convention if you will be using this method frequently) and Parameter (this needs to be unique to the Query String).


Although you have other options here, it's unlikely that you'll need to configure anything else on this page. Click the Save button when done.


In E9, you also have the option of also creating a Display Map, which allows you to map your values to more descriptive terms for readability in your reports. For E10 users, this capability is on the roadmap.


2. Create your Parameter values. Make a list of all of the elements you want to capture in your reporting, such as referring website, banner ad creative, offer type, etc. You can also use a Query String to capture a Campaign ID to use for reporting in your CRM system. Make a list of unique values for each that are short and have no spaces or special characters -- these are your Parameter values (note that these values should be captured locally; optionally, you can capture them in a Display Map).


3. Create your landing page URLs with the Query String detail. First, you'll need to get the base URL to your landing page. Let's assume your page is hosted in E10; the URL might look like http://asdftesting.eloqua.com/LP=1234. This part will be the same for all your referring sources (note the Zulily example above). Adding the Query String will make a unique link for each source.


Construct your URLs using the following format (no brackets):


{base url}?{Parameter name}={Value}


For example, say I have four referring sources, and my Query String Parameter name is "source". Using the base URL above, my landing pages URLs will look like this:







These are the links you'll use from each of your referring sources. For example, if you're hosting a banner ad on a third-party site, this is the link you'll need to provide to the ad manager for that site with your ad creative.


4. Create your landing page Form, including a hidden field for capturing the Query String. Make note of the HTML Name of that field, like so in E10:


And in E9:


You also need to make note of the HTML Name of the Form itself. In E10:


And in E9:


5. Add Javascript to your landing page to capture the Query String value from your URL into the hidden field in your Form. This Javascript is linked from the Eloqua Artisan blog post here: http://eloqua.blogspot.com/2009/04/lead-source-codes-capturing-with.html. Follow the instructions in the article to update the code with your HTML Form Name, hidden field HTML Name, and Query String Parameter.


In Eloqua10, you'll be placing the final Javascript into the Page Snippet Tools under "JS", like so:


In Eloqua9, the best place is in a Page Header Script, found here:


If your landing page is hosted outside of Eloqua, you may need to speak with your webmaster to add the Javascript.


6. Capture the Query String value to the submitter's Contact record. If you want to pass the value to your CRM system, you'll need to capture it to a field on the submitter's Contact record. You will need to complete the following steps:

1. Find or create an Eloqua Contact field for the data and a CRM Lead/Contact field.

2. Update your External Calls to map the Eloqua Contact field to the CRM Lead Contact field.

3. Add or update a Form Processing Step to write the value from the Form Submission to the Eloqua Contact field.


You may also want to add a Processing Step to your Form to add the Contacts to a Shared List, which may make it easier for segmentation and reporting for this audience going forward.


7. Test. Find a few friends or colleagues to help and give each a unique URL to your landing page. Ask them to click through and submit the Form, and then check that all of the data is captured appropriately.


A few caveats about this method:

  • It relies on Javascript; some visitors may have this disabled in their browser, and you will therefore not capture any source value for them.
  • The Query String Parameter value can only be captured if the Form is on that landing page for the URL. In other words, if the visitor clicks through on your URL containing the Query String, navigates around your site, and then comes to the landing page, the value is no longer in the URL and thus won't be captured.


Now that everything is in place to capture your referring source data, you'll of course want to report on it. If you chose to do your reporting in Eloqua, here's where you'll go:


MetricEloqua10 report
Eloqua9 report
Number of visitors to landing page by Query String value (referring source)Query String Parameter ValueQuery String Values
Number of landing page form submissions by Query String valueForm Submission Data (in the Settings menu for the Form itself)Form Field Values or Form Submission Data
Landing page conversion rate by Query String value# Form Submissions / # Visitors (you’ll have to do the math)As with Eloqua10


If you've captured the referring source to the Contact record, you now have the ability to do a lot of other interesting reporting, for example, looking a Job Titles by referring source, or even using that information in your Lead Scoring criteria. By passing the source to your CRM, you can also look at qualified leads, sales opportunities, and closed deals generated by referring source.


Query Strings are a powerful tool for capturing a variety of data out of URLs, including Google AdWords keywords, and you can also use the values to conditionalize a next step from your campaign landing page, such as Dynamic Content in a follow-up email. They can also be a great way to re-use one form for multiple campaigns – unique landing pages could popup the form or have it embedded in an iFrame so the visitor experience is seamless. Keep them in mind as you scale your campaigns!