Hi Doug,
This solution requires some intermediate to advanced javascript and html knowledge, so I will answer with that assumption.
There are 4 important steps in the Community article you are referencing (http://community.marketo.com/MarketoArticle?id=kA050000000Kyxt) to accomplish this. I'm only going to address those parts that need to be changed by you, not the entire code snippet:
1. Store the id of your hidden field in a javascript variable
2. Store the value from your URL parameter in a javascript variable
3. Move URL parameter variable value to a browser cookie
4. Move from cookie to hidden field on form
Assuming your field id is "UTM_Campaign" and the url parameter looks like "utm_campaign", here are the relevant pieces of code:
Step 1:
// IDs for the fields to be updated.
var utmcampaignFieldID = "#UTM_Campaign"
Step 2:
// Store the URL parameter value in the variable "ucampaign"
var ucampaign = $jQ.getQueryString({ID: utm_campaign,
URL: refer, DefaultValue: "" });
Step 3:
// Create a cookie named "utmcampaigncookie" and store the value from the variable "ucampaign"
$jQ.cookie('ucampaign', utmcampaigncookie,
{expires: 730, path: '\/', domain: cookieDomain});
Step 4:
// Get the values from the cookies and put them into the hidden field by referencing the field ID
$jQ(utmcampaignFieldID).attr("value",$jQ.cookie('utmcampaigncookie'));
If you need a more comprehensive answer, or would like someone to implement the code for you, I'd be glad to help in a more formal setting. Email me at dan@spearmarketing.com.
Thanks!
Hi Doug,
This solution requires some intermediate to advanced javascript and html knowledge, so I will answer with that assumption.
There are 4 important steps in the Community article you are referencing (http://community.marketo.com/MarketoArticle?id=kA050000000Kyxt) to accomplish this. I'm only going to address those parts that need to be changed by you, not the entire code snippet:
1. Store the id of your hidden field in a javascript variable
2. Store the value from your URL parameter in a javascript variable
3. Move URL parameter variable value to a browser cookie
4. Move from cookie to hidden field on form
Assuming your field id is "UTM_Campaign" and the url parameter looks like "utm_campaign", here are the relevant pieces of code:
Step 1:
// IDs for the fields to be updated.
var utmcampaignFieldID = "#UTM_Campaign"
Step 2:
// Store the URL parameter value in the variable "ucampaign"
var ucampaign = $jQ.getQueryString({ID: utm_campaign,
URL: refer, DefaultValue: "" });
Step 3:
// Create a cookie named "utmcampaigncookie" and store the value from the variable "ucampaign"
$jQ.cookie('ucampaign', utmcampaigncookie,
{expires: 730, path: '\/', domain: cookieDomain});
Step 4:
// Get the values from the cookies and put them into the hidden field by referencing the field ID
$jQ(utmcampaignFieldID).attr("value",$jQ.cookie('utmcampaigncookie'));
If you need a more comprehensive answer, or would like someone to implement the code for you, I'd be glad to help in a more formal setting. Email me at dan@spearmarketing.com.
Thanks!
<script src="http://code.jquery.com/jquery-latest.min.js" charset="utf-8" type="text/javascript"></script> <script src="/sites/all/themes/tekzennew/js/jquery.cookie.js" type="text/javascript"></script> <script src="/sites/all/themes/tekzennew/js/jQueryString-2.0.2-Min.js" type="text/javascript"></script> <script type="text/javascript"> var $jQ = jQuery.noConflict(); $jQ(document).ready(function(){ // //--- CHANGE THESE!!! --- // // Change this to match domains of referrers you want to ignore. // You'll want to ignore referrers from your own domains. // Use only the base domain name without subdomains (ex. "company.com") // Separate multiple domains with commas (leave the brackets). var excludedReferrers = [ "tekscan.com" ]; // Change this to match the base domain of your company's landing pages. // Cookies will be created with this domain. // Ex. If your landing page domain is "pages.yourcompany.com" then use // "yourcompany.com" var cookieDomain = "tekscan.com"; // The URL parameter that has your pay-per-click info. // Typically "kw" or "keyword" (depends on how you set up your PPC URLs) var payPerClickParameter = "utm_term"; //IDs for the fields to be updated. var utmcampaignFieldID = "#UTM_Campaign" var utmsourceFieldID = "#UTM_Source" var utmtermFieldID = "#UTM_Term" var utmcontentFieldID = "#UTM_Content" var utmmediumFieldID = "#UTM_Medium" // //-- you probably shouldn't change anything after this -- // var refer = document.referrer; var searchString; var searchEngine; // if there's no referrer, do nothing if ( (refer == undefined) || (refer == "") ) { ; } else { // get the domain of the referring website -- http://[[this-thing.com]]/ var referrerDomain = refer.substr(refer.indexOf("\/\/") + 2, refer.indexOf("\/",8) - refer.indexOf("\/\/") - 2).toLowerCase(); var excludedDomainFound = false; var i = 0; // search the excluded domain list to see if the referrer domain is on it while ( (i < excludedReferrers.length) && !excludedDomainFound) { var thisExcludedDomain = excludedReferrers[i].toLowerCase(); // weird semantics here -- indexOf returns "-1" if the search string isnt found. // thus excludedDomainFound is true only when indexOf matches an excluded domain (!= -1) excludedDomainFound = (referrerDomain.indexOf(thisExcludedDomain) != -1); i++; } // only if the referrer isn't in our excluded domain list... if( !excludedDomainFound ) { // extract the URL parameters from common search engines // To add your own, each engine needs: // name: how the search engine will appear on your Marketo leads // url: REGEX for matching the engine's referrer. ex. /\.google\./i // query: URL parameter that contains the search query - usually "p" or "q" var searchEngines = [ { name: "Yahoo", url: /\.yahoo\.co/i, query: "p" }, { name: "Google", url: /\.google\./i, query: "q" }, { name: "Microsoft Live", url: /\.live\.com/i, query: "q" }, { name: "MSN Search", url: /search\.msn\./i, query: "q" }, { name: "AOL", url: /\.aol\./i, query: "query" }, { name: "Bing", url: /\.bing\.com/i, query: "q" }, { name: "Ask", url: /\.ask\.com/i, query: "q" } ]; // find the referring search engine (if any) i = 0; while (i < searchEngines.length) { if (refer.match(searchEngines[i].url)) { searchEngine = searchEngines[i].name; searchString = $jQ.getQueryString({ ID: searchEngines[i].query, URL: refer, DefaultValue: "" }); break; } i++; } // If no search engine is found, this person probably used a less // popular one. Use the referring doman, then guess the query parameter if (i == searchEngines.length) { searchEngine = referrerDomain; var queries = ["q","p","query"]; var i = 0; while ((i < queries.length) && (searchString == undefined)) { searchString = $jQ.getQueryString({ ID: queries[i], URL: refer }); i++; } // no search strings found -- use this text instead. if (searchString == undefined) { searchString = "None"; } } // Use the provided URL parameter to get the PPC keyword. var payPerClickWord = $jQ.getQueryString({ID: payPerClickParameter, URL: refer, DefaultValue: "" }); // Store the URL parameter value in the variable "ucampaign" var ucampaign = $jQ.getQueryString({ID: utm_campaign, URL: refer, DefaultValue: "" }); var usource = $jQ.getQueryString({ID: utm_source, URL: refer, DefaultValue: "" }); var uterm = $jQ.getQueryString({ID: utm_term, URL: refer, DefaultValue: "" }); var ucontent = $jQ.getQueryString({ID: utm_content, URL: refer, DefaultValue: "" }); var umedium = $jQ.getQueryString({ID: utm_medium, URL: refer, DefaultValue: "" }); // Put the info into cookies. These values will be extracted // and put into a Marketo form later. Expires in 2 years. $jQ.cookie('mktoPPCKeyword', payPerClickWord, {expires: 730, path: '\/', domain: cookieDomain}); $jQ.cookie('mktoSearchEngine', searchEngine, {expires: 730, path: '\/', domain: cookieDomain}); $jQ.cookie('mktoSearchString', searchString, {expires: 730, path: '\/', domain: cookieDomain}); // Create a cookie named "utmcampaigncookie" and store the value from the variable "ucampaign" $jQ.cookie('ucampaign', utmcampaigncookie, {expires: 730, path: '\/', domain: cookieDomain}); $jQ.cookie('usource', utmsourcecookie, {expires: 730, path: '\/', domain: cookieDomain}); $jQ.cookie('uterm', utmtermcookie, {expires: 730, path: '\/', domain: cookieDomain}); $jQ.cookie('ucontent', utmcontentcookie, {expires: 730, path: '\/', domain: cookieDomain}); $jQ.cookie('umedium', utmmediumcookie, {expires: 730, path: '\/', domain: cookieDomain}); } } // Get the values from the cookies and put them into the hidden fields $jQ(searchStringField).attr("value",$jQ.cookie('mktoSearchString')); $jQ(searchEngineField).attr("value",$jQ.cookie('mktoSearchEngine')); $jQ(payPerClickKeywordField).attr("value",$jQ.cookie('mktoPPCKeyword')); // Get the values from the cookies and put them into the hidden field by referencing the field ID $jQ(utmcampaignFieldID).attr("value",$jQ.cookie('utmcampaigncookie')); $jQ(utmsourceFieldID).attr("value",$jQ.cookie('utmsourcecookie')); $jQ(utmtermFieldID).attr("value",$jQ.cookie('utmtermcookie')); $jQ(utmcontentFieldID).attr("value",$jQ.cookie('utmcontentcookie')); $jQ(utmmediumFieldID).attr("value",$jQ.cookie('utmmediumcookie')); }); </script>