Tracking website A/B tests into Marketo & CRM

Level 2

Tracking website A/B tests into Marketo & CRM

Recently we have been using Google Optimize to test pages on our website. Some pages get dramatic full facelifts for their tests, on others we change some subtle text or color or design elements.

In Optimize, it is easy to track things like button clicks, form fills, and goals met – we just use Google Analytics events and goals, and the reporting is automatic.

However, we wanted to be able to track these these test groups/cohorts further down the funnel. For example - did leads who saw Homepage A end up turning into paying customers faster than Homepage B? If a user saw Pricing Page A would they be more likely to talk to a sales rep than those who saw Pricing Page B?

Our first attempt at recording A/B data for each lead was pretty simple and seemed to make sense - we created a field in Salesforce/Marketo, called Marketing_Test_Variant. On each of our forms this was included a hidden field. Then inside the script for a test, we would assign a cookie like "marketing_testing_variant", inject a meaningful ID like "homepage_test_january2019_version_a" or "homepage_test_january2019_version_b", and then set up our embedded forms to automatically fill the hidden field if that cookie was present.

After awhile we realized that this posed a couple problems:

  1. To run multiple tests at once (say, A/B testing the homepage and also A/B testing our signup page) we would need to add a new field every time in both Marketo and Salesforce. Not ideal, I don't love creating fields all willy-nilly. We'd end up with Marketing_Test_Variant_2, Marketing_Test_Variant_3, etc. Yuck.
  2. If our goal was to track customer performance long after the A/B test had ended, we would be shooting ourselves in the foot, because with each new test we would be updating the value of that field, and losing the old info.

This morning I think I've hit on a solution that is much more elegant - using Marketo Munchkin to push virtual link clicks, with an identifier for each test and variant. So instead of using hidden fields, we could add the following snippet of code to the script of a test:

Munchkin.munchkinFunction('clickLink', {  href: '/track_event/ab_tests/homepage_test_january2019_version_b' })

Just a throwaway example but you get the idea. The data gets stored, we can search for it later, and it will never be overwritten. We should still be able to do analysis several weeks or months down the road, after the test has ended, and even if the user has been exposed to multiple other tests.

So - does this technique make sense? Is there a simpler way to do this that I am missing? Are there limitations that I am not aware of – for example does Web Activity Log ever get cleared? Thoughts?

Level 7

Re: Tracking website A/B tests into Marketo & CRM

Hi Will,

I've had a similar need in the past when running tests in Optimizely. I did a virtual 'Webpage View' rather than click but same concept- pushing an event and attributes via javascript and then using the data in Marketo. You could use a smartlist to find the audiences or use a campaign to change add to a list etc. Depending on your setup you could potentially use programs to track each experiment as well.

Unless you're extracting data out of the system, you'll have to keep the retention policy for activities in mind:

Marketo Activities Data Retention Policy - Under the Hood

Hope it helps!

Level 2

Re: Tracking website A/B tests into Marketo & CRM

Hi Mark Price​ -

Very helpful - thank you! Glad to hear someone else has successfully used this technique.

Per those docs, Click Link on Webpage activities get thrown out after 90 days. But adding them to lists as they come in will enable us to check in on them later. Perfect!

Thank you for your reply & insight.