Our Challenge

Our challenge was to support the asset download system when the users submit the form to download an asset. The marketing team required information on the user and the asset details – 1) the asset name and 2) to which product it is related to. The challenge of this project was to:

  • Provide the asset download after the user submission form
  • Collect the related information on the asset
  • Create a simple URL for the user

Our Goal

Our goal is to be able to collect critical information about the users accessing our resources. This information is critical for nurture campaigns and other processes in that it is the minimum requirement for these purposes. In addition, this asset download system in effect performs the function of tracking asset access where it is not normally able to be tracked as those are not web pages.


  • Create a user friendly and simplified registration process
  • Collect valuable data to meet the marketing team’s requirements



  We decided to use the query string, Custom Objects and Data Lookups to meet all requirements.

  • Query String: A query string is a set of characters used to pass information. In this class, we discuss query strings that are appended to URLs. This information can be captured and used for future segmentation and targeting.
  • Custom Objects: Custom Objects complement standard Contact Records by allowing marketers to store additional data in a more scalable manner for the purpose of segmentation.
  • Data Lookups: Eloqua has an amazingly feature called Data Lookups. This feature allows us to access data from our Eloqua database using javascript. Once we have the data on the asset, we can use javascript to manipulate the form accordingly.

     1. Create the Custom Object for the Asset Information: Created the Custom Object and Custom Object Record for the asset


          1) Doc ID (Unique Code): This is used for the data lookup.

          2) Doc URL: This is for the actual url for the asset

          3) Asset Name: This is the asset name.

          4) Product Name – This is the related product name for the asset.


     2. Create the form: Include all form fields


          1) User fields

          2) Asset fields as hidden type

     3. Configure the form process step to redirect the page to the desired asset

     After the submission, we redirect it to the asset by using a form hidden field – Redirect URL.   



     4. Create a Data Lookup:  This is to look up the asset data by a query string.

   1) Data Lookup Key

          2) Custom Object – Select the asset download detail custom object

          3) Data field Match – This is for the data look up value


     5. Create a landing page with Data Lookups by Javascript

     The page url includes the query string - The url looks like: http://www.mydomain.com/assetDownload?docID=XXX&Source=XXXX


       The landing page includes:
          1) the form

          2) the basic tracking script

          3) the script to get the query strings and data lookup

<script type="text/javascript">

// Include Eloqu basic tracking script
    var _elqQ = _elqQ || [];
    _elqQ.push(['elqSetSiteId', 'site`Id']);

    (function() {
        function async_load() {
            var s = document.createElement('script'); s.type = 'text/javascript';
            s.async = true; s.src = 'http://www.mydomain.com/elqCfg.min.js';
            var x = document.getElementsByTagName('script')[0];
            x.parentNode.insertBefore(s, x);
        if (window.addEventListener) window.addEventListener('DOMContentLoaded', async_load, false);
        else if (window.attachEvent) window.attachEvent('onload', async_load);

<script type="text/javascript">
// Get the unique asset ID and Source from query strings
    var docID = getQueryStringValue('docID');

// Simple fuction to get parameter from query strings
    var Source = getQueryStringValue('Source');

       function getQueryStringValue(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");

            if (pair[0] == variable) {
                return decodeURIComponent(pair[1]);
        return "";

// Values for data lookup key and data lookup value
     var DataLookupKey = xxxxx
     var DataLookupValue = '< Doc_ID1>' + docID + '</Doc_ID1>';

// The callback function that is called when the Eloqua servers have responded and sent back the asset info. Set the hidden values with the returned data
     function SetElqContent() {

// The actual command to requests the contact info from the Eloqua servers. This is where you will need to insert the Data Lookup key and value:
     _elqQ.push(['elqDataLookup', escape(DataLookupKey), DataLookupValue]);


By implementing these strategies, and tools provided by Eloqua, we were able to provide our users with an intuitive Asset Download function. More importantly, at the same time, we were able to provide the marketing team statistical and data information which is used for both profiling users as well as guaging the performance of individual assets. By analyzing the higher-performing assets, the knowledge gained can be applied to future campaigns and other marketing efforts.


This project made us plan the next step to provide a one-time form. The benefit of proving a form as part of the asset download system is that by submitting the form, we link the unknown visitor/cookie to a known contact and we ensure that critical contact fields are filled out as a result. This, in turn, enables us to correctly execute nurture campaigns and to send to a CRM through integration.


I took the Luminary courses - about 25 courses. I learned how Eloqua works in Front and Back ends. As well, they were great courses from which I derived the idea of how to implement this project with best practices of Eloqua in mind. Especially, I got the most ideas from the following courses:

  1. Advanced Editing and Form Processing
  2. Effective Marketing with Custom Objects
  3. Database Configuration
  4. Web Profiling