What's the best Salesforce campaign hierarchy for paid media, with parent campaigns by channel and child campaigns for each ad platform?
Salesforce allows up to five levels and doesn't prescribe a structure. We suggest Paid Media, then channel, then ad platform, then one campaign per ad campaign. Put campaign members, Primary Campaign Source and Actual Cost on that bottom level, and the "in Hierarchy" fields add them up for every parent. To turn it on, an admin adds the Parent Campaign field to the campaign page layout. Pipeline totals count deals through Primary Campaign Source, not multi-touch credit (with Customizable Campaign Influence, only when that model is the default). Every campaign in one hierarchy must use the same currency.
As of November 2026.
Before you start
- Edition. Campaign hierarchies work in Professional, Enterprise, Performance, Unlimited and Developer Editions, in Lightning Experience and Salesforce Classic.
- Permissions. An admin with Customize Application sets it up. To build hierarchies, users need Create on campaigns and Marketing User checked on their user record. To view one, they need Read on campaigns and on the Parent Campaign field. Adding or removing columns on the hierarchy list takes Modify All Data.
- One currency per hierarchy. If you run ads in more than one currency, plan one hierarchy per currency.
- A way to get ad leads into campaigns. A hierarchy only adds up what's already in each campaign. Your UTM fields, hidden form fields or lead sync must put each lead into the right bottom-level campaign. See Why are the UTM fields blank on my Salesforce leads from Google and LinkedIn ads, and how do I capture them?
Step 1: Let users build hierarchies
- In Object Manager, find and select Campaign.
- Select Fields & Relationships, then Parent Campaign.
- Click Set Field-Level Security, choose who can see the field, and save.
- Select Page Layouts and add the Parent Campaign field to your campaign page layout.
- To show the parent and child campaigns on each campaign record, add the Campaign Hierarchies related list to the layout too.
Step 2: Plan your levels
Salesforce says you can build a hierarchy around "marketing channels, fiscal periods, long-term projects" or other factors. It doesn't prescribe one structure. For paid media, we suggest this layout, which uses four levels and keeps the fifth spare:
| Level | Example names | What goes here |
|---|---|---|
| 1 | Paid Media FY27 | Nothing directly. It shows the totals for all paid media |
| 2 | Paid Social, Paid Search | Channel totals |
| 3 | Paid Social / LinkedIn, Paid Social / Meta, Paid Search / Google, Paid Search / Microsoft | Platform totals |
| 4 | LinkedIn / Demo request / IT directors / Q4 | One per ad campaign: the campaign members, the deals that name it as Primary Campaign Source, and its spend |
| 5 | Spare | Use only if you really need ad set or ad group detail |
Two choices to make:
- Year at the top, or not. A year level makes it easy to compare one year with the next, but you rebuild the tree each year. If your ad campaigns run all year, drop the year level and put the quarter in the bottom-level names instead.
- How deep to go. Ad set or ad group campaigns give you more rows, but each one needs its own members and spend, and your lead routing has to know about it. One Salesforce campaign per ad campaign is enough for most B2B teams.
Step 3: Set the Type field and a level field
Salesforce's Type field is a picklist your admin defines, and each value can be up to 40 characters. Add values such as Paid Social and Paid Search, and set Type on every campaign in the tree. Reports can then filter by channel even across separate hierarchies.
Salesforce's campaign reports help also suggests a custom picklist that records each campaign's hierarchy level. With it, you can summarize data at any level, such as all platform campaigns, across every hierarchy.
Step 4: Name campaigns so they match your ads
Salesforce has no naming rule, so pick one that matches your ad platforms. A pattern such as Platform / Offer / Audience / Quarter, using the same name as the LinkedIn or Google campaign or the same value as your utm_campaign, lets a flow match incoming leads to the right Salesforce campaign. Keep names unique, and don't rename a campaign once UTMs point at it.
Step 5: Create the campaigns from the top down
Create the parent campaign first, then each child, and set the child's Parent Campaign field to its parent. To check your work, open any campaign and click View Campaign Hierarchy. A hierarchy supports up to five levels.
Step 6: Put leads, deals and spend on the bottom level
- Campaign members. Add each lead to the bottom-level campaign for the ad that brought them in. The parents then count those leads, responses and converted leads in their "in Hierarchy" totals.
- Primary Campaign Source. The pipeline totals depend on this opportunity field. When a lead converts, Salesforce fills it in for you, but two of its help pages disagree on which campaign it picks when a lead belongs to several. The lead conversion mapping page says the most recently associated campaign. The Opportunity Fields page says the campaign with the most recently updated member status. Check new deals and fix the field when it names the wrong campaign.
- Actual Cost and Budgeted Cost. Salesforce defines Actual Cost as the "amount of money spent to run the campaign," and its Account Engagement ROI guide says to "fill out the Actual Cost field when the campaign is completed." Enter or import your ad spend on each bottom-level campaign, and put each cost on one level only so you can trust the totals.
Step 7: Read the totals
Each campaign field has an "in Hierarchy" twin that totals the campaign and everything below it:
| Field on each campaign | Total on the parent |
|---|---|
| Actual Cost | Total Actual Cost in Hierarchy |
| Budgeted Cost | Total Budgeted Cost in Hierarchy |
| Leads | Total Leads in Hierarchy (includes converted leads) |
| Responses | Total Responses in Hierarchy |
| Converted Leads | Total Converted Leads in Hierarchy |
| Opportunities | Total Opportunities in Hierarchy |
| Value Opportunities | Total Value Opportunities in Hierarchy (all deals, won ones included) |
| Won Opportunities | Total Won Opportunities in Hierarchy |
| Value Won Opportunities | Total Value Won Opportunities in Hierarchy |
Add the ones you want as columns on the Campaign Hierarchies related list. In reports, the Campaign Detail custom report and the Campaign ROI Analysis report can include hierarchy statistics, which give "aggregate values for a parent campaign and all the campaigns below it." Salesforce calculates ROI as Value Won Opportunities minus Actual Cost, divided by Actual Cost. The parent totals include every child campaign, whatever the viewer's sharing settings.
Do the "in Hierarchy" fields roll up pipeline from child ad campaigns? Yes, with one condition. Value Won Opportunities counts deals where the campaign is the Primary Campaign Source, and the hierarchy fields add those up. If you use Customizable Campaign Influence, Salesforce says deals set through Primary Campaign Source appear in campaign statistics only when the Primary Campaign Source model is the default. With another default model, the statistics show only deals added by auto-association. Either way, the hierarchy fields don't split credit across several ad touches. For that, use Campaign Influence: see How do I set up Salesforce Campaign Influence so my LinkedIn and Google ads get credit for pipeline?
Common problems
| Problem | Why it happens | Fix |
|---|---|---|
| "in Hierarchy" columns are blank for some users | They lack field-level security on the "in Hierarchy" fields | In Setup, enter Field Accessibility in Quick Find, choose Campaign, view by profile, and set those fields to Visible or Read-Only |
| A parent campaign shows no pipeline | Deals have no Primary Campaign Source, it names a campaign outside the tree, or another influence model is the default | Fill in Primary Campaign Source and check which influence model is the default |
| You can't add another level | A hierarchy supports up to five levels | Drop the year level, and use Type and a level picklist instead |
| Pipeline totals look wrong across regions | A hierarchy supports only one currency | Build one hierarchy per currency |
| A validation rule or workflow can't use a hierarchy total | These calculated fields can't be referenced in workflow rules, validation rules, field updates or approval processes | Use a custom formula field, which can reference them, or a report |
| Users can't set Parent Campaign | The field is hidden by field-level security or missing from the layout | Repeat Step 1 for their profile |
| The mobile app shows only child campaigns | On mobile, the Campaign Hierarchy related list on a parent shows only its children | Use the desktop site to see the whole tree |
Sources
- Understand Campaign Hierarchy (Salesforce Help), checked November 1, 2026
- Create a Campaign Hierarchy (Salesforce Help), checked November 1, 2026
- Allow Users to Create Campaign Hierarchies (Salesforce Help), checked November 1, 2026
- Campaign Fields (Salesforce Help), checked November 1, 2026
- Added Fields on the Salesforce 'Campaign Hierarchy' Related List Not Visible to Users With Access (Salesforce Help, October 2026), checked November 1, 2026
- Campaign Reports (Salesforce Help), checked November 1, 2026
- How can I calculate the ROI for my campaigns? (Salesforce Help), checked November 1, 2026
- Using Account Engagement and Salesforce Campaigns to Report on ROI (Salesforce Help, September 2025), checked November 1, 2026
- How Customizable Campaign Influence Works (Salesforce Help), checked November 1, 2026
- Lead Conversion Field Mapping (Salesforce Help), checked November 1, 2026
- Opportunity Fields (Salesforce Help), checked November 1, 2026
- Considerations for Using Campaigns (Salesforce Help), checked November 1, 2026