Skip navigation
All Places > Products > Blog > Author: Justin Cooperman


2 Posts authored by: Justin Cooperman

Before diving in, it's important to emphasize that all email metrics besides “sent" are approximations. This is true for any ESP due to technical limitations. One quick example: if a recipient of an email has “automatically show images” in their email client disabled, then an “open” event will not be recorded even though that recipient did open the email. In this example, there is no technical way to know that an open occurred. Different email services and clients will handle email differently and senders will not always know the precise state of the email. From my experience, trying to determine an absolute perfect list of people that have interacted with an email is extremely difficult, if not impossible. Everything should be viewed as an approximation that will allow you to see trends over time.


The “best” email metrics to look at in Marketo are the ones that are in the email performance report (it also matches the summary page of a smart campaign) or in RCE. There may be other ways that users can try to get metrics, but it’s not going to tell you what you’re interested in. The issue mainly occurs when people try to inspect our activity log (which is what you’re seeing when you click “View Results” of an Email Program) or use Smart Lists. For example, a customer might create a Smart List with “Was Delivered <my_email> in the last 6 months” and expect the count returned to match the delivered count in the Email Performance Report for the same email and date range (last 6 months). In practice, these numbers won’t always match for good reason. One example of why the metrics will differ is that a certain category of “soft bounce” or “hard bounce” events can occur after a delivered event occurs. This means that the delivered count in the Email Performance Report could initially look higher, then slowly decrease (it may decrease steadily over time) as we receive bounces from mail servers. It's a weird concept to grasp, but sometimes that is the order in which bounces are reported to the sender. In the Email Performance Report and RCE, we have additional business logic that will count this as no longer being delivered. In the smart list and activity log, however, it will always just give you an unfiltered count of leads that had the “delivered" activity occur for that email in the last 6 months, even if some other activity later occurred that nullified the previous activity.


Quick overview of some the business logic present in the Email Performance Report:

  • Rule 1: Each email activity record is set to one, and only one, of the following: Delivered,Hard Bounced, Soft Bounced, or Pending.
  • Rule 2: If the email record shows Opened, it is counted as Delivered.
  • Rule 3: If the email record shows Clicked Email or Unsubscribed, it is counted as Delivered and Opened.
  • Rule 4: If the email is Opened, bounces are ignored. If the email has not been opened,Hard Bounced takes precedence over Soft Bounced and Delivered.


Quick overview of the business logic present in RCE:

Email Event Chain in RCE

Sent ---> (Delivered | Hard Bounced) ---> Opened ---> (Clicked | Unsubscribed | Complaint)


  • All subsequent events after Sent are tied back to the its latest Sent.
  • If the preceding event is not present, RCA will generate that event.  For example, Click does not have Opened, RCA will generate the Opened for the latest Sent.
  • Generated event takes the date of its subsequent event.  For example, Click does not have Opened, RCA will generate the Open with the Click date.
  • If the real event comes later after the event is generated, RCA will determine if the event should be updated or leave as it.
  • Sent can have either Delivered or Hard Bounced
  • Hard Bounced negates Delivered.
  • Opened negates Hard Bounced.
  • Data reported in CST timezone only.
  • Unique Click counts the first click.
  • Deleted lead email activities are not counted but deleted email still show.


Another thing to keep in mind is that when you are running something like a Smart List or looking at activities, this only applies to leads that are currently in your lead database. So, If you sent an email to 10 people and all 10 opened the email, the Email Performance Report would say “10 sent” “10 delivered” “10 opened.” If an hour later one lead was deleted from the database, and you then were to run a “Did Open <my_email>” Smart List, you would only see 9 leads returned since the 10th person no longer exists in the database. The Email Performance Report would still read “10 sent” and “10 opened."


There are many many more examples like the above, but it should indicate that the best thing to look at is always the Email Performance Report. While RCE operates over the pure activity log (which doesn’t always reflect reality), we’ve also added similar business logic there so those numbers are also good to look at. There may be a few minor differences in business logic between RCE and Email Performance Report. One example is that RCE doesn’t show data for deleted leads.

At some point in time, you may have come across this blog post:


This approach is really handy for posting to Marketo forms in the background, but I don't think all of our customers are aware of what a powerful tool this can be, especially for unsubscribe scenarios. A common question we often get from customers is, "How can I setup an external subscription center on a page that does't have Marketo's munchkin code or a Marketo form on it?"


Below, I'll outline a technique that you can use to setup your very own subscription center (Note: This doesn't require that Munchkin code or a Marketo Form be present!) to manage this process:


Step ONE:

Grab an ID for any form that is approved in your Marketo subscription. Reference the blog post mentioned earlier to learn how to find a form ID.


Step TWO:

Insert code like shown below into your external page that will serve as the subscription center (again, this page doesn't require Munchkin):



<p>If you wish to unsubscribe, click below:</p>

<form id="myform" action="" method="POST"><input type="hidden" name="munchkinId" value="XXX-XXX-XXX" /><input type="hidden" name="formid" value="1000" /> <input type="hidden" name="Unsubscribed" value="true" /> <input type="hidden" name="_mkt_trk" value="" /> <input type="hidden" name="Email" value="" /></form>

<div><button id="clickme" onclick="document.getElementById('myform').submit();" style="color: red; background-color: black;">UNSUBSCRIBE ME</button></div>


Note that this is the pod that your sub is on, this is your munchkin ID, this is any active form ID in your sub (doesn’t matter what’s in the form), and this is the lead's email that you wish to unsubscribe in your sub. When you implement this on your own page, you may want to prompt the user to enter their email address, then fill this value accordingly. Another option is to add the email address as a query parameter on the unsubscribe link you will be including in your emails (see step three), then use JavaScript to parse this and fill the value accordingly.




In Marketo, either change the Unsubscribe information in the Admin page to link to this external page OR override Marketo's default unsubscribe text and add your own tracked link (including mkt_tok) to the footer of all your emails.


Step FOUR:

Continue sending emails out of Marketo, as usual. When a lead clicks your "unsubscribe" link in your email and reaches your new external subscription center, they'll be able to process their unsubscribe request. An unsubscribe request can be processed from this page at anytime but if the page was reached by clicking a tracked link (including mkt_tok) in a Marketo email, it will show up correctly in your subscription as an “Unsubscribe from Email” activity. This also means that your Email Performance Report, Lead Activity Log, and Campaign Results Tab will correctly reflect the unsubscribe.


You may have already noticed that it would be pretty straightforward to add even more options to customize your external subscription center even more. Try this method out and let us know if you find it useful!

Filter Blog

By date: By tag: