Building Better Performing Smart Campaigns: Part 1

Anonymous
Not applicable

In Marketo, there are often multiple ways of designing the same program using one or more smart campaigns, particularly when it comes to nurture. Not all ways of doing things are equal from a performance/efficiency standpoint. I recently had the opportunity to do some testing to confirm which of the variations would be the most efficient and which tradeoffs are worth making.

Note that throughout all of these tests, smart list optimization techniques were applied as described in this earlier blog post.

These tests were run with batches of 20,000 leads to compare overall and average processing time. They were done with a specific campaign objective in mind and, as such, may not be applicable in all situations.

The basic premise of this campaign was that an Interest field was being populated by various actions in the Marketo database. Based on this Interest field, we wanted to check against a list of qualification criteria to update another field, indicating which nurture program and which stream the person should be in. We then wanted to move them into the appropriate stream of the appropriate nurture.

Question 1: Are two triggers triggering off the same action better than one trigger with choices in the flow step?

Even this morning I saw someone suggest on the discussion forums that someone consolidate two identical triggers into one single campaign. I think this is a pretty common viewpoint among Marketo users, even myself. But is it always the best choice? In this particular example, I had several filters on the smart list in addition to the triggers. I ran a test of this variation against a variation in which I moved the qualification criteria into the flow step and combined the two campaigns into one campaign, but using choices and referencing smart lists containing the filters.

Variation A (criteria in SL)

  • Average run time of campaign A: .1557 sec per lead
  • Average run time of campaign B: .2115 sec per lead
  • Summed total processing time for 20,000 records: 7,500 sec

Variation B (criteria in flow with choices)

  • Average run time of combined campaign: .3539 sec per lead
  • Summed total processing time for 20,000 records: 7,077 sec

So, as you can see, the difference is relatively minimal. However, since in Variation A, I can be running two campaigns simultaneously, the total time to complete could be slightly lower. As you add additional flow steps with more choices, however, the performance of Variation A pulls away from the performance of Variation B.

Question 2: If I have shared criteria across multiple campaigns and want to move them into a smart list to make it easier to manage, how much efficiency gain do I lose?

Often times when we're constantly repeating the same criteria over and over again, it can be tempting to pull that criteria into a central smart list to make it easier if we have to update it. But as most Marketo users know, Member of Smart List references do add a little more performance overhead. Is it still worth it? How much performance do we lose? I took the criteria from variation A and moved all of the shared components into a central smart list to test this out. (Note by this point I was doing tests on batches, not triggers, so my baseline comparison will be different from Question 1).

Variation A (criteria in smart campaign)

  • Average run time of campaign A: .2928 sec per lead
  • Average run time of campaign B: .1230 sec per lead
  • Summed total processing time for 20,000 records: 2,394 sec

Variation B (criteria in separate smart list)

  • Average run time of campaign A: .1122 sec per lead
  • Average run time of campaign B: .1385 sec per lead
  • Summed total processing time for 20,000 records: 2,471 sec

As you can see, the additional cost for moving the smart list criteria out into a central smart list was relatively small, so this may be worth doing in cases where you have complex criteria being used over and over and you want to maintain central management.

I'll share some more tests in a few days when I have a little more time to write them up.

2182
6
6 Comments
Grégoire_Miche2
Level 10

Hi Kristen,

This is really great.

Would you ne so kind to post some screenshots for the various smart lists you have been using ?

-Greg

SanfordWhiteman
Level 10 - Community Moderator

I'd be curious about the different types of actions and how they are affected as well.

For example, it's impossible that two actions that update a lead record could be completed simultaneously. Even if you get acknowledgment from the SC that the update is complete, the updates need to be serialized and the database might not be updated until some ms later if delayed/queued updates are used.  Therefore, the true time-to-completion isn't the time to execute both SC.  On the other hand, when simultaneous updates can actually be performed (updating different parts of the database or performing non-logged actions or whatever) you would get truly concurrent execution.

Anonymous
Not applicable

I can't really post the exact screenshots I've been using; it's got some client-specific stuff in there. I might replicate some of them in a more generic way if I get some time.

Anonymous
Not applicable

I don't think that's a big issue in the testing I've been doing. The campaigns that are running simultaneously impact different groups of leads. Each lead is only going through a set of campaigns in order, not multiple at a time. In this example, the simultaneous nature is really about splitting the 20,000 records into the 10K that met Interest Area 1 and the 10k that met Interest Area 2 and running them through separate campaigns as opposed to passing them through the same campaign and using choices in the flow to then split them out.

Anonymous
Not applicable

"Are two triggers triggering off the same action better than one trigger with choices in the flow step?" is a great question.

Thanks for doing that test. Besides the performance, seems like that's a matter of preference to which one to use. I tend to use the single campaign to try to centralize triggers....sometimes. As another option, I sometimes use Request Campaign for ease of management but I know it hurts performance. That's another interesting test for another day.

SanfordWhiteman
Level 10 - Community Moderator

OK, that's good to know.  I think when the same lead triggers multiple campaigns, there's unlikely to be an advantage.