Knowledgebase

Sort by:
Issue The URL for the landing page shows as "https" even though you do not have SSL set up on your Marketo instance, causing the browser to display a "Not Secure" warning.   Solution This can happen if the primary domain and DNS are SSL secure, but Marketo is not.  For instance, if your primary domain is "mycompany.com" (SSL secure) then the DNS, which is also SSL secure, will push down the "https" transfer protocol down to all the CNAMEs on that DNS.  This will force the Marketo landing page using the CNAME to use "https" in the URL, even though it is not secure. There are two ways to resolve this: Work with your IT department to see if there is a non-SSL option for your DNS Purchase SSL for your Marketo instance so that both your primary domain and your Marketo pages are SSL secure. If you would like to add SSL to your Marketo instance, please contact your Account Manager to see about adding that to your subscription.     
View full article
Issue If you create a Landing Page Domain Alias within Marketo Admin > Landing Pages > Rules, you are given the option to set up a Default Page for that Alias. What happens if an end-user navigates to an invalid page on the Domain Alias?     Solution Let's say that your Branded Domain Name is pages.domain.com, and the Fallback Page set to domain.com.You have also set up a Domain Alias: pages.otherdomain.com. The Default Page for that Alias is: otherdomain.com. When you navigate to an invalid page on the primary domain (pages.domain.com/invalid-page.html,) you will be redirected to the Fallback Page: www.domain.com. If you were to navigate to an invalid page on the Alias (such as pages.otherdomain.com/invalid-page.html), you will be still be redirected to the Admin Settings Fallback Page: www.domain.com. The Domain Alias Settings are particular in the sense that the exact setting is for the "default page". You will only be redirected to the Domain Alias Default Page if you were to navigate to pages.otherdomain.com.
View full article
Issue You have a Smart List that should exclude a group of leads from a campaign, but they still show up in the Qualified Leads list     Solution Check the filter logic for your Smart Lampaign. "Or" logic allows leads that only qualify for some but not all of the filters to be included in the membership.  For example, you could have a Smart List with the following filters. SFDC Type = Contacts Unsubscribed = False (You are trying to exclude unsubscribed leads) Visited Webpage - company.com/products   If you use the following Advanced logic - "(1 or 2) and 3" - you will still have unsubscribed leads showing up in the list because they are Contacts, and the logic says they can be either Contacts or Unsubscribed = False.  They only need to satisfy one of the two filters to qualify, and an unsubscribed Contact would go through. There is a blog post that goes into more detail on this.  Smart List Logic - How many people do you want in your club?    
View full article
Summary Leads/Forms are not appearing in Marketo but are appearing in Linkedin Issue Troubleshooting LinkedIn Lead Gen Forms issues - Leads/ Forms are not appearing in Marketo but are appearing in LinkedIn Solution Most of the time this issue is caused by insufficient permissions for the user specified in the LaunchPoint Service under "Admin > LaunchPoint." This article mentions what is required for LinkedIn lead gen forms to work on LinkedIn for the user, this is not for Marketo but it makes a great reference. linkedin.com/help/lms/answer/79635  For Marketo, we require full permissions for the integration to work.  - Campaign Manager OR Account Manager (The integration user will only be able to have one of these permissions) - Company Page Admin  - Lead Gen Forms Manager  Ensure that the user has all 3 permissions. If you made some changes to the permission, re-authorize LaunchPoint service and, try again. I would also recommend deleting and re-creating the LaunchPoint service. It is recommended every time you make changes to the permission so that the connection works without any issue. You could see the form in Marketo after this step.   If any one of the permissions is added later, I recommend creating a test lead on the form referring the document - https://www.linkedin.com/help/lms/answer/94217. The leads that fill out the form after this step would be found on Marketo. You could List Import the other leads that filled out the form.  If you are still facing the issue after verifying the above steps, please raise a support ticket with Marketo. We could verify whether the issue is with Marketo or the Integration itself. 
View full article
  Syntax Recommendations Common Look Up mechanisms Common Modifiers Too Many Mechanisms Character String Too Long Null Records in the SPF Record Repetitive Records in the SPF Record - Void Lookups Validation Tools Syntax Recommendations Common Look Up mechanisms a: mx: include: ip4: ip6: exists: ptr: all Common Modifiers redirect= exp=   An A Record must ALWAYS contain IP address (map host to IP) CNAME (Alias) must contain hostnames. No IPs here NS an MX records must contain host names. No IPs allowed. MX records (for mail servers)  should contain hostnames NOT IPs. Too Many Mechanisms Section 10.1, "Processing Limits" of the SPF RFC 4408 specifies the following in regards to DNS lookups: SPF implementations MUST limit the number of mechanisms and modifiers that do DNS lookups to at most 10 per SPF check, including any lookups caused by the use of the "include" mechanism or the "redirect" modifier.  If this number is exceeded during a check, a PermError MUST be returned.  The "include", "a", "mx", "ptr", and "exists" mechanisms as well as the "redirect" modifier do count against this limit.  The "all", "ip4", and "ip6" mechanisms do not require DNS lookups and therefore do not count against this limit. The "exp" modifier does not count against this limit because the DNS lookup to fetch the explanation string occurs after the SPF record has been evaluated. This limit is in place to prevent SPF lookups from being a useful avenue for Denial of Service attacks. Using an example SPF record as an example to illustrate, this record was breaking with 12 look-ups: example.com text = "v=spf1 include:_spf-a.example.com include:_spf-b.example.com include:_spf-c.example.com include:_spf-ssg-a.example.com include:spf-a.anotherexample.com ip4:131.107.115.215 ip4:131.107.115.214 ip4:205.248.106.64 ip4:205.248.106.30 ip4:205.248.106.32 ~all" [ 5 mechanisms] _spf-a.example.com  text = "v=spf1 ip4:216.99.5.67 ip4:216.99.5.68 ip4:202.177.148.100 ip4:203.122.32.250 ip4:202.177.148.110 ip4:213.199.128.139 ip4:213.199.128.145 ip4:207.46.50.72 ip4:207.46.50.82 a:mh.example.m0.net ~all"  [ +1 = 6 mechanisms] mh.example.m0.net a = 209.11.164.116 _spf-b.example.com text = "v=spf1 include:spf.messaging.example.com ip4:207.46.22.35 ip4:207.46.22.98 ip4:207.46.22.101 ip4:131.107.1.27 ip4:131.107.1.17 ip4:131.107.65.22 ip4:131.107.65.131 ip4:131.107.1.101 ip4:131.107.1.102 ip4:217.77.141.52 ip4:217.77.141.59 ~all" [+1 = 7 mechanisms] spf.messaging.example.com text = "v=spf1 include:spfa.anotherexample.com include:spfb.anotherexaple.com include:spfc.anotherexample.com -all"  [+3 = 10 mechanisms] spfa.anotherexample.com  text = "v=spf1 ip4:157.55.116.128/26 ip4:157.55.133.0/24 ip4:157.55.158.0/23 ip4:157.55.234.0/24 ip4:157.56.112.0/24 ip4:157.56.116.0/25 ip4:157.56.120.0/25 ip4:207.46.100.0/24 ip4:207.46.108.0/25 ip4:207.46.163.0/24 ip4:134.170.140.0/24 ip4:157.56.110.0/23 -all" [+0 = 10 mechanisms] spfb.anotherexample.com  text = "v=spf1 ip4:207.46.51.64/26 ip4:213.199.154.0/24 ip4:213.199.180.128/26 ip4:216.32.180.0/23 ip4:64.4.22.64/26 ip4:65.55.83.128/27 ip4:65.55.169.0/24 ip4:65.55.88.0/24 ip4:94.245.120.64/26 ip4:131.107.0.0/16 ip4:157.56.73.0/24 ip4:134.170.132.0/24 -all" [+0 = 10 mechanisms] spfc.anotherexample.com  text = "v=spf1 ip4:207.46.101.128/26 ip6:2a01:111:f400:7c00::/54 ip6:2a01:111:f400:fc00::/54 ip4:157.56.87.192/26 ip4:157.55.40.32/27 ip4:157.56.123.0/27 ip4:157.56.91.0/27 ip4:157.55.206.0/24 ip4:157.55.207.0/24 ip4:157.56.206.0/23 ip4:157.56.208.0/22 -all" [ +0 = 10 mechanisms] _spf-c.example.com  text = "v=spf1 ip4:203.32.4.25 ip4:213.199.138.181 ip4:213.199.138.191 ip4:207.46.52.71 ip4:207.46.52.79 ip4:131.107.1.18 ip4:131.107.1.19 ip4:131.107.1.20 ip4:131.107.1.48 ip4:131.107.1.56 ip4:86.61.88.25 ip4:131.107.1.44 ip4:131.107.1.37 ~all" [+0 = 10 mechanisms] _spf-ssg-a.example.com  text = "v=spf1 include:_spf-ssg-b.example.com include:_spf-ssg-c.example.com ~all"  [+2 = 12 mechanisms] _spf-ssg-b.example.com  text = "v=spf1 ip4:207.68.169.173/30 ip4:207.68.176.1/26 ip4:207.46.132.129/27 ip4:207.68.176.97/27 ip4:65.55.238.129/26 ip4:207.46.222.193/26 ip4:207.46.116.135/29 ip4:65.55.178.129/27 ip4:213.199.161.129/27 ip4:65.55.33.70/28 ~all"  [+0 = 12 mechanisms] _spf-ssg-c.example.com text = "v=spf1 ip4:65.54.121.123/29 ip4:65.55.81.53/28 ip4:65.55.234.192/26 ip4:207.46.200.0/27 ip4:65.55.52.224/27 ip4:94.245.112.10/31 ip4:94.245.112.0/27 ip4:111.221.26.0/27 ip4:207.46.50.221/26 ip4:207.46.50.224 ~all" [+0 = 12 mechanisms] spf-a.secondexample.com  text = "v=spf1 ip4:157.55.0.192/26 ip4:157.55.1.128/26 ip4:157.55.2.0/25 ip4:65.54.190.0/24 ip4:65.54.51.64/26 ip4:65.54.61.64/26 ip4:65.55.111.0/24 ip4:65.55.116.0/25 ip4:65.55.34.0/24 ip4:65.55.90.0/24 ip4:65.54.241.0/24 ip4:207.46.117.0/24 ~all" [+0 = 12 mechanisms] Character String Too Long 255 character limitation in a single string kb.isc.org/article/AA-00356/0/Can-I-have-a-TXT-or-SPF-record-longer-than-255-characters.html string-functions.com/length.aspx You may have more than 255 characters of data in a TXT or SPF record, but not more than 255 characters in a single string. If you attempt to create an SPF or TXT record with a long string (>255 characters) in it, BIND will give an error (e.g. "invalid rdata format: ran out of space".)  Strings in SPF and TXT records should be no longer than 255 characters.  However to get around this limitation, per RFC 4408 a TXT or SPF record is allowed to contain multiple strings, which should be concatenated together by the reading application.  In the case of use for SPF (using either TXT or SPF RRs) the strings are concatenated together without spaces as described below.  Reassembly by other applications of multiple strings stored in TXT records might work differently. 3.1.3. Multiple Strings in a Single DNS record As defined in [RFC1035] sections 3.3.14 and 3.3, a single text DNS record (either TXT or SPF RR types) can be composed of more than one string. If a published record contains multiple strings, then the record MUST be treated as if those strings are concatenated together without adding spaces. For example: IN TXT "v=spf1 .... first" "second string..." MUST be treated as equivalent to IN TXT "v=spf1 .... firstsecond string..." SPF or TXT records containing multiple strings are useful in constructing records that would exceed the 255-byte maximum length of a string within a single TXT or SPF RR record. EXAMPLE text = "v=spf1 ip4:199.15.212.0/22 ip4:72.3.185.0/24 ip4:72.32.154.0/24 ip4:72.32.217.0/24 ip4:72.32.243.0/24 ip4:94.236.119.0/26  ip4:37.188.97.188/32 ip4:185.28.196.0/22 ~all“ text = "v=spf1 ip4:199.15.212.0/22“ " ip4:72.3.185.0/24 ip4:72.32.154.0/24 ip4:72.32.217.0/24" " ip4:72.32.243.0/24 ip4:94.236.119.0/26" " ip4:37.188.97.188/32 ip4:185.28.196.0/22 ~all" Null Records in the SPF Record A record that is NULL or that does not exist will break an SPF record.  Syntax within the record is very important, if there are extra spaces between mechanisms it will count as NULL. EXAMPLE text = "v=spf1 ip4:199.15.212.0/22“ <- accurate text = "v=spf1 ip4: 199.15.212.0/22“ <- NULL (NOTE the space between IP4: and the IP) Repetitive Records in the SPF Record - Void Lookups If there are too many repetitive mechanisms in the SPF record, including records that cascade (for example when using "include:") the record will break. There is a MAX of 2 void look ups in an SPF record.  More than that and the record will break.  This prevents SPF records from being used in Denial of Service style attacks. Validation Tools SPF checker, syntax validator and SPF tester http://www.kitterman.com/spf/validate.html SPF checker http://vamsoft.com/support/tools/spf-policy-tester SPF validator http://vamsoft.com/support/tools/spf-syntax-validator CIDR Calculator http://www.subnet-calculator.com/cidr.php Nslookup network-tools.com/nslook/ SPF creation wizard microsoft.com/mscorp/safety/content/technologies/senderid/wizard/ Common SPF errors openspf.org/FAQ/Common_mistakes SPF syntax definitions openspf.org/SPF_Record_Syntax
View full article
Issue The image URL of an email contains an email scripting token (example: domain.com/{{my.image}}-file.png, and when it is processed and sent via email, the image is not rendering. Solution 1.) It is possible that the email scripting token is outputting a value with a line break at the end. To confirm this, it would be best to consult with your developer(s) as custom coding is out of the scope of Marketo Support. You may consider using variables before outputting the values so that in the variables, you can ensure that there are no line breaks. For more information, you can refer to developers.marketo.com/email-scripting/ 2.) If the image is rendering but only for certain browsers and/or email clients, review the coding of the email with your developer(s) as this may be due to the coding of the email itself that may contain code that does not comply with certain browsers and/or email clients.
View full article
Issue You are re-branding your domain and would like to know if it is possible to transfer cookies from one domain to another.     Solution While there are general approaches to sharing cookies across domains, this is outside the scope of Marketo Support. Included below are some non-Marketo resources on approaches for sharing cookies https://stackoverflow.com/questions/12370495/share-a-cookie-between-two-websites codeguru.com/csharp/csharp/cs_internet/article.php/c19417/Sharing-Cookies-Across-Domains.htm. The best point of contact will be your web developer and they will be able to help you out on this regard.        
View full article
Issue Do users within a Marketo instance get automatically subscribed to receive emails about upcoming Marketo webinars? Solution Users with a login in Marketo are not automatically subscribed to receive emails about upcoming Marketo webinars. The users would need to subscribe to the communications by filling up a form on any Marketo landing pages (e.g. marketo.com/company/contact)    
View full article
Issue Reporting on separate links in an email that both point to the same URL Solution When there are duplicate links in an email, the performance of those links will be consolidated into a single row in the Analytics report, so if there are three links that point to the same URL, there will only be a single line for that link on the Performance report. If you would like to differentiate between these duplicates, you can add URL Parameters. Example: google.com and    www.google.com?parameter=second-link In this example, Marketo Link Performance Reporting will show each individual link on Analytics Reporting, but both links will go to the same place.
View full article
Issue You want to use a non-standard character as a value (or part of a value) in an API call (e.g. é), but when you put it in, the call does not work (either failing with an error or not posting the expected character).     Solution Encode the extended characters using ASCII URL encoding for UTF-8. There are sites that will perform this encoding for you, here is one: w3schools.com/tags/ref_urlencode.asp. For example: making this call, " <munchkinid>.mktorest.com/rest/asset/v1/folder/{folder id}/tokens.json?access_token=<accesstoken>&name=TestName&value=Hello+%C3%A9marketo&type=text&folderType=Folder " will create a token called "TestName" with a value of "Hello émarketo"      
View full article
Issue The URL for the landing page shows as "https" even though you do not have SSL set up on your Marketo instance, causing the browser to display a "Not Secure" warning.   Solution This can happen if the primary domain and DNS are SSL secure, but Marketo is not.  For instance, if your primary domain is "mycompany.com" (SSL secure) then the DNS, which is also SSL secure, will push down the "https" transfer protocol down to all the CNAMEs on that DNS.  This will force the Marketo landing page using the CNAME to use "https" in the URL, even though it is not secure. There are two ways to resolve this: Work with your IT department to see if there is a non-SSL option for your DNS Purchase SSL for your Marketo instance so that both your primary domain and your Marketo pages are SSL secure. If you would like to add SSL to your Marketo instance, please contact your Account Manager to see about adding that to your subscription.     
View full article
Issue Using a browser with JavaScript disabled causes display and validation problems with Marketo forms.     Solution When JavaScript is disabled in a browser, it can cause a couple of different behaviors. For embedded forms, the form will not load on the page because it is loaded by JavaScript. For non-embedded forms on a Marketo landing page, the form will load but it will be a bare bones version of the form that does not validate field input, because validation is handled by JavaScript. If you want to display a message to users with JavaScript disabled, you can use the “noscript” tag to display a message that prompts users to enable it in order to render the page correctly: w3schools.com/tags/tag_noscript.asp Here’s an example using that with an embedded form: <script src="//app-sjst.marketo.com/js/forms2/js/forms2.min.js"></script> <form id="mktoForm_1001"></form> <script>MktoForms2.loadForm("//app-sjst.marketo.com", "507-ILX-247", 1001);</script> <noscript>You have JavaScript disabled! Please enable JavaScript for the best experience on this site.</noscript>   For a Marketo landing page, I added an HTML Element with just the last line from the example above: <noscript>You have JavaScript disabled! Please enable JavaScript for the best experience on this site.</noscript>   Alternatively, you can use a redirect solution like this, which will send users with JavaScript disabled to another page: <html> <head> <noscript> <meta http-equiv="refresh" content="0; URL=http://www.marketo.com"> </noscript> </head> <body> <p>Fancy redirect page if JavaScript is not detected.</p> </body> </html>  
View full article
What is the Golden Shield Project? The Golden Shield Project, commonly referred to as "The Great Firewall of China", is an initiative by the Chinese government designed to monitor and heavily censor all internet content. While most firewalls offer a protective shield around a corporation, Golden Shield places one around an entire country. Years in the making, the Golden Shield began operation in 2006.   How does it affect me? If you are sending email to China, it will be subjected to significantly stricter email filtering than any other country in the world. This could result in email delays, delivered emails with unclickable links, or flat-out non-deliverability.   What can I do to ensure email delivery? While there is no guaranteed way to ensure delivery (to anyone for that matter), there are some best practices you can follow that can improve deliverability when sending to China. Avoid commonly filtered content: Political and religious content aren’t only hot-button topics at dinner, they can also earn your email a one-way ticket to the spam folder. You should also refrain from using generic salutations, such as “Dear Friend.” In fact, don’t use the word “Dear” in your greeting at all. You should however consider using a first name token to personalize the greeting. Proper language: If you’re not fluent in Chinese, avoid using free online translation software. Incorrect or mangled grammar can result in your email getting discarded (note: this practice is applicable to all foreign languages). Pay the money for a good translation service. Be sure to use simplified Chinese characters as opposed to traditional. Mind your links: Marketo adds click-tracking to all links, allowing you to track the recipient’s actions. Due to the stringent filters in China, you’ll have better odds of links even working if you disable click-tracking (even when click-tracked links do work, their numbers are often inflated due to the extreme filtering practices). Additionally, if you ever have the option to purchase the top-level domain for China, (.cn), do it. The URL mysite.cn will have a better chance of loading than www.mysite.com. Font size: In terms of deliverability, font size matters. Anything below a 10-point font can be misconstrued as an attempt to sneak something in, thereby exposing the content to additional filtering. Keep a clean list: China is known for its high attrition rates when it comes to email lists. If an email address does not interact (open or click) with an email after 2-3 sends, it may be abandoned. Continuing to mail to this type of email address can have an adverse effect on your sending reputation, and subject you to further filtering. Contact Marketo for large qq.com sends: If you plan on mailing to a list north of 25k to qq.com, please contact Marketo Support so they can create a whitelisting request for our Privacy Team.  Sending from a dedicated IP is required for this request.   How do I check if I am blacklisted in China? There are multiple sites that can give you this information. One we sometimes use is: blockedinchina.net/. Be sure to check domains and sub-domains (if you use them).   What can I do to get off the blacklist? Nothing at all, unfortunately.  Listing are often dynamic and will resolve on their own when reputation improves or the content is not flagged.   Since I can’t do anything to be removed from the blacklist, what can I do to avoid landing on it going forward? Being blacklisted is only temporary 99% of the time (length of blacklisting will vary). Our best advice is to follow the above best practice tips.   Is there anything else I should know? Countries such as China and Japan are huge players in the mobile market, so be sure to keep mobile best practices in mind when designing emails. Marketo cares about your success. To stay on top of trends, we monitor and receive reports from CASA (Chinese Anti-Spam Alliance). If you have any additional questions, or if you feel that you're being impacted by the Golden Shield, please contact Marketo Support.
View full article
Want to gauge how many leads clicked through a link you have in your social media or other outlets? This can be done using URL Parameters at the end of the URLs you use. Basically, you just add a little bit of code to the end of the hyperlinked URL. When leads click through and arrive at your Landing Page, that code can be captured into a hidden Form field. Here’s how to do it.   Quick Overview of URL Parameters In the structure of a URL, there are two main parts. The first part is used for navigation, and the second part is used to pass data along. The two parts are separated by a question mark. For example, let’s look at this URL:   www.myawesomewebsite.com?URLParameter=ThisIsAParameter   The first part of the URL, “myawesomewebsite.com” is the main part of the URL used for navigation. The whole rest of the URL from the question mark on, “?URLParameter=ThisIsAParameter” is referred to as a querystring. It isn’t needed for navigation to the page specified, but can be used to pass the extra data you want to include.   This is a article attached imageThis is a article attached imageThis is a article attached image   The querystring contains the URL Parameters, which are used to push data into the hidden Form fields. In the querystring “?URLParameter=ThisIsAParameter” used here, “URLParameter” corresponds to the name of the parameter you use when designating the value for the hidden Form field, and “ThisIsAParameter” will be the value that is actually entered into that field. You can add additional values into additional other fields by adding those into the format of the URL separated by an ampersand like this:   www.myawesomewebsite.com?URLParameter=ThisIsAParameter&URLParameter2=ThisIsValue2&URLParameter3=ThisIsValue3   In this example, you’ve got the same initial value being pushed into the first hidden field, but now two more hidden fields will store the next two values as well. The name of the parameter for the second hidden field would be “URLParameter2” and the value put into it would be “ThisIsValue2”. The third hidden field parameter name would be “URLParameter3” and the value put into this field would be “ThisIsValue3”. This is a article attached imageThis is a article attached imageThis is a article attached image Applying This to Social Media Use So, how does this let you track leads coming from each of your social media sources? Well, in setting up your different promotional channels, when adding the hyperlink, you can customize the URL parameter for each channel so that the values passed will input the information specific to where they came from. The parameter values will change from one social media outlet to the next, but the structure and format will stay the same.   Let’s use the social media sources of Twitter, LinkedIn and Facebook as examples. Since you’re looking to identify the source of these leads, you’d likely want to name your parameter as “Source” so that it’s easily identifiable. Using the same base URL, let’s see how you’d structure the URLs. For hyperlinks placed on Twitter: www.myawesomewebsite.com?Source=twitter For hyperlinks placed on LinkedIn: www.myawesomewebsite.com?Source=linkedin For hyperlinks placed on Facebook: www.myawesomewebsite.com?Source=facebook   When leads fill out the form on your landing page, the Source field will then tell you exactly where they came from! The best part, this is completely customizable and scalable. You can add more parameters and hidden fields to capture additional information like what campaign it is for.   Documentation How to make form fields hidden: https://experienceleague.adobe.com/en/docs/marketo/using/product-docs/demand-generation/forms/form-fields/set-a-form-field-as-hidden How to define hidden form field value: https://experienceleague.adobe.com/en/docs/marketo/using/product-docs/demand-generation/forms/form-fields/set-a-form-field-as-hidden (Look for the section on URL Parameters in particular) Using the URL builder to generate the URLs you’ll be using: https://experienceleague.adobe.com/en/docs/marketo/using/product-docs/demand-generation/landing-pages/personalizing-landing-pages/using-the-url-builder    
View full article
  Marketo's Email Delivery & Compliance Team often recommends that our customers send a reconfirmation message to a set of their inactive leads. This process is used as both a proactive strategy to ensure good delivery rates and as a response to blocklisting issues. For more information on this overall strategy search our Resource Articles for Blocklist Remediation. At its most basic a reconfirmation message request a lead takes an action to stay on your mailing list.  If they don't take that action they will be automatically removed from the mailing list. These types of messages don't usually get a high response rate because you are sending the reconfirmation message to people who have already shown to be disengaged from your marketing. However there are instances where some reconfirmation messages get a more enthusiastic response than others so we've put together some tips for making the most out of reconfirmation. Instead of marketing your company itself think of it as though you are marketing ENGAGEMENT with your company. While these ideas are similar, they aren’t quite the same. You want to frame this message with a sense of urgency to click a link. You also want to make it as easy as possible for someone to open the message and just click a link so they continue to stay engaged with your marketing.   Subject Line We recommend that you frame the subject line very clearly with something about “not missing out” or “staying informed”. The subject should create a compelling and specific call to action.  Some senders use an offer in the reconfirmation message to encourage action. Highlight this in the subject line if this is your approach. Examples We’ve Missed You!  Take Action continue receiving our offers! Last Opportunity to Stay Informed (Action Required) Free shipping plus save 15% on next purchase   From Address While you can use any From Address, we recommend that your From: label clearly identifies your company rather than using a lead owner name. A disengaged recipient is more likely to recognize “Your Company” than “Bob Smith”.   Email Content In the body of the message your call to action should be immediate and clear. Put the reconfirmation at the top of the message content. Some usability studies have suggested that two choices may be more successful than a single choice so consider a bolder reconfirmation link at the top and a smaller link or button lower to unsubscribe. The main priority is getting someone to stick around for more of your mailings. You may also wish to make a short value statement about the fantastic information that someone can expect to receive by staying on your list! There are a couple of reasons for these recommendations. The first has to do with making things easy for the blocklist operator. If during the resolution process they can look at the mail received by their spamtraps and immediately tell from the subject line that the message is a reconfirmation pass it will make it much easier for them to consider the data quality issue resolved because their spamtraps will not activate the reconfirmation link. Some of the less automated blocklists will not list a sender for a reconfirmation message that hits their traps so it's important that your cleanup action look like what it is. The second reason behind this advice is that many people just scan their messages and don’t read all the way to the bottom; if someone has to read through a long value proposition before realizing that they must click a link to continue to be subscribed to your email program you may lose more subscribers than intended. The faster and easier it is to click that link the more people you’ll retain! A lot of people scan over marketing offers and think about them for a while before taking an action. You want to interrupt that process and make it clear that action is required now whether or not they’re ready to make a purchase!   Examples of simple reconfirmation email templates More examples can be found in this other Community Resource “A Creative Re-Engagement Email Campaign” Email #1 Subject Line: Action Required to stay subscribed to COMPANY   [First Name]:   You previously expressed interest in receiving valuable information and/or offers from COMPANY that are specific to your field.  We’d like your permission to continue sending you relevant information via email so that you can stay up-to-date on the latest industry trends/topics of interest.   Please click “YES” below to continue receiving research and trends in your area of interest.  COMPANY subscribers receive exclusive benefits, including the latest research briefs, white papers and/or compelling offers or discounts for future purchases.   Please update your Communication Preference by [DATE/TIME] or this could be your last chance to receive any future research.  It only takes a moment to click one of the choices below.   YES, I would like to stay subscribed to the valuable information from COMPANY.   NO, I no longer wish to receive valuable and insightful offers from COMPANY.   Sincerely, COMPANY   ————–   Email #2   Subject Line: Your Subscription to COMPANY Industry Newsletter Expires Soon   [First Name]:   Our records show that you expressed interest in receiving industry information from COMPANY on [INSERT DATE].  Records indicate you have not read an email in [variable time frame], we do not want to bother you with emails you do no wish to receive so we want to confirm that you would like to remain subscribed to the COMPANY email program.   If you wish to be removed, you don’t have to do anything further.  However, if you do want to continue receiving email from COMPANY, please click the link to let us know:   YES, I would like to stay informed and continue receiving email from COMPANY.   Sincerely, COMPANY   ————–   Email #3   Subject Line: Your Subscription to COMPANY Has Expired   [First Name]:   Thank you for your previous interest in receiving valuable content from COMPANY.  Your subscription has now expired and you will no longer receive any future emails.   If in the future you would like to continue to receive email from COMPANY please click the link to sign up:   YES, I would like to receive email from COMPANY.   Sincerely, COMPANY     Other Resources Marketo Community Resource “A Creative Re-Engagement Email Campaign” spamhaus.org/whitepapers/permissionpass/ blog.deliverability.com/2013/07/do-you-know-whats-lurking-in-your-database-know-thy-data.html blog.marketo.com/2010/05/key-to-email-deliverability-is-reputation.html marketo.com/email-deliverability/    
View full article
Issue Clicking a tracked link in an email either leads to a 404 page or the fallback page. Environment Tracked links Tokens Specific Characters: "#", "$", unbalanced brackets "{" or "}" Solution Do not use the following characters "#", "$", unbalanced brackets "{" or "}" in a link that is tracked when using a token as well. This is a article attached imageThis is a article attached image For example: google.com/ebook-download.html?ebook={{lead.ebook}}# This will not work and will either direct to a 404 page or redirect to fallback page. When hovering over the link you will see that it is not a normal tokenized link, it will contain something along the lines of: $mktEncrypt.encrypt($mkturl2)/<random characters> Root Cause When using tokens in the url of a tracked link, the email is processed and the tokens are substituted and populated with the correct information. The engine that assembles this information have some characters reserved for use such as #.
View full article
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
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