Knowledgebase

Sort by:
For more in-depth information on Landing Pages, please click the link below.   Landing Pages, Easy, Powerful, Complete Is this article helpful ? YesNo
View full article
Please ensure that you have access to an experienced JavaScript developer. Marketo Technical Support is not set up to assist with troubleshooting JavaScript. Here's our recommendation for how you can collect keyword, search engine, and PPC info in Marketo.  It takes a bit of work, and you'll definitely need to know your Javascript. 1. Create custom fields You'll need to create some new fields to store the additional data. If you want these fields to be visible in Salesforce, create them on both Lead and Contact records. All of these should be of type String: Search String -- to store the query that drove the lead to your web page Search Engine -- the search engine or URL which provided the lead your web page Pay Per Click Keyword -- if the link was a PPC (ex. AdWords), the PPC keyword for that link 2. Add the fields to your forms Go to the Design Studio and edit any forms where you want to capture this information.  Add the fields you created as hidden fields set to a default value (as opposed to set from a cookie or URL parameter). You'll probably want to leave the default value as blank -- that is, the lead did not come from a PPC -- but feel free to put in another value if appropriate (Making a Field Hidden on a Form) This solution will not update the Lead Source for leads who come to your site via PPC.  If you want the lead source updated for PPC leads, you'll need to do that via a Smart Campaign or by adding it as a hidden field to your forms. 3. Put Javascript on your landing pages You MUST edit the Javascript below or it will not work!The code below sets cookies with the search engine, search term, and PPC info as long as it came from a domain outside your website. The script then populates the form fields using the cookie values. The reason for using cookies is because your leads may not fill out your form when they first hit your landing page; they may click your AdWords ad, browse around, and then go to your form.  Cookies retain those values for when they're needed -- when the leads complete your form.Using cookies also lets you capture this info on non-Marketo pages too.  See step 4 if you're interested in that.If you want this on a single landing page, add it as a Custom HTML block.  If you want this on several or all your landing pages, add it to your Landing Page Template.You'll need to change the following variables/strings, highlighted in the Javascript below: Variable Description excludedReferrers All domains where you don't want to check referrers as in "company.com" -- typically these are your own website domains. If you need to exclude multiple domains, separate them with commas. cookieDomain The base domain of your landing pages without any subdomians (like "www." or "pages.").  This will be used to store cookie values.  If your landing pages are on "pages.yourcompany.com" then this should be "yourcompany.com". payPerClickParameter The URL Parameter with the keyword depending on how you set up your your pay per click URLs. Typically "keyword" or "kw". searchStringField searchEngineField payPerClickKeywordField IDs of the hidden form fields where the cookie values should be inserted. Find them by following the instructions in this article: Setting or Getting a Form Field Value via Javascript on a Landing Page <script src="/js/public/jquery-latest.min.js" type="text/javascript"></script> <script src="/js/public/jquery.cookie.js" type="text/javascript"></script> <script src="/js/public/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 = [ "yourcompany.com", "yourcompany2.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 = "yourcompany.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 = "keyword";    // IDs for the fields to be updated.   var searchStringField = "#Search_String__c";   var searchEngineField = "#Search_Engine__c";   var payPerClickKeywordField = "#Pay_Per_Click_Keyword__c";   //    //-- 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 -- [[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: "" });         // 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});     }   }     // 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'));});</script> 4. Add cookie code on your website (Optional) To close the loop on capturing the keyword, search engine, and PPC, you need to add Javascript to your website similar to that above.  This code will store that informaiton in cookies, then those cookies will be read when the user submits the form (with the javascript above on your landing pages).This Javascript uses the jQuery, jQuery Cookies plugin, and jQueryString plugin scripts.  Deploy them on your site and note the URL where they're hosted.You'll also need to edit all of your web pages, similar to when you installed Munchkin tracking.  You can put the Javascript in the same spot of the webpage.In the code below, change the Javascript src URLs to match where you installed jQuery and the plugins excludedReferrers variable as you did in the Javascript above cookieDomain variable to be "yourcompany.com" as you did above payPerClickParamater variable as you did above <script src="/js/jquery-latest.min.js" type="text/javascript"></script> <script src="/js/jquery.cookie.js" type="text/javascript"></script> <script src="/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 = [ "yourcompany.com", "yourcompany2.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 = "yourcompany.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 = "keyword";    // 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 -- [[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 a:        //  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: "" });          // 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});     }   } }); </script>
View full article
If you ever need to change your CNAME there are a few things you should consider. Old Links In order to ensure that old links sent out via email are not broken, you should: Remove the old CNAME Setup your new primary CNAME Add the old one back in as a domain alias. You can use Add Additional Landing Page CNAMEs for detailed instructions on adding a secondary CNAME. This will allow all old links to still be functional. Cookies Our recommendation is to change the sub-domain so that cookies can be shared. If you change the top level domain itself, the cookies cannot be shared and every lead would have to re-introduce itself to the new domain by either clicking on a link in an email or filling out a form. Same top level domain go.mycompany.com > info.mycompany.com Good! Cookies are shared. Different top level domains go.mycompany.com > go.mynewcompany.com Bad! Cookies are not shared.
View full article
(Article Updated - August 2024)   Overview   A blocklist is a database of IP addresses or domains that have been associated with the sending of unsolicited commercial email or spam.  Internet Service Providers (ISPs) and business email networks use information from blocklists to filter out unwanted email.  As a result there can be a drop to inbox delivery rates if the IPs or domains involved with sending email are listed on a blocklist. Marketo’s Email Delivery and Compliance team monitors blocklist activity on our IPs and domains daily. When an impactful listing occurs, we reach out to the blocklist, attempt to identify the sender that triggered it, and work with the blocklist organization to get the listing resolved.   There are thousands of blocklists, most will not have a significant impact on your delivery rates. Below, we have compiled a list of the blocklists that commonly appear across our sender ecosystem. Each blocklist has been grouped into a top tier (Tier I) by most impactful, to the bottom least impactful tier (Tier III). These may have little to no impact across our sender network.   Tier I Blocklist   Spamhaus​ (SBL)   Impact:   Spamhaus is the only blocklist that we categorize as a Tier I for a reason: it has by far the greatest impact on delivery. It is the most well-respected and widely used blocklist in the world. A listing at Spamhaus will have a negative effect on your ability to deliver emails to your customer’s inbox and can cause bounce rates of over 50%.  Evidence suggests that most of the top North American ISPs use Spamhaus to inform blocking decisions. How it works: Unlike many blocklists, Spamhaus lists senders manually. This means they are proactively watching sender activity, collecting data, and base listings on a number of variables. Most commonly senders are listed for mailing to spam trap addresses that Spamhaus owns. Sometimes Spamhaus will list senders based on recipient feedback as well.   Next Steps: Please note that every Spamhaus email can be quite different depending on the information provided and the nature of the listing . Because Spamhaus has multiple types of listings, the remediation steps are based on which type of blocklisting has occurred. We have listed the most common types to affect Marketo customers, from most to least impactful. Impact can range from a full block of top severity, to a partial block that is less severe (CSS Data, DBL). If remediation isn’t performed and the problem not addressed, these listings can increase in severity and turn into a full blocklisting.   Spamhaus Blocklistings Types   SBL (full blocklisting) Considered the most impactful.   Remediation steps: Our team monitors closely for Spamhaus listings. Once alerted to the listing, we send an email notifying the customer, and reach out to the Spamhaus contact to start the remediation process. Only a Marketo delivery team member should be in direct correspondence with the Spamhaus contact, to speak on behalf of the customer, and to relay their questions and instructions, ensuring quick resolution and reduced impact.  Senders that trigger this listing on a shared IP range will be moved to a more isolated, penalty range (IPB), so as not to impact the other shared senders. Those affected on a Dedicated IP, only impact their own sending and will not be moved. However, depending on the severity of the issue, our team may need to revoke a customer’s ability to send any emails until full resolution. The listing will last until Spamhaus is satisfied that the offending sender has taken the appropriate steps to mitigate the problem.   SBL CSS  Customers are alerted of the listing with an email containing all the information needed to immediately begin the remediation process. This is part of an automated trigger listing, that allows for a customer to delist directly on the Spamhaus website, after they’ve completed remediation.   Remediation steps: Customers will go to the Spamhaus IP lookup website, at https://check.spamhaus.org, where they can check on the status of their IP and continue to monitor it in real time, until it is no longer listed there. Follow the remediation and delisting instructions provided, and check for  specific details in the blocklist notification email.   DBL (Domain blocklisting) Customers will receive an email notification alerting of the company domain being listed. The email will contain specific information to help narrow down and identify which email source likely triggered it within Marketo. It’s important to note that any email sent from outside of Marketo, that contained the company domain, is suspect.  This means, if the sender uses multiple IPs and/multiple email platforms, then any of those could be the source.   Remediation steps: Follow the detailed instructions in the email, which will also provide a link to the Spamhaus Domain reputation checker webpage, to check the real time listing status of the affected domain. Once the email source is identified and cause addressed, this customer will follow the online instructions to request to be delisted.   Tier II Blocklist   SpamCop   Impact: SpamCop is not used by any of the major North American ISPs to inform blocking decisions, but it makes it to the Tier II list because it can have a significant impact on B2B email campaigns.  SpamCop is considered a Tier I one blocklist for B2B marketers but a Tier II for B2C marketers. SpamCop is a dynamic IP blocklist, that can affect a single IP or a subset of IPs Typically, the block will automatically lift within one business day, but can take longer for relisted IPs. To have triggered a SpamCop listing likely means the sender has a list management problem that should be addressed. How it works: SpamCop lists IPs for one of two reasons: Either the email hit SpamCop spam trap addresses OR A SpamCop user has reported the email unwanted. Most of SpamCop’s spam traps are previously valid addresses that have not been active for 12 months or longer.   Remediation steps: If you are seeing a significant number of bouncing emails caused by a SpamCop blocked IP but aren’t sure if your email activity triggered the listing, first identify whether you are sending on a shared sender network or not. If sending from a shared IP range when this occurs, you or any other customer sending from the same network may have contributed to the IP block. This IP block will automatically get dropped within a business day. For those on a Dedicated IP that trigger a listing, refer to the above remediation steps and resources, to address the list management issue.   Tier III Blocklist (Low/ No impact )   These are considered the lowest tier and therefore cause the least impact across the Marketo sender ecosystem. Some of these blocklists were more impactful at one time, while others are only impactful based on the sender region (Manitu). Others still can suddenly flare up (Lashback). There are also many blocklists that are ignored (0spam), and are not taken seriously because they do not provide any means to delist once on the list (NoSolicitado) or that they charge money to have the listing removed ( UCEPROTECT ). The pay-to-delist model is not well respected in the email industry. When using blocklist tool checkers, such as MXToolBox, many blocklists will appear, but very few are relevant. Here is our selection of Blocklists you may come across that are least impactful:   Project Honey Pot SpamAssassin URIBL/SURBL DrMX PSBL 0spam HostKarma Ascams ZapBL Barracuda Trendmicro Inc. Cloudmark Proofpoint Invaluement   ISP Blocklists   Some ISPs use internal blocklists to make blocking decisions. Examples include AOL, Yahoo, Gmail, Outlook and Hotmail. If your IP is being blocked by one of these networks, and those networks have a large presence in your lists, a block of this kind could have a noticeable negative impact on delivery. Marketo monitors for significant ISP blocks. Those experiencing deliverability issues with emails not making it to the Inbox and bulking in the spam folder may benefit from additional services with our Email Delivery Consultants.   Remediation Steps: Email Delivery Compliance Team works to resolve any ISP blocks. ISP blocks are are usually resolved or lifted within less than 24 hours of a delisting request. Customers experiencing significant blocks for Microsoft domains (outlook.com, live.com, microsoft.com), can submit a request to the delivery team to seek mitigation on their behalf.     Additional Resources:   Blocklist Deep Dive​ Abuse Report Deep Dive​ What is a spamtrap, or spam trap, and why does it matter? Blocklist remediation Blocklist resolution flowchart Successful lead reconfirmation What is a blocklist?
View full article
You may need to have multiple CNAMEs to brand your landing pages for different product lines or company divisions. We recommend that all CNAMEs be on the same domain since cookies do not travel across domains. A good example would be: product1.mycompany.com product2.mycompany.com product3.mycompany.com If you absolutely need the domains to be different that is fine, just keep in mind that you will have to run a tagging campaign to every single domain to ensure that all activity across all domains are being tracked under the same lead in Marketo. This would look something like this: go.mycompany1.com go.mycompany2.com go.mycompany3.com Before you begin adding multiple CNAMEs in Marketo your IT staff will need to create the CNAME records on your domain(s) DNS. See Customize Your Landing Page URLs With a CNAME to have your IT staff create the records and to set the first CNAME. Once that has been completed you can add your additional CNAMEs as Domain Aliases.   Go to Admin then click on Landing Pages. Click on New then New Domain Alias. Enter your Domain Alias and click on Use non-Marketo Landing Page if you want to set the default page to an external one. Enter your Default Page and click Create. Nice job! Now all your Marketo landing pages can be pulled up from two different URLs, in this example: product1.mycompany.com/contact.html product2.mycompany.com/contact.html   Is this article helpful ? YesNo
View full article
Marketo has developed email templates that have been tested in over 40 email clients.  It is important to ensure that your emails will look good no matter where you send them.  Additionally, these emails have been crafted to reduce spam scores and increase deliverability. Feel free to use these templates.  They have all the markup you need to get started right away. Curved Paper Curved Paper with Sidebar Round Corners Round Corners with Sidebar To customize the style: Copy the email template to any text editor. Replace #312B7B with your corporate color.  Download TrayColor if you need a tool to get the color from your website. Replace the Logo with your own logo (search for "logo" in the source).  If you upload an image to Marketo for this purpose, make sure to use the full URL. Replace the Title at the top Replace the Contact Info in the footer at the bottom Optional -- change the sidebar width (search for "250px")* Paste back into the Marketo Email Template and Preview.  Everything should be ready to go. *The Curved Paper with Sidebar will not render correctly if you change the sidebar width.
View full article
This article explains how to enable tracking if your Google AdWords ad is configured to link to a Marketo landing page with a Marketo form. When the lead fills out the form on the landing page, the Google Adwords CampaignID and keyword values will be passed to Marketo through hidden fields. High-level Requirements Create custom Marketo fields to capture the PPC information Add those fields as hidden fields to the Marketo form(s); configure the hidden fields to get their value from the URL Parameters Add parameters to your destination links in Google AdWords ads using static values or ValueTrack parameters; you can use the Marketo or Google URL builder to simplify this Decide on an 'original' or 'most recent' PPC source strategy If your PPC strategy is to capture original PPC source, then the custom PPC fields need to be configured to block field updates. If your PPC strategy is to capture the most recent PPC source, then you can use the default configuration (i.e. fields not blocked from updates). Enter PPC program period (monthly) cost information Benefits This solution does not require custom coding This solution does not require any additional cost Analytics - Standard Number of new leads acquired by Google Adwords Program Cost per new lead acquired by Google Adwords Program Number of leads acquired by keyword/search phrase Top 10 keywords/search phrases which acquired new leads Top 10 AdWords CampaignID which acquired new leads Number of Opportunities by keyword/search phrase Number of Opportunities by CampaignID Analytics - Revenue Cycle Analytics (RCA) Conversion ratio of your Google Adwords Return to investment for your Google Adwords Top 10 keywords by month report which shows Average days to convert to opportunity Number of leads converted to opportunity Top 10 CampaignID’s by month report which shows Average days to convert to opportunity Number of leads converted to opportunity Program Channel report >> Google Adwords (custom channel) metrics by quarter New names, cost per new name Opportunity units, Pipeline generated, revenue, revenue to investment Instructions Create the custom fields in Salesforce.com on both the lead and contact object, making sure they map from lead to contact. The custom fields will sync over to Marketo mapped 2 Salesforce.com fields to 1 Marketo field. For instructions to create Salesforce.com custom fields, please reference Salesforce.com knowledgebase or work with your Salesforce.com Administrator. If you do not want these custom fields in Salesforce.com, you can create the fields in Marketo. Custom fields you create in Marketo will be Marketo only fields as they will not sync over to Saleforce.com. The custom fields to be created Campaign Source (utm_source) Required. Use utm_source to identify a search engine, newsletter name, or other source. Example: utm_source=google Campaign Medium (utm_medium) Required. Use utm_medium to identify a medium such as email or cost-per-click. Example: utm_medium=cpc Campaign Term (utm_term) Used for paid search. Use utm_term to note the keywords for this ad. Example: utm_term=running+shoes CampaignID (utm_campaign) Used for keyword analysis. Use utm_campaign to identify a specific product promotion or strategic campaign. This can be used to capture the Adword CampaignID Example: utm_campaign=spring_sale Create a Marketo program (i.e. Google Adwords Program) and use a program channel (i.e. custom 'Google Adwords' channel) with 'converted' as the success progression status. Make sure you assign the associated period costs for this program on the setup tab. You will need to do this on a monthly basis; this is required if you want to get a 'cost per' analysis. Create a Marketo form with all the above fields on the forms as 'hidden fields' configured to get values from a URL parameter. Include other fields as normal and call this 'PPC Form' Map the URL parameter to the associated hidden field (i.e. utm_source maps to 'Campaign Source') Create a Marketo landing page which you will use to link the Google Adwords ad Include the PPC Form on this landing page. Use the Marketo URL Builder to add the key values and parameter tokens to the URL. In the example below, the first URL is the URL to the landing page, and the second URL includes the URL parameters and associated values/tokens. URL: info.mycompany.com/lp/example/PPCExample-Start-Your-Free-Trial-Now.html Tagged URL: info.mycompany.com/lp/example/PPCExample-Start-Your-Free-Trial-Now.html?utm_source=AdWords&utm_medium=PPC&utm_term={keyword}&utm_content={creative} When configuring your Google Ad, use the tagged URL as the destination link which takes the lead who clicks on the Google Ad to the landing page. The keyword and CampaignID will be passed automatically when the lead clicks through the Google Adwords ad. The Source (Adwords) & medium (PPC) will be passed as the values in the tagged URL Learn more: Google Adwords and Marketo Overview Linking a Google Adwords Ad to Any Page on Your Website Google Adwords and Marketo FAQs
View full article
Follow these steps to create a lead performance report with mobile platform (iOS/Android) columns: Learn how to: Create Mobile Smart Lists Create a Lead Performance Report Add Mobile Smart Lists as Columns Create Mobile Smart Lists 1.1   Under Marketing Activities, select a program. 1.2   Under New, click New Local Asset. 1.3   Click Smart List. 1.4   Enter a Name and click CREATE. 1.5   Find and drag the Opened Email filter into the canvas. 1.6   Set Email to is any. 1.7   Add the Platform constraint. We used the Opened Email filter in this example, you can also use the Clicked Email filter as it has the Platform constraint. Is this article helpful ? YesNo   1.8   Set Platform to iOS.   At least one lead must have opened one of your emails on an iOS device in order for the autosuggest to find it. If it does not, you can manually type it in and save.
View full article
What is Marketo’s Marketing Calendar? What are its benefits? What features does Marketing Calendar include? Is it free or do I need to pay for it? How do I get or buy Marketing Calendar? As of our August release: 1 week after our August release How do I know if Marketing Calendar has been turned on? What is the Program Schedule View? Will I need a services package to implement Marketing Calendar? Is this article helpful ? YesNo
View full article
The Google Apps antispam system uses a unique means of allowlisting. Customers on shared IPs should allowlist Marketo's entire sending ranges, because we sometimes need to move customers between IPs for technical reasons. The way to allowlist a range in Google Apps is to configure a manual IP block with a pass through.   G Suite enables you to specify an IP address or range of addresses within a domain, and allow messages from those addresses only. This feature is sometimes referred to as IP lock. In G Suite, you set up this feature in the Content compliance setting. IP lock is a method that readily enables an administrator to simultaneously whitelist all incoming traffic from a particular domain while equally preventing spoofing by manually defining the allowed IP ranges. The following instructions are particularly useful with domains that do not have an SPF record and/or use third party applications to legitimately spoof their address. Setting up IP lock with the Content compliance setting includes three separate procedures: Adding the domain, defining the allowed IP range, and setting the correct disposition and NDR.   See this page of Google documentation for more information: Enforce 'IP lock' in G Suite - G Suite Administrator Help Instead of using a CIDR range, this interface asks for the first and last IPs in the given range. Here are ours:   199.15.212.0 - 199.15.212.255 199.15.213.0 - 199.15.213.255 199.15.214.0 - 199.15.214.255 199.15.215.0 - 199.15.215.255 192.28.146.0 - 192.28.146.255 192.28.147.0 - 192.28.147.255 94.236.119.0 - 94.236.119.63 185.28.196.0 - 185.28.196.255 103.237.104.0 - 103.237.104.255 103.237.105.0 - 103.237.105.255 130.248.172.0 - 130.248.172.255 130.248.173.0 - 130.248.173.255   Is this article helpful ? YesNo
View full article
Here are directions for changing a one column form into a multi-column form. Set up your form To create a two column form, first you need to make some changes to the form that you're using.  First, you need to reorder your form fields.  The (visible) fields get divided into two columns by odds and evens -- odds in the first column and evens in the second column. If you want to arrange your fields like this: First Name Company Name Last Name Phone Number Email Address Then you need to order your form like this: First Name Company Name Last Name Phone Number Email Address Please ensure that you have access to an experienced JavaScript developer. Marketo Technical Support is not set up to assist with troubleshooting JavaScript. Also while you're on the form, note the values for Label Width, Field Width, and Gutter Width in the Form Properties: Set up your landing page On your landing page, add the form to that page (if you haven't added it already).  Make sure you leave enough space on the page so that the form looks correct once it's laid out in two columns.  The two column form will take half the height and twice the width of the single column form. Next, drag in a Custom HTML box and add the following code.  It does two things: rearranges your form into two columns and (via Javascript) corrects the tab order of the form fields. In the code below, you need to change the column width and form width to match your form.  You'll need the Label Width, Field Width, and Gutter Width from your form which you wrote down earlier: Column width (300px below) must be at least (Label Width + Field Width + Gutter Width + 46) Form width (700px below) must be at least (2 * Column width) <style type='text/css'> form.lpeRegForm li.mktField { float: left; width:300px; clear: none; height: 26px; } form.lpeRegForm ul { width:700px; } #mktFrmButtons { clear: both; } </style> Moving the error messages Depending on how you set up your form, the error messages that appear on each field may be in the wrong position. Use this CSS to move the error messages below the field. You may need to tweak the left or top amounts until it appears correct on your form. <style type="text/css"> span.mktFormMsg { left: 0px !important; top: 15px !important; } </style> Changing the tab order For a vertical tab order (as opposed to horizontal), add this javascript in that same Custom HTML block: <script src="/js/public/jquery-latest.min.js" type="text/javascript"></script> <script type="text/javascript"> var $jQ = jQuery.noConflict(); $jQ(document).ready(function() { // fix the tab order $jQ('.mktInput :input').each(function(i) { if (i % 2) { $jQ(this).attr('tabIndex',30000+i); } else { $jQ(this).attr('tabIndex',i+1); } }); }); </script> That's all!  After you add that code, you should see that the form now is laid out in two columns: Adding section breaks To add multiple sections in your form, you need to know the IDs of the fields immediately before and after the break.  See this article for instructions on getting the field IDs: Setting or Getting a Form Field Value via Javascript on a Landing Page In this case, we'll add a break between email address ("#Email") and company name ("#Company").  Add this inside the $jQ(document).ready() javascript block: $jQ('#Company').parents('li').css('clear','both'); $jQ('#Email').parents('li').css('margin-bottom','20px'); When done, it will look like this. This section break may mess up your tab order.  Delete the javascript block that assigns the tab order ($jQ('.mktInput :input').each(...)) and use jQuery to assign them manually, It tabs in ascending order: $jQ('#FirstName').attr('tabIndex',1); $jQ('#Email').attr('tabIndex',2); $jQ('#LastName').attr('tabIndex',3); ... Download Attachments: Two column forms-JS.txt
View full article
While viewing a published landing page with a form, you can open it up directly in Marketo with this little tool. Note: This tool is not officially supported.      1. To install, go to www.marketo.com/tools/.      2. Drag Open LP -> MKTO onto your browser bookmarks bar. Tip: To show the browser bookmarks bar: Chrome: View > Always Show Bookmarks Bar Firefox: View > Toolbars > Bookmarks Toolbar      3. That's it. Just click the Open LP -> MKTO bookmark when viewing a published landing page with a form.      4. And you'll be taken to the landing page in Marketo.
View full article
Say you have a landing page with a form. You can dynamically change the form's follow up page based on values in the form by following these instructions. Note: Please ensure that you have access to an experienced JavaScript developer. Marketo Technical Support is not set up to assist with troubleshooting JavaScript. On a Marketo landing page, the follow up page is stored in two form fields -- returnURL and retURL.  You can change them with jQuery by adding a custom HTML block in to your landing page: <script src="/js/public/jquery-latest.min.js" type="text/javascript"></script> <script type="text/javascript">     // set no conflict mode for jquery   var $jQ = jQuery.noConflict();   $jQ(document).ready(function(){     // set the new follow up page     $jQ("input[name='returnURL']").attr('value','http://www.yourcompany.com');     $jQ("input[name='retURL']").attr('value','http://www.yourcompany.com');   }); </script> To change this based on a value submitted in a form, you need to find the id of the field to read from.  You can find that ID by previewing the web page, viewing the source code for the page, then finding the label for the form field in the HTML.  In this example, it's TimeToPurchase: <label>Time To Purchase:</label><span class='mktInput'><input class='mktFormText mktFormString' name="TimeToPurchase" id="TimeToPurchase" type='text' value="" maxlength='255' tabIndex='1' /> Next, use a jQuery hook to change returnURL and retURL when the form is submitted.  We'll also use jQuery to read the form field values. Drag in a Custom HTML block onto your page, then paste in the following Javascript.  You must change the following for it to work correctly: TimeToPurchase: to the ID of the field you're reading from (leave in the #) URL: all the URL assignments to the locations where you want the user to go If you need to check for additional values, add extra "case...break;" statements to the switch. <script type="text/javascript" src="/js/public/jquery-latest.min.js"></script> <script type="text/javascript" language="Javascript"> var $jQ = jQuery.noConflict(); function changeFollowupURL(){      // first, set the default follow up page   var URL = 'www.company.com/defaultPage.html';      // override the default based on form values      // Replace this with your own rules for setting the new URL   switch ($jQ("#TimeToPurchase").attr("value")) {     case "6 months":       URL = 'www.company.com/Page1.html';       break;     case "1 year":       URL = 'www.company.com/Page2.html';       break;   }     // set the new follow up page   $jQ("input[name='returnURL']").attr('value',URL);   $jQ("input[name='retURL']").attr('value',URL);   return true; } // catch when a form is submitted, change the followup URL function formSubmit(elt) {   changeFollowupURL();   return Mkto.formSubmit(elt); } </script> The Javascript needed to read the value from the form field may be different depending on the type of the input (text box, select box, check box, etc.).  See the jQuery selectors documentation for other methods of getting those values, and Setting or Getting a Form Field Value via Javascript on a Landing Page for more on how to get the IDs of the fields.
View full article
Follow these steps to add a graphical date picker to your form date fields.  When you're done, it will look something like this: First, you need a form with at least one date field.  In the Form Editor, date fields appear with a date icon in the Template Form Fields list.  Drag one into your form if you haven't already. Next, edit a landing page that uses the form (or create a new one and add the form).  Click the form and make sure the box around it has some padding, shown below.  If the padding is too small, the calendar icon next to your date field will wrap onto the next line. Now add this custom Javascript to your webpage as a Custom HTML element:   <link type="text/css" href="https://nation.marketo.com/js/public/css/redmond/jquery-ui-1.7.1.custom.css" rel="stylesheet" /> <script type="text/javascript" src="www.google.com/jsapi"></script> <script type="text/javascript" >   google.load("jquery", "1");   google.load("jqueryui", "1"); </script> <script type="text/javascript">   var $jQ = jQuery.noConflict();     $jQ(document).ready(function() {      $jQ(".mktFormDate").datepicker({showOn: 'both',          buttonImage: '/images/icons16/calendar_31.png',          changeMonth: true,          changeYear: true,          buttonImageOnly: true      });   });   </script>   Finally, preview your page and click the calendar icon next to the date field.  The graphical calendar will appear below the field. Is this article helpful ? YesNo
View full article
The Marketo users at your organization have created several special campaigns for your leads and contacts.  Typical examples include sending someone a whitepaper about a new product or mailing a series of nurturing emails for people not ready for sales.   To add a lead or contact to one of these campaigns, go to that person's detail page and find the Actions menu in the Marketo Sales Insight section.  Pick Add to Marketo Campaign and click Go:     You can also select leads in your list and search views if you've added the Add to Marketo Campaign button to those views.    You can add 200 leads at once this way:     After picking the leads, you'll see a list of potential campaigns; below the selected campaign is a brief description provided by your marketing team.    Pick the campaign for this person in the Campaign Name pulldown, then click Finish: Related Article: Quick Start: Marketo Sales Insight for Salesforce Is this article helpful ? YesNo
View full article
With these instructions, you can populate a hidden form field with the current date and time. Note: if you want a user-selectable date field, see this solution for using a calendar date picker in your form: Adding a Date Picker to a Form Is this article helpful ? YesNo First, you need to add a hidden field to your form.  See these instructions if you don't know how: Making a Field Hidden on a Form   Next, add the following Javascript to your landing page in a Custom HTML element. You'll need to update the field ID, highlighted in yellow, to match the ID of the hidden field you want to populate. These directions show you how to find that ID: Setting or getting a form field value via Javascript on a landing page   Note: Please ensure that you have access to an experienced JavaScript developer. Marketo Technical Support is not set up to assist with troubleshooting JavaScript.
View full article
This article covers advanced concepts when designing your campaign flows.  You need to be familiar with Smart Campaigns before reading this article: Building smart campaigns Auto-responder Priority If you have a campaign that sends an email following a form fillout, you should make sure that theSend Email flow step comes first.  You can put other flow steps after that. People who complete a form expect a quick email response.  If you put the Send Email first, Marketo will assume this is an auto-responder campaign and thus needs to be prioritized higher. If you put the Send Email step later in the flow, your campaign may be prioritized lower causing the email response to be delayed. Add Choice The Add Choice option in a flow step lets you execute flow steps based on a specific condition. Say you're building a scoring campaign based on the lead's job title -- 10 points for a CEO, 8 for a VP, 6 for Director, and so on.  Instead of building a separate campaign for each title, you can use Add Choice to put this in one flow step. Create a new campaign called "Job Title Scoring."  In the Smart List, trigger the campaing to launch when the Job Title changes: Open the Flow tab and drag in the Change Score step.  Then click the Add Choice button.  This adds a "Choice 1" and "Default Choice" to the flow step. In the "If:" part of the choice, you can pick which field should be checked for what value(s).  In the example below, the lead's Job Title field will be checked to see if it matches CEO.  If so, the lead will get +10 points.  Otherwise, the default choice will run -- no score change. Click Add Choice again to add a second choice and set it up to add 8 points if the lead has "VP" in the title.  When there are multiple choices in a flow step, only the first matching choice is executed.  If no choices match, the default choice will be executed. Add the remaining flow steps.  Below, you can see how it might look like.  If you ever want to get rid of a choice, click the red X to the right of that choice.
View full article
The Marketo Sales Insight for Sales Training Package is designed to enable the Sales team to use Marketo Sales Insight quickly. During the live in-person or live-virtual training sessions, a Marketo expert will teach your Sales team the core features of Marketo Sales Insight as deployed in your organization. By sharing best practices and tips from a Marketo Sales Rep’s perspective, the Marketo expert will evangelize how MSI will help your Sales team to close more business faster.  The package includes access to a Marketo expert during post-training, private Instructor Office Hour session. Learning Objectives: Learn to use Marketo Sales Insight to prioritize, focus on, and interact with the hottest leads and opportunities. In this custom training session, learn to use your Marketo Sales Insight deployment to do the following:     Focus on your Best Bets and Watch List     Monitor Interesting Moments that really matter to sales people     Sell smarter using Marketo emails and Smart Campaign   What you get:      Live in-person or live-virtual training session led by a Marketo expert.     Private Instructor Office Hour review session led by Marketo experts after the training.     Customized training Content topics tailored to your MSI deployment. Scheduling – dates and times are set by you. Location – Training can be done at your specified location. Budget – Costs are eliminated for travel expenses and additional time away from the office. This is a fee-based on-site training package.  Is this article helpful ? YesNo For more information: If you are interested in this training package, please contact education@marketo.com.
View full article
Add the below code to a custom HTML block, update the name in bold  to the name of the field. Replace the **** with the word "script" <**** type="text/javascript"> (document).getElementsByName('FIELDNAME')[0].removeAttribute('checked'); </*****> Please ensure that you have access to an experienced JavaScript developer. Marketo Technical Support is not set up to assist with troubleshooting JavaScript. Here's a sample page: info.dbmayberry.com/noinitialbutonvaluechecked.html
View full article
In offering a premium email delivery platform to our customers we carefully monitor our IPs for listings on significant blocklists. When we find that one of our customers was responsible for a blacklisting we contact that customer and request some actions be taken to re-mediate the issue. The goal is to isolate potential spamtrap addresses and remove them. The group of addresses you select should be broad enough to capture those potentially bad addresses but small enough not to suppress a huge portion of your database. Step 1 Build an inactive Smart List using ALL filters Was sent email the day of and day before the spam trap hit (please contact support@marketo.com for the date of the trap hit if you do not have this information already.) Lead “was created” date is at least 6 months ago   Inactivity Filters  Not visited web page is “any”; constraint date of activity “in past 3 months” Not filled out form is “any”, constraint date of activity “in past 6 months” Not clicked link in email is “any”, constraint date of activity “in past 6 months” Not opened email is “any”, constraint date of activity “in past 6 months” If you have custom database fields that would show other forms of activity feel free to add this into your inactive Smart List to exclude active leads.   Step 2 Once you have created a smart list to identify these suspect leads remove them from your database. [Leads Tab > Lead Actions > Flow Actions] You’re Done!      
View full article