Tracking UTM parameters in Marketo – Part 3

If you are new to UTM tracking or have been trying to figure out what it means, here’s a quick recap of the previous blogs that I’ve written on this topic:

  1. UTM Tracking & Marketo – Part 1
    In the first post, we begin with definitions and establishing and understanding of source, medium, term, content, campaign, the five parts that make up a url parameter for tracking.
  2. UTM Tracking & Marketo – Part Deux
    In the second installment, we lay the groundwork and go into the setup in Marketo as well as a custom script we created to make tracking easier.

I’m happy to finally simplify the process even more and consolidate all of the steps into this simple infographic. The major change is that with the updated script, you will no longer have to add the hidden fields onto your forms. It will add those fields automagically as long as you have the correct fields in your Marketo instance.

Digital Pi's method for tracking UTM parameters in Marketo

Download Digital Pi's UTM tracking script

Is it time to start sending your emails using a subdomain?


Domain versus subdomain. What’s the difference? Why should I set up a subdomain if I am already using my company’s top-level domain? Are there any benefits to using a subdomain?

A domain is a unique name that identifies a website (, while a subdomain is an extension of the domain name that can direct within the hosting account (

If you’re on the fence, or really just want to learn more about this hot topic, you’re not alone. We have received a lot of questions about domains and subdomains lately, and many want to know why subdomains always win. For starters, subdomains have the potential to boost your overall email reputation.


number oneWhen it comes to email deliverability, reputation is everything. Sorry to say it folks, reputation did not die when you graduated high school. In fact, your domain and subdomain play a big part in reputation, and this is a deciding factor when it comes to ISPs determining where the email will land (inbox, junk, promotions, etc.).

Let’s create a hypothetical scenario. Your sales team lives by the term “quantity over quality”, and even worse, they may be purchasing lists. You know that to cultivate any relationship with your subscribers, you need to first obtain their permission to send emails and then grow the relationship from there. But, how do you expect to grow a relationship if you can’t even reach the inbox because your domain has been blacklisted due to bad internal practices? Think about it, would you want another department’s emails dictating whether your emails land in the inbox or not?

This is where a subdomain will be your saving grace because other departments’ sending practices will no longer affect your sending infrastructure, due to subdomains having separate reputations. And, over time, your subscribers, and their ISPs will begin to recognize and trust your sending subdomain.

Authentication Policies

One of the four basic steps to the inbox is authentication. Your SPF and DKIM need to be set up properly and they need to be passing. ISPs, with Gmail and Microsoft leading the way, are giving increasing weight to the presence of DMARC when calculating a sender’s reputation.

By moving towards a subdomain, you can set specific authentication policies. Simply put, this means that you can set your own policy for DMARC and focus on strict alignment. Remember, your envelope-from, sending domain, and DKIM domain must all match for strict alignment, otherwise you will look suspicious to ISPs.


Using a subdomain rather than your company’s top-level domain will provide easier reputation tracking because it will be separate from other domains and subdomains being used within your company. This is extremely important in email deliverability because this allows you to gauge how many clicks, opens, forwards, etc. there were for a specific campaign. From this vital information, you can continue to tweak and update future campaigns to further increase overall email success.

Keep Calm & Email On

keep calm and email onUsing a top-level domain could be detrimental to your company’s overall productivity. Say for instance one of your emails was sent out with a broken link, which landed your top-level domain on a blacklist, and now all of your company’s emails are bouncing. Your domain cannot send emails (including corporate emails) due to that incident. This will cause quite a headache for your IT team…and the rest of your company.

So, the next time you and your team are strategizing about whether a subdomain is best for your sending infrastructure, just remember, by using a subdomain, you control your reputation, along with authentication policies. And, by using a subdomain, tracking becomes a lot easier.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_empty_space height=”40px”][/vc_column][/vc_row][vc_row css=”.vc_custom_1477333131309{padding-top: 40px !important;padding-right: 20px !important;padding-bottom: 40px !important;padding-left: 20px !important;background-color: #f2f0e4 !important;}”][vc_column][vc_text_separator title=”?” color=”custom” accent_color=”#babf33″ el_class=”question”][vc_column_text]

Questions that Marketo folks struggle with

[/vc_column_text][vc_empty_space height=”30px”][vc_row_inner][vc_column_inner][edgtf_separator type=”full-width” color=”#babf33″ border_style=”dashed” thickness=”4″ top_margin=”18px” bottom_margin=”18px”][vc_column_text]

Should they purchase a dedicated IP to build out the subdomain’s reputation even if they are small?

[/vc_column_text][vc_column_text]A dedicated IP for a low-volume sender could actually hurt someone’s deliverability as they will never be able to establish a reputation. I normally recommend around 500,000 sends per month to have a dedicated IP.

I do have 1 client on Marketo that sends out 100,000 emails a month (all B2B) on a dedicated IP. The only reason is that they are an international sender and the majority of the networks they send to required a dedicated IP to whitelist.

Agree on the subdomain reputation too. Gmail/Google Apps, along with others are now looking at the subdomain to determine reputation. Each mail stream and sending platform should use a different subdomain when sending out email or else you could “cross contaminate” the reputation.[/vc_column_text][vc_empty_space height=”24px”][edgtf_separator type=”full-width” color=”#babf33″ border_style=”dashed” thickness=”4″ top_margin=”18px” bottom_margin=”18px”][vc_empty_space height=”24px”][vc_column_text]

When it comes to using a third party like Marketo on a shared server, how do we get affected if someone else on the same server has bad email practices?

[/vc_column_text][vc_column_text]Shared IP pools can be problematic if not managed properly. If you have a client on a shared IP pool, other senders on that pool will affect your deliverability. If a sender on the shared IP pool land on a blacklist, that affects all others on that pool. Not to mention if an ISP or network blocks the IP, mail traffic is affected for all senders. Keeping an eye out for blocks, soft bounces, blacklists, etc. can help catch these issues quicker.

It is very important to ask any email service provider about the other senders on the shared IP pool, like:[/vc_column_text][vc_empty_space height=”24px”][edgtf_icon_list_item icon_pack=”simple_line_icons” simple_line_icons=”icon-check” icon_size=”18px” icon_color=”#babf33″ title=”How many other senders are on the shared IP pool?” title_size=”18px” title_color=”#babf33″][edgtf_icon_list_item icon_pack=”simple_line_icons” simple_line_icons=”icon-check” icon_size=”18px” icon_color=”#babf33″ title=”What is the typical daily, monthly volume on the shared IP pool?” title_size=”18px” title_color=”#babf33″][edgtf_icon_list_item icon_pack=”simple_line_icons” simple_line_icons=”icon-check” icon_size=”18px” icon_color=”#babf33″ title=”How many IPs are in the shared IP pool?” title_size=”18px” title_color=”#babf33″][edgtf_icon_list_item icon_pack=”simple_line_icons” simple_line_icons=”icon-check” icon_size=”18px” icon_color=”#babf33″ title=”What categories or lines of business comprise the shared IP pool?” title_size=”18px” title_color=”#babf33″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row]

Track YouTube Videos in Marketo

[vc_row][vc_column][vc_column_text]Many of our clients host marketing videos, recorded webinars, or other video content on YouTube. It’s simplicity and dominance in the online video space make it the de facto standard for many marketers.

No Marketo integration with YouTube’s standard embed code

Despite its ease of use, however, many Marketo practitioners have been frustrated that they have no visibility from within Marketo to leads’ interactions with their YouTube video content. For this one feature, many marketers utilize video hosting solutions like VidYard to get video interaction information into Marketo.

But there is another way, and it is much easier on your budget.

Track YouTube videos in Marketo with Javascript APIs

Our team at Digital Pi has developed and refined a simple script that you can include—for free!—in your Marketo landing pages to embed a YouTube video and get key video interaction data back into Marketo. This data can then be used to change program statuses, increase leads’ behavior scores, or anything else that can be added to a workflow in Marketo.

One of the key features of the script is that you can see which leads reached self-defined video to milestones.

Example scenario: let’s say you have a product demo video and a corresponding Marketo program based on your Product Marketing channel.

  1. When a known lead views the landing page, her program status is set to Member.
  2. When she views 50% of the video, that milestone is logged and triggers a program status change to Interested.
  3. When she views 100% of the video, the program status changes to Engaged.
  4. At this point, you could have the landing page generate a modal popup with a Marketo form to request a free sample kit, because you know she is likely ready to try it out.

A simple demo

Here is an example video. Below it is a log that shows what information is sent to Marketo. Feel free to play and pause the video to watch what happens as the information is logged. As you watch the video, look for milestones to automatically show up in the log at 25%, 50% and 75% completion.

By the way, this all works on both Android and iOS mobile devices too. I recommend testing on all platforms.[/vc_column_text][vc_raw_html]JTNDZGl2JTIwaWQlM0QlMjJkaWdpdGFscGkteXQtcGxheWVyJTIyJTIwZGF0YS15b3V0dWJlLWlkJTNEJTIyamRpLXFxRnYyNEElMjIlM0UlM0MlMkZkaXYlM0UlMEElM0NwJTIwaWQlM0QlMjJkaWdpdGFscGkteXQtcGxheWVyLXJlc3VsdHMtdGl0bGUlMjIlMjBzdHlsZSUzRCUyMm1hcmdpbiUzQSUyMDEwcHglMjAwJTIwMCUzQiUyMiUzRSUzQ3N0cm9uZyUzRSUzQ2NvZGUlM0VjbGljayUzQyUyRmNvZGUlM0UlMjBhY3Rpb25zJTIwbG9nZ2VkJTIwdG8lMjBNYXJrZXRvJTIwJTI4c2Nyb2xsYWJsZSUyOSUzQSUzQyUyRnN0cm9uZyUzRSUzQyUyRnAlM0UlMEElMEElM0NkaXYlMjBpZCUzRCUyMmRpZ2l0YWxwaS15dC1wbGF5ZXItcmVzdWx0cyUyMiUyMHN0eWxlJTNEJTIyZm9udC1zaXplJTNBJTIwLjhlbSUzQiUyMGxpbmUtaGVpZ2h0JTNBJTIwMS40ZW0lM0IlMjBiYWNrZ3JvdW5kJTNBJTIwJTIzZWVlJTNCJTIwb3ZlcmZsb3clM0ElMjBzY3JvbGwlM0IlMjBtYXJnaW4lM0ElMjAwJTIwMCUyMDEwcHglM0IlMjBwYWRkaW5nJTNBJTIwMTBweCUzQiUyMG1pbi1oZWlnaHQlM0ElMjA0MHB4JTNCJTIwbWF4LWhlaWdodCUzQSUyMDgwcHglM0IlMjBib3gtc2hhZG93JTNBJTIwMCUyMDAlMjAyMHB4JTIwcmdiYSUyODAlMkMwJTJDMCUyQzAuMSUyOSUyMGluc2V0JTNCJTIyJTNFJTNDc3BhbiUyMHN0eWxlJTNEJTIyY29sb3IlM0ElMjAlMjM2NjYlM0IlMjIlM0VQbGF5JTIwdGhlJTIwdmlkZW8lMjBhYm92ZSUyMHRvJTIwc2VlJTIweW91ciUyMGludGVyYWN0aW9ucyUyMGxvZ2dlZCUyMGhlcmUuJTNDJTJGc3BhbiUzRSUzQyUyRmRpdiUzRSUwQSUwQSUzQ3NjcmlwdCUyMHNyYyUzRCUyMmh0dHBzJTNBJTJGJTJGZGlnaXRhbHBpLmNvbSUyRndwLWNvbnRlbnQlMkZ1cGxvYWRzJTJGMjAxNiUyRjA4JTJGdHJhY2steW91dHViZS12aWRlb3MtaW4tbWFya2V0by1leGFtcGxlLXNjcmlwdC1kaWdpdGFsLXBpLW1hcmtldG8tY29uc3VsdGluZy5qcyUyMiUzRSUzQyUyRnNjcmlwdCUzRQ==[/vc_raw_html][vc_column_text]

The YouTube tracking script

Here is the script: Digital Pi’s YouTube tracking script for Marketo

To use the script, you will need to make a few changes to your Marketo landing page template(s) where you want to use the video functionality:

  1. Include this script just before the closing </body> tag:<script src=””></script>(I recommend saving the script to your computer, uploading it to Marketo’s Design Studio, then changing the above URL to reflect your Marketo-hosted version.)
  2. Place this code snippet where you want the video to appear:<div id=”digitalpi-yt-player” data-youtube-id=”XXXXXXXXXX”></div>
  3. Change XXXXXXXXXX to your YouTube video ID, from the YouTube URL

Accessing video tracking info in Marketo

Okay, so the video is tracked. How can you, the savvy Marketo practitioner, access this information and use it in your marketing? There are several things you need to know.

  1. In Marketo, these YouTube video interactions are logged as click events.
  2. The page URL is always the same——regardless of which page the request originated on.
  3. This tracking works even on anonymous leads–before they submit their name or email address.

Here is how the video interactions show up as lead activities.

Activity Details for Click Link entry in test lead's Activity Log Activity Details for Click Link entry in test lead’s Activity Log

In a smart list, you could use a filter for all leads that reached the 25-percent-watched milestone.

Marketo filter for tracked YouTube video interaction Marketo filter for tracked YouTube video interaction

Or you could use the same parameters in a trigger.

Marketo trigger for tracked YouTube video interaction Marketo trigger for tracked YouTube video interaction

Finally, to trigger a status change or scoring increase when a lead finishes watching a video, you can search for a query string containing movie-action=played-to-end.

Marketo trigger for YouTube video viewed to end Marketo trigger for YouTube video viewed to end

Look at the demo video’s log above to get an idea of what parameters are available for your Marketo filters and triggers. Remember, you can use as much or as little of the query string to get as specific or general as you want depending on how much or how little of it you include. Here are some query strings from the example above and ideas on how you could possibly use them:

Query String Parameters Interpretation & Use Case
video=jdi-qqFv24A&movie-action=played-to-end Watched a specific video to the end. Use to set program status to Engaged or equivalent success step.
movie-action=played-to-end Watched any tracked YouTube video on your site to the end. Use to increase Behavior Score in your global scoring program. This may also be a good opportunity to log an Interesting Moment for Sales.
video=jdi-qqFv24A&movie-action=achieved-milestone&percent=50 Watched at least half of a specific video. Use to set program status to Interested or equivalent pre-success step. Possibly use to increase Behavior Score.
movie-action=achieved-milestone&percent=50 Watched at least half of any tracked YouTube video on your site. Use to increase Behavior Score.
movie-action=pressed-play&percent=0 Started watching any tracked YouTube video on your site. Use to increase Behavior Score.

Configure the YouTube tracking script and player settings

By default, this video player will log milestones when a known lead watches 25%, 50% or 75% of the video, but these can be changed to suit your needs.

In addition to Marketo tracking, this script also empowers you to overcome some of YouTube’s default embedded YouTube video player’s other limitations and settings:

  • The video player will scale responsively for tablet or mobile devices.
  • The player’s controls and video title are hidden by default.
  • “Related” videos will not display at the end of the video.

Any of these options can be changed in the script itself, including the percentages for the milestones.

Settings for YouTube videos tracked in Marketo Settings for YouTube videos tracked in Marketo

Have questions, suggestions for improvements or requests for specific features? Let us know in the comments below.


UTM Tracking & Marketo – Part Deux

In our first post, we discussed the concept of URLs and UTM tracking. Now that those are in place, we will dive into the setup with Marketo. Here are the high-level steps:

  1. Create the UTM fields in order to have a place to store the values
  2. Add the fields on your form pages as hidden fields, add to a landing page
  3. Setup the Marketo programs and/or smart campaigns to process them
  4. Test and check to make sure it’s working

Step 1 – Create UTM fields

If you are setting this up for the first time, or you have inherited a Marketo instance, I recommend checking to make sure these fields are not already in place, or they exist, but are named something else. If you have access, go to Admin > Field Management, and search for any fields containing “utm” or “ppc” to see if they are there. In the screenshot below, you’ll see that all 5 fields have been created and are currently mapped to the SFDC lead and contact records.

*Side note: The mapping is important if you want the values for leads or contacts since SFDC treats them differently. Also, if you are creating them for the first time, make sure to do it in SFDC and wait for the fields to sync to Marketo or you’ll have to get it re-mapped.


Step 2 – Add fields to your forms

Now that you have the fields created, add them to any relevant data forms. There are two main options for this.

  1. If your website uses custom non-Marketo forms, ask your web developer to add the extra fields to the forms and make them hidden. In the field management screen, there’s an “Export Field Names” button which will export all the necessary fields that you can provide to your developer. The file provides a mapping for the UTM values that need to be written to from the website form field to the Marketo field. There might be other options such as native plugins that might already accomplish this.
  2. If you are adding them to a Marketo landing page, drag those new fields onto your forms and make them hidden. In the Autofill property, choose Edit and you’ll see options to chose where the field values will populate from. Choose URL Parameter and type in “none” for the default value or anything that you can filter on later to troubleshoot if it’s not working.



At this point, the landing page is just waiting for a referring visit with UTM values. Consider what happens when someone clicks a link, but does not sign up right away? The values from the URL parameter must be present at the time of submission in order for this to work. So if someone navigates away and the parameters disappear, then the UTM values will not be captured.

To solve for this, we have created a tracking script that will store any UTM parameters it finds into a cookie. Now when a visitor fills out a form that contains the hidden UTM values on a form, the cookie will store the UTM value across the main and subdomains.

*Technical Stuff: You can upload the extracted file into the images directory or on your web server. Before doing so, take note to make one change to the file and re-save it for it to work. Open the file with any text editor and looking for a line that says “” and change it to your domain. Once set, it won’t expire for another 365 days. The script should be place where your Munchkin script is also placed.

It’s a simple script that does the following.

  • If UTM parameters are present, store those into a cookie. This means if it comes from a URL and it’s the first time seeing it, the script creates the cookie.
  • If the visitor comes back by clicking another link with different UTM parameters, it will replace with the new ones and continue to do so.
  • It’s not session specific which means if the visitor closes the browser and comes back at a later date, it will still be in the cookie and keep it for 365 days.



Here’s a link to the tracking script:

So that you can see this process in action, I created a simple form with visible UTM fields on a landing page. When you click on one of the sample links, you should see the UTM values in the UTM fields where they would normally be hidden. If you want to experiment with it, change any of the UTM values after the equal sign and refresh the page. You’ll see the new value populated in the field that was changed.

Long version:

Shortened version:



Step 3 – Setup Marketo processing

This next part is just ordinary Marketo smart campaign building. Setup the trigger filtering on UTM values. Make sure it’s unique enough to process for the individual UTM parameter (campaign, source, medium, etc.).


Step 4 – Test and validate

Create a few URLs to your landing page and use different combinations of UTM parameters and click on your form submission. Look for the test record and in the custom fields look for the values. If they are there, it’s working properly. Keep in mind these values will change each time a new set of UTM values are set. You can run reports on the different campaigns or even down to the add level if programs are setup to track that.


This feature is used frequently, so we hope this article saves a lot of time and frustration. Happy Marketing!!


UTM Tracking & Marketo – Part 1

If you’ve had any conversations around how to track online ads or how to track inbound web links, then you would’ve probably heard of the letters “UTM” or something about “UTM parameters” or “UTM tracking”. The most common scenarios for UTM use are lead source identification and tracking of specific campaign details where multiple visitors land on the same web page, but come from different referrers. It also helps when providing destination urls to third-party agencies, partners, etc. who are sending traffic to your website.

UTM stands for “Urchin Tracking Module” and Urchin was a company that was purchased by Google. This method for tagging links is baked into Google Analytics. To break it down a bit further, a URL parameter is anything added to the end of an URL or typically anything after the question mark. For instance,

These are the 5 main parts that make up the parameter:

  • Campaign Source: (utm_source)
  • Campaign Medium (utm_medium)
  • Campaign Term (utm_term)
  • Campaign Content (utm_content)
  • Campaign Name (utm_campaign)

So why UTM and not anything else? You can use any type of parameter you want, but UTM parameters are well known and widely used. There are some parameters that use their own naming conventions for lead source (=ls or lsd for lead source details, etc.) We recommend using UTM as it is commonly understood and many of the web content management systems have it as a default for tracking links.

As you may have already guessed, this process of correctly inserting UTM parameters into all your links can be tedious and requires consistency. Also, it can become extremely long and unwieldy. Luckily, there are a few ways to make this process easier.

To make the URLs shorter, there are also tools to make this easier. The shortened URLs make it easier to manage and much more simple visually. The key is that when the links are clicked, the full url is revealed so that the rest of the UTM tracking works.

  • – Google provides URL shortener that will turn the long URL above “” to something like this: (much easier to provide).
  • – Bitly is another popular URL shortener and with an account everyone can use it and comes with it’s own level of tracking.

In my next post, we’ll go through how to setup these parameters in Marketo as well as programs to track them.