We had an excellent question in our MasterOps Community recently:
What are the best practices for campaign structure? Is there a gold standard for campaign hierarchies?
Of course, businesses will need to cater best practices to their business processes, but there are a lot of campaign configuration changes that can form a foundation for better marketing reports.
What’s a Campaign?
Before we dig into all of the ways you can slice and dice campaigns, let’s spell out what a campaign record should represent:
A group of leads and contacts who are exposed to a specific marketing communication.
The individual leads and contacts are each captured in a record called a campaign member. This child record is where we record how the contact or lead engaged with the campaign. For example, in an email campaign, a person may Receive, Open, Click, Unsubscribe, or Reply.
Sometimes we have an initiative that has multiple messages a lead or contact can interact with. We would separate campaigns by the different messages.
For example, let’s say we’re offering a free trial. To promote the free trial, we’re emailing our targets, driving traffic to one landing page through paid search, driving traffic to a different landing page through retargeting, and setting up a chatbot to engage people who haven’t filled out the form but have been on a general page (used for social traffic, direct traffic, and organic traffic) for an allotted period of time.
We would create a campaign for each email, each landing page, the main page, and the chatbot to capture demo requests. For the general page, we’ll leverage a different field called channel to capture UTM sources on the campaign member level.
Think Categories, Not Hierarchies
We’ve worked with companies that have created complex campaign hierarchies to help categorize their campaigns. Unfortunately, relating one record to another as a parent isn’t always the best way to aggregate information from a reporting standpoint, especially if there are multiple layers and inconsistencies in how the parent field is used.
It’s helpful to think of a field as having one utility. If you’re trying to squeeze multiple utilities into a single field, it’s too complicated for most reporting engines. For example, if you’re using the parent field to indicate two campaigns are related to a program or initiative and you’re using a topline parent to indicate the campaign type, you’ve muddled the meaning of the parent field. If you’re using a field to lookup to other campaigns, give it one purpose (such as linking multiple sub-campaigns to a single initiative or ad group).
A valid Campaign Hierarchy may look something like this (these are campaign names):
2021 Free Trial Campaign is the parent campaign, and each subsequent campaign is a child. We keep the naming convention consistent, but we would have additional fields on each individual campaign to track what the campaign type is and other specifics (more on that in a minute).
We don’t recommend creating a hierarchy like this because it is trying to indicate both initiative and type using a single field:
Adding multiple layers in a hierarchy means that you’re adding one more data layer for reports to navigate, which most systems don’t handle well. Instead, use hierarchies sparingly and think of larger ways to group campaigns by a single attribute.
Best Practice Categories
Let’s talk about some of the useful ways to aggregate and analyze campaigns.
Campaign types are the mechanism by which the marketing message was delivered. We recommend creating a picklist on the campaign object, making the field required, and allowing users to select a single value per campaign. If they want to use more than one value (say, Email and Demo Signup), it’s a big flag they should create more than one campaign.
We recommend creating as few campaign types as possible. This requires thinking about which delivery mechanisms you would like to separate to gauge different conversion rates and performance.
For example, we could create a type of “paid advertising”, but we’re probably going to be asked how paid social ads differ from paid search, which differs from retargeting. We expect these to convert at different rates and have different costs per lead, plus we’re using different tools/products for each category. This tells us we should create a campaign type for each of these subsets.
Here are the campaign types we recommend (although we often customize this list for customers):
- Account Based (ABM)
- Content Download
- Content Syndication
- Demo Signup
- Direct Mail
- Operational (designates campaigns not intended to generate Attribution/ROI)
- Paid Display
- Paid Search
- Paid Social
- Sales Outreach
- Referral Program
- Webinar/Virtual Event
- Website Content
This may seem like a repeat of campaign type, especially since marketers think of different tools or mechanisms as channels. “Channel” in this case is more nuanced.
Campaign type is a literal designation for the kind of mechanism delivering the marketing message at the point a prospect takes an action (hand raise) and is collected at the campaign level. For example, we may use Content Download for a piece of gated content, regardless of whether a paid search ad, email, or organic Google search delivered the person to the form.
Channel, on the other hand, is the mechanism that drove the person to the page before they took an action. It’s the compelling step prior to the hand raise.
Think of UTM parameters when you think of channel. When someone fills out a form, systems should be configured to snapshot the UTM parameters in the user’s URL string. The campaign is still “Content Download” but the channel could be Email, Paid Social, or Retargeting. Because of this potential variety of sources, we capture the channel at the campaign member level.
Here are the channels we recommend (although we frequently customize this list for customers):
- Direct: No page referrer, UTMs, or campaign ids found in the URL.
- Direct-Influenced: A person outside our company referred a visitor to a webpage.
- Direct-Revisit: A “Direct” visit that occurs after an initial engagement.
- Display Ads: UTMs tied to Google Display Ads.
- Email: UTMs have “email” or visits is linked to a marketing automation email click.
- Event: Tradeshows and webinars are the “first engagement” of a visit.
- Organic Search: Has a page referrer of Bing or Google.
- Organic Social: Has a UTM or page referrer of Facebook or LinkedIn, but no campaign id.
- Other: Has UTMs, but do not match to a channel or campaign.
- Outbound Sales: First touch is a sales email. Or an opp is created with no touches.
- Paid Search: UTMs tied to Google Search Ads.
- Paid Social: UTMs tied to paid social advertisements such as LinkedIn.
- Referral: A internal employee refers a lead and adds a contact to a “Referral” campaign.
- Syndication: A UTM linked to a content syndication referral.
Programs should be used when your team wants to see the total impact of a collective effort. We often see programs indicated as campaign lookups or the parent campaign field.
Examples of programs are large marketing initiatives (such as the free trial example we gave above) or advertising groups. For example, if you have a long-running family of paid search campaigns, this would be a great way to capture the effectiveness of different iterations of the same campaign and report on the total results from that strategy.
If I have a running multi-touch attribution ad group, I may have a campaign hierarchy set up like the following:
- Multi-Touch Attribution Google Ads
- 03.2021 GA: High tech demographic
- 04.2021 GA: Marketing analyst persona demographic
- 05.2021 GA: Marketing analyst + high tech ad
People who have worked with UTM parameters know that naming conventions matter! Google analytics views the world as case sensitive, so if team members have used email, Email, EMail, and EMAIL in their UTM string, this will show up as four different Campaign Mediums. This means your reports don’t sum up properly and are spread across multiple mediums.
The most important thing about naming conventions is consistency. Pick some rules, roll them out to the team, and create reports to help you monitor who isn’t following the rules so the name can be fixed while someone still has a good idea of what the campaign was all about.
Personally, I like the campaign name to contain the month and year the campaign kicked off, an abbreviation for the type, and a unique description. It doesn’t have to be super detailed because I’ll use the description to fill in the blanks, but I want to know if the campaign has the right campaign type value and campaign member response codes just by looking at the campaign name.
If I’m creating a campaign for forms that are semi-permanent, like a “Contact Us” form, I still use the date the form first went live in the title. This helps me differentiate the versions and see which version worked best so I can use the same format on different forms throughout the website (if appropriate).
- 01.2019 DS: Contact Us
- 03.2021 DS: Contact Us
My team uses the initials of the campaign type, so I know that if I select the second campaign, this will show me the results for a Demo Signup (DS) form on the Contact Us page that kicked off on March 2021.
Best of luck on your data journey and let us know if we can help!