Last week, we introduced you to our new article series: the Ladder 2017 Marketing Plan. We started with an audit of our PPC campaigns.
Before we dive any deeper into the performance of our existing activity and start making and testing recommendations, we need to know if we can trust our data. For that, we’ve done a rigorous audit of our analytics and tracking setup.
Throughout this post, we’ll be referring back to our detailed Event Tracking Setup Guide. A lot of what goes on in our audit below is informed by how we set up event tracking. If you’re ever confused about something below, either check out that post or give me a shout!
Side note: This is an audit of a marketing agency’s analytics setup – some examples won’t work for your business, but the overall guide should give you a good idea for how to audit your analytics setup.
I don’t think I’ve ever encountered a company that was fully satisfied with their analytics setup.
Analytics is full of complex problems with imperfect solutions, and even when you’ve got it half right, the goalposts end up moving as you evolve your product and marketing activity.
The good news is that we can find most of the issues relatively quickly, just by methodically running through the basics of what we expect to see.
Note: this is going to be a basic run through to check we’ve got the minimum infrastructure needed to start running marketing experiments and be confident in the results.
If you are struggling understanding some of these concepts and want a more in depth guide, I recommend checking out our event tracking post.
Throughout the post we recommend specific tools in the Ladder marketing stack; there are plenty of good alternatives, but these are the tools that we use ourselves.
Here’s the checklist of what we’re going to run through:
Let’s get started:
This one’s easy; even if we don’t have access to Google Tag Manager, or a client isn’t using it, we can still see if it’s running on the domain using a chrome extension called Ghostery.
If we install then visit https://ladder.io/, we can see that there are a number of tracking tags loaded.
Pro tip – use this to spy on your competitors and figure out what tools they’re using!
This tells us quite a bit about how ready our site is to start tracking performance and testing marketing. Let’s run through the different tools we can see here:
Google Analytics is on the site, so we can at the very least see what users came from different channels, how much time they spent on the site and what pages they visited.
We have SumoMe on the site, which has a number of powerful tools for growing your email list; a number of the best performing tactics in the Ladder database are enabled by SumoMe.
We also have Hotjar; that gives us the ability to record user sessions (actually see where they scrolled; creepy!) as well as see heatmaps of where the user clicked.
The Facebook custom audience is also a welcome sight; this allows us to start running retargeting ads, which tend to be high performing.
Hubspot showing up usually means that’s what we use for a CRM, which is a good sign – we’ll check later whether we’re linking our marketing to sales effectively.
Optimizely is a big one as it gives us control to easily A/B test new website variations on the fly without needing to use developer resources or code anything ourselves.
Most importantly, we have Google Tag Manager installed.
This is the most important thing to see as we can use it to install any of the other tools we’ve just talked about (or anything else we want to add), with no coding or developers.
This is a great start. We have all the proper tracking tags in place to allow us to gather visitor data and funnel it into any sales, marketing, testing, or analytics tool we’d need. From here, it’s what we do to actually funnel that data that makes these tools critical for Ladder.
Let’s see if we got that bit right:
To find out a bit more information about our Tag Manager and Analytics setup, we need to download Google Tag Assistant. For good measure we should also get the Facebook Pixel Helper, so we can check that’s installed correctly at the same time.
Enable the tag assistant and hit record, ticking the ‘follow recording links across tabs’ option, then refresh the page. Now we can see which profile ID is loading; we can look this up later and make sure we’ve been given access to the right account.
If we click into Google Tag Manager, we can see that the Google Analytics tracking code is installed via Tag Manager; a good sign that whomever installed it knew what they were doing.
We can also pop open the Facebook Pixel Helper at this stage and check we’ve got access to the right Facebook pixel, as well as spot any issues with load time.
All looks good here. This is the standard implementation of a Facebook pixel – it shows up on every page and logs a ‘Pageview’.
From here, it’s pretty clear what our main conversion event is — the email signup form on the homepage.
Let’s fill it in and see what happens.
Now let’s look and see if our pixels fired.
Success; we fired an AdWords conversion pixel! We can click in to see the ID / value and debug.
Only a small warning about not having the value in standard currency, but since the value is zero, it’s no biggie. It’s also good to see we implemented this pixel via Google Tag Manager.
It’s also important that Google Analytics knows about this conversion event; let’s check it out.
Ok, so I can see there is an ‘Events’ section, let’s click that.
Awesome – that’s our event. When we’re looking for this later in Google Analytics, that’s what it will be called, so take note. If we click the arrow on the top right, we can see that it also recorded another conversion;
Hmmmm – we should make sure later when we look at the account that we’re not double counting events here.
It’s always tricky to set up event tracking properly, and double-counting is a major potential pitfall. Keep an eye on your conversions to make sure you’ve set your events up to only track once per conversion.
We should also take the time to check Facebook while we’re here.
Awesome – we fired the ‘Lead’ event. If we had fired something more complex or custom, we’d see the attributes here as well, but this one is pretty straightforward.
For example, what if I clicked the ‘Schedule Your Growth Chat’; what does that do?
It takes me to this page… but no additional conversions; this is something we should look to fix. It’s not easy to see in the normal viewer, but we can see this didn’t fire anything additional, by clicking on ‘track recordings’.
Now we know the process, we can now go through every other ‘conversion’ on the site, and see if we’re tracking it correctly using exactly the same process. For example this free demo.
Clicking it pops open a different lead window than what we saw before.
However clicking that button doesn’t record any events, not even a new pageview.
That’s because clicking that button fires an interstitial/modal; it’s not actually loading a new page. So how do we actually record that event in GTM?
With a custom event.
There are two ways to do this. The first, and most reliable way, is to get your developer to add custom event code (learn more here). Something like this:
'eventCategory' : Lead,
'eventAction' : Show,
'eventLabel' : Contact-Us-Form,
'event' : ‘lead-form-show’
In fact, this is exactly how the lead submission event from earlier was fired. If we fill in and then submit this form we can see this in action again.
Note that before the Label was ‘Landing-Page-Form’ and this time it showed ‘Contact-Us-Form’; this means we can differentiate between signups on the hero call to action vs signups via this demo button in Google Analytics.
If we add that ‘show’ code, we can then compare the percentage of people who saw the form but didn’t complete. We could even build a retargeting audience of these people for the Google Display Network or Facebook.
We could also use this conversion as a ‘leading indicator metric’. Because many more people will click the button than actually fill in the form, and clicking the button indicates intent to convert, we could optimize to the button click and have more data with which to make decisions.
Now we know the process for checking what we’re tracking – our job from here is to just go through each interaction on the website and see what else is tracked or missing.
Because the Ladder website is relatively simple, there weren’t many other interactions worthy of tracking, but you might find more if you’re dealing with a more complex conversion journey.
Before we move on to the next section, let’s walk through how to repeat this process using Google Tag Manager’s preview mode. We go into much more detail in our event tracking post, but it will be useful to cover it briefly here.
Once you log into Google Tag Manager, navigate to the right account, then click the dropdown next to the Publish button. There you’ll see the option to enter Preview mode.
There we go – we’re seeing all the tags we saw earlier using Ghostery. Except this time we can learn more information. We can see the actual code being fired.
After triggering an event, we can also see the details of the events, just like we could with the Google Tag Assistant.
Finally, if we want to make sure the tag is actually working, we can log into Google Analytics and see if work in the Real Time > Events Section.
Now that we’ve checked everything seems to be in working order from an analytics and conversion tracking point of view, we’ll want to take a look in Google Analytics and make sure the numbers make sense to us.
Don’t fall into the trap of thinking you’ve set up everything the right way after the last two steps – double-checking actual data in Google Analytics will help you spot errors and mistakes.
First I like to look at location; that way we can check we’re driving traffic from the markets we actually serve. If we aren’t, it could indicate something is going seriously wrong.
All looks ok here; we’re based in New York and London, and San Francisco is the startup capital of the World, so it all makes sense.
Did you see the part where it says ‘Goal 1’ in the previous screenshot? Let’s check if there is more than 1 goal being recorded here.
Ah right, from our tracking audit we saw that we had two different events; one labelled ‘landing-page’ and another called ‘contact-us’.
We also saw that we had SumoMe on the website, capturing emails for our newsletter. Finally, we know that Ladder has a product called the ‘Planner,’ so that’s self-explanatory.
If we click into Admin > Goals, we can take a look to see how they’re set up.
Let’s take a look at the ‘Hero Form Submission’ conversion we were reporting on earlier.
Ah ok; it’s looking for a specific event firing; the event we found that fired when the hero form email submission happened.
To see a type of goal that doesn’t rely on an event firing, but instead fires on a specific page, let’s check out the SheWorx PR Goodie goal.
As always, if you aren’t understanding this, just check out our event tracking post.
Now we’ll look at our share of Mobile traffic; is it significant, and does our site work on mobile?
Hmmm, this absolutely leaves something to be desired. There will always be a difference in performance, but with 40% of our traffic converting at a 76% lower rate, we’re leaving a ton of money on the table. We should check this out during out UX teardown to see what we can improve.
How about new users vs returning traffic; how does that work out for us?
Our conversion rate is lower on the second visit, which makes sense; a lot of people who signed up the first time won’t need to sign up the second time. Interesting that 25% of our leads are from people on the second or more visit.
We should also take a quick look at what pages are driving traffic. This gives us a good idea of where we should focus our efforts in terms of UX and conversion testing.
It looks like the majority of traffic is on the homepage, and a significant amount also goes to a page called /playbook. This looks like the source of a lot of the Product Hunt traffic, as we can see the additional parameter product hunt adds to the URL there.
Ok, pretty interesting; we’re getting on average 400-500 visitors a day, which works out at 10,000 sessions a month. We’re getting 1.69 pages viewed per session, and users are sticking around for 2 minutes on average; both are pretty good, particularly for a website where most of the info is on one page.
We can see that at the end of August and beginning of September we had a couple of huge spikes; we definitely want to check those out. Because these spikes probably came from some specific marketing campaign, we should look in Acquisition > All Traffic > Source/Medium.
Here we can see a bunch of important data. For a start, we can see that most of our traffic comes from facebook / prospecting-ll; that must be our Facebook Lookalike campaign. We also see a bunch of traffic from our blog, from Google (both cpc and organic) and Product Hunt.
We can see that each channel performs completely differently from each other. Facebook and Product Hunt both have around 0.3% conversion rate, whereas AdWords and Organic Google traffic is up past 4-5%! Direct traffic and traffic from the blog both convert at ~2%.
If we didn’t know there were huge differences in traffic conversion by channel, we’d be potentially overinvesting in the wrong channels; that’s why it’s so important to track performance in Google Analytics.
Now to see which of those channels drove the traffic spikes, we just have to click the small checkboxes on the left of the channel name, and press ‘plot rows’, next to the ‘secondary dimension’ button.
If we hover over the line where the spike is, we can easily see which channels made up the traffic on that day. The first spike seems to be down to Product Hunt, whereas the second came from the blog. If we want to know a little bit more about what happened here, we can click on ‘blog / content’ to filter down.
By dragging in a secondary dimension of ‘campaign’, we can see that it was the business-idea post that drove this traffic. We can also see how other blog posts performed; for example the marketing-stack post seems to have an extremely high conversion rate.
Note that we can only see this information because we have sensible utm naming conventions.
As we’ve discussed at length in our UTM tracking post, it’s really a case of garbage in, garbage out when it comes to your naming conventions.
If we didn’t have the name of the blog post in the UTM_Campaign of the traffic we send from our blog, we wouldn’t know which ones were working best.
To check just our marketing campaigns, we need a filter. Organic traffic will never have a value set for utm_campaign, so we can find all our marketing campaigns by excluding that traffic.
Now if we bring in a secondary dimension of ‘campaign’ into our source / medium report, we can see performance by each of our intentional marketing campaigns only.
Looks like our naming convention is pretty simple. Up until now that has probably served pretty well. Now that we’re getting more serious with marketing, we probably want to evolve it slightly to an ID model.
We should be indicating the test we’re running “T-1”, the audience “-a1”, and the creative “-c1”, bringing it together as “T-1-a1-c1”. We’ll use that with all the new tests we run within our plan.
Note; although we filtered out ‘(not set)’ it’s still showing up. Based on my research, I believe this is just the aggregated view of any utm_campaigns that were too small in traffic to show.
Marketing runs brand awareness campaigns or maybe even runs paid marketing to drive leads, but has no idea what happens to those leads after they sign up. Sales has a pipeline of leads to close, but has no context on where they come from. It’s a common pain point.
The good news is we can fix this relatively simply; by pushing our UTM parameters into the CRM record for the lead that signs up. If you send your developer this link, you should be able to get this set up yourself.
We then push that information through to Zapier, where we can take it and push it into Mailchimp, Hubspot, and any other platform we wish.
Regardless of whether you use Zapier or what your business does here to capture this information, just make sure that you can see the utm data in your CRM, and you’re all good.
Then when the deal finally closes, you can look back and see what marketing campaign was responsible for the lead. You could even set up more automation with Zapier to push those closed leads and their utm parameters into Google sheets for your marketing team to report on.
I hope this has been helpful. The end conclusion for Ladder is this: our setup is actually pretty professional, which is highly unusual. Most companies we start to work with haven’t yet had the time to plug all these gaps.
At the same time, it makes sense that we’re in a good spot with analytics – we set up so many accounts each month for clients that we absolutely should be getting it right for ourselves.
So don’t worry if you feel like you’re starting from scratch. This post and our event tracking post should help you get set up efficiently.
Is your analytics setup an unmanageable mess? We can help
Sign up to our newsletter to stay up to date with all the latest movements in the field.
Get Facebook ad support & answers via our ultimate Facebook FAQ guide – covering ad sizes, approvals, spending, strategy, settings, culture, polit...Read More →
See the marketing plan template that drives our success. This marketing plan example covers strategy, testing, analytics, performance, budgeting, and ...Read More →
Promote a social post to get cheap visits to a website and capture emails. High quality social posts can be targeted to reach specific audiences based on interests, shopping habits, browsing habits, and more. Publish a post on a social network and use their native advertising too...
Place your call to action form or button on the right side of your landing page to increase activation. Focusing on the right side of your landing page rather than the center, especially when the form remains visible while scrolling down the page, keeps registration forms and CTA...