Campaign groupings: How to structure your campaigns so your Paramark data works harder

Last updated: September 29, 2026

As part of getting your MMM, not only is it important that we align your channels, but also that we ensure your campaign groupings are well-defined in the data, well aligned internally and with Paramark. Every channel, every breakout, and every insight your MMM produces flows from these campaign groupings. When they're clearly defined, the model is accurate and each refresh is fast. When they're not, spend ends up in the wrong bucket, channels get collapsed together, and the engineering team has to manually untangle your data before the model can run.

Getting groupings right involves four things:

  • the structure of the data you share with Paramark

  • the method you use to communicate how campaigns should be grouped

  • how your campaigns are named

  • the business decisions that determine which breakouts make sense.


1. Data structure

When Paramark ingests your campaign data, it expects a table with campaign-level rows. The columns that matter most for grouping are:

Column

What it's used for

Campaign name

The primary signal for automated grouping.

Channel / Platform

Identifies which ad platform the spend came from (Google, Meta, LinkedIn, etc.). Often embedded in the campaign name, but cleaner as a dedicated column.

Grouping label

The explicit tag for how this campaign should be bucketed in the model. When present, this takes precedence over campaign name-based matching.

Spend

The dollar amount for that campaign in that period.

Date / Period

The time dimension for the spend row.

Funnel stage

Prospecting, retargeting, conversion, brand — used when breakouts by funnel stage are part of your channel structure.

Market / Region

Required when your model includes country- or region-level splits.

Not all of these columns need to be present in your initial data share. Your Paramark Growth Advisor will walk you through exactly which are required for your specific model configuration. The important thing is that the data is structured consistently and the grouping logic is applied uniformly across campaigns.


2. Method of data sharing

Paramark needs to know how each campaign should be grouped. There are two ways to communicate that and most customers use both.

  • An explicit grouping column. The most reliable method is a dedicated column in your data share that directly tags each campaign with its intended group. This column doesn't depend on name parsing, so it works regardless of how your campaigns are named. It also gives you a single source of truth for campaign taxonomy as your account evolves — and it's especially valuable when you work with an agency, since it separates Paramark's grouping logic from the names your agency controls.

  • Campaign names. If your campaign names consistently encode the right information, Paramark can parse them automatically. A campaign named Google_Brand_Search_US is unambiguous — the channel, brand status, ad type, and market are all readable from the name. When names are consistent, grouping is automated and requires no manual intervention at each refresh.

In practice, names provide the default logic and the grouping column handles the rest: legacy campaigns, exceptions, and anything that doesn't follow the naming convention cleanly. If you can only do one, the grouping column is the more robust choice. If your campaigns already exist and renaming them isn't practical, add the column and skip the rename entirely.


3. Campaign naming

If you're building a naming convention from scratch or cleaning up an inconsistent one, the goal is to make sure each campaign name answers the questions Paramark needs to correctly assign it to a group.

Question

Why it matters

Example tags

What platform is this?

Confirms spend is attributed to the right channel

Google, Meta, LinkedIn, TikTok

Is this brand or non-brand?

Separates branded search from non-brand activity

Brand,B ,NB, NonBrand

What is the objective or funnel stage?

Splits prospecting from retargeting from conversion

Prospecting, Retargeting, TOFU, MOFU

Which market or region?

Required if your data needs country or region-level splits

US, UK, NAMER, APAC

What ad type?

Useful for separating Search, Display, and Video

Search, Display, Video, PMax

You don't need all of these in every name. The minimum that matters most, for example, is brand vs. non-brand clearly distinguishable in the name. A simple structure like [Platform]_[BrandStatus]_[Objective]_[Region] — for example, Google_NB_Search_US — is enough to make your data significantly easier to work with.

A quick sniff test for region-level campaign data

If your data includes a market or region field, one useful first check is to compare share of campaign rows to share of spend by region. You are not looking for those percentages to match perfectly. You are looking for whether the pattern is explainable by the way the business actually invests.

  • A higher spend share than row share can be totally normal. It usually means that region runs fewer but larger-budget campaigns.

  • A higher row share than spend share can also be normal. It often means that region has more campaigns, but they are smaller or more fragmented.

  • The real red flags are structural, not just numerical. Look for unexpected null regions, a region that suddenly absorbs spend after a naming or mapping change, or a split that contradicts how budgets are actually managed.

For example, if EMEA contains most of your campaign rows but North America carries a larger share of total spend, that can still pass a sniff test if North America concentrates budget into fewer, larger campaigns while EMEA runs more localized campaigns. That pattern becomes concerning only if it is new, unexplained, or inconsistent with the source-of-truth platform or warehouse data.

When a region-level split looks suspicious, check these four things before changing any model configuration:

  1. Coverage: Are all campaigns actually tagged to a valid market or region, with minimal null values?

  2. Consistency: Are region tags applied the same way across platforms, agencies, and time periods?

  3. Reconciliation: Does the regional spend split still tie back to the warehouse extract or ad platform totals?

  4. Business context: Does the spend concentration reflect how budgets are intentionally allocated across markets?

If those checks hold, an uneven row-versus-spend distribution is usually just a reflection of campaign design, not a data-quality problem.

The same logic applies when a team wants to split out a new AppInstall bucket from campaigns that previously used an internal codename. If legacy names like Neo or newer labels like Joist+ / Run all refer to the same initiative, capture that mapping explicitly in the grouping column or documented taxonomy so historical spend does not stay stranded in a broader catch-all bucket such as Facebook Other.

A few patterns consistently cause naming problems:

  • Agencies changing conventions without flagging it. If your agency manages campaign creation, they may not know that Paramark uses campaign names to group spend. A naming change that seems minor — swapping one brand tag format for another — can break the logic that powers your entire brand vs. non-brand split. Share your naming convention with your agency explicitly and include it in any agency onboarding brief.

  • Campaigns created outside the convention. New campaigns spun up quickly, without following the naming structure, often fall into catch-all buckets or get missed entirely. Include the naming convention in your campaign launch checklist.

  • Inconsistent region tags. If your data includes multiple markets and the region tag isn't applied consistently, country-level filtering may capture unintended campaigns or miss intended ones.

  • Renaming campaigns mid-flight. If you rename a campaign while it's running, historical data may no longer match your current grouping logic. When in doubt, create a new campaign and retire the old one rather than renaming.


Troubleshooting sudden spend or impression jumps after a refresh

One of the most common reasons a channel suddenly looks too large after a refresh is that the grouping logic started picking up campaigns differently than before. This often happens when campaign naming changes, when a grouping rule is broadened, or when historical rows that used to be excluded now match the grouping pattern.

If you see a jump that looks implausible — for example, branded search spend appearing to nearly double month over month without an intentional budget change — check these items first:

  • Campaign names: Did your team or agency change brand / non-brand tags, region tags, or ad type labels?

  • Grouping column values: Did any campaigns get reassigned into a different bucket?

  • Duplicate inclusion: Are two naming patterns or mapping rules now matching the same campaign set?

  • Historical remapping: Did a new rule cause older rows to be regrouped when the latest refresh ran?

  • Source-of-truth comparison: Does the warehouse extract still reconcile to the ad platform for the affected campaigns and month?

The safest long-term fix is to rely on an explicit grouping column wherever possible. Campaign names are useful automation helpers, but a dedicated grouping field reduces the risk that a small naming change will accidentally move spend into the wrong bucket or cause branded and non-brand campaigns to be blended together.

If you are managing campaigns through an agency, make sure naming conventions and grouping rules are documented and reviewed before new campaigns launch. A seemingly minor taxonomy change can create a major reporting discrepancy in downstream warehouse data and MMM refreshes.


Separating one partner or publisher out of an existing channel

A common cleanup request is: "This partner's spend is currently being lumped into a broader channel, but we want it broken out separately." For example, you may discover that one affiliate, publisher, or buying partner has been grouped under a larger reseller or network bucket, even though you want to evaluate it on its own.

Before creating the breakout, confirm four things:

  1. There is a stable identifier. You need a consistent field or naming pattern that uniquely marks the partner you want to separate, such as publisher name, campaign name, placement name, or an explicit grouping column.

  2. The split is historically consistent. If the partner only appeared briefly or naming changed over time, the breakout may be incomplete or misleading.

  3. The spend is material enough to matter. If the partner is tiny or only active for a short window, a separate breakout may add noise without adding decision value.

  4. The grouping logic has a durable home. The cleanest solution is an explicit grouping column in the source data or catalog. If the split only exists as a manual spreadsheet edit that gets overwritten every refresh, it will keep breaking.

In practice, the safest workflow is to create a dedicated grouping rule for the partner you want to isolate, place that rule above the broader catch-all bucket, and verify that the remaining rows still reconcile back to the source-of-truth totals. If the partner should permanently stand alone in reporting, document that rule in your campaign mappings or data catalog rather than relying on a one-off spreadsheet fix.


When a new app install bucket needs to be split out from older campaign aliases

Another common request is: "These campaigns used to use one codename, but they now belong in a dedicated AppInstall bucket. Can Paramark separate them cleanly?" Usually yes — but only if the identifying logic is stable enough to persist across refreshes.

This comes up when teams rename an initiative over time or use an internal codename before the final taxonomy is settled. For example, a campaign family might now be treated as AppInstall, but older campaign names may still contain a legacy marker such as Neo. In that case, the goal is not just to catch the current names — it is to make sure both the legacy alias and the current naming pattern route into the same intended bucket until the historical taxonomy is fully cleaned up.

Before creating that new bucket, confirm four things:

  1. There is a durable identifier. The cleanest option is an explicit grouping column that marks these rows as AppInstall. If you are relying on campaign names, make sure the alias or naming token is truly unique and consistently applied.

  2. The alias history is understood. List the older and newer naming patterns that should map into the bucket so historical spend does not get split between the new bucket and a catch-all bucket like Facebook Other.

  3. The rule order is correct. If a specific AppInstall pattern overlaps with a broader paid social rule, the AppInstall rule should be evaluated first so those campaigns do not get absorbed into the generic bucket.

  4. The breakout is decision-useful. A separate AppInstall bucket should reflect a real planning or reporting distinction, not just a temporary naming quirk.

A safe workflow is to define the dedicated AppInstall bucket explicitly, include any known historical aliases in the mapping logic, and then reconcile the affected period to confirm the spend moved out of the broader catch-all bucket without creating overlaps or omissions. If the naming may keep evolving, move the logic into a maintained grouping field or catalog mapping rather than depending on a single substring in the campaign name.


When to split paid social by platform or Amazon by tactic

Another common question is whether one broad channel should stay rolled up or be split into more actionable breakouts — for example, Paid Social into Meta vs. TikTok, Amazon Ads into Sponsored Products, Sponsored Brands, Sponsored Brand Video, and Display, or CTV into platform- or publisher-level lines such as YouTube CTV, LinkedIn CTV, Adobe DSP, and Roku.

A good rule of thumb for CTV is to split by platform or publisher only when the spend is material enough and the buys are managed as distinct tactics. If you are launching a dedicated retargeting program across multiple CTV platforms and expect to review performance separately for each one, that usually means each platform should have its own durable grouping label rather than being rolled into one generic CTV bucket. In practice, the cleanest setup is an explicit grouping column with values like YT_CTV_retargeting, LI_CTV_retargeting, Adobe_CTV_retargeting, and Roku_CTV_retargeting. If you rely on naming alone, make sure the platform and funnel-stage tags are both present and consistently ordered in every campaign name.

Those breakouts are usually worth creating when three things are true:

  1. You have a stable identifier in the source data. A dedicated platform, tactic, campaign-type, or grouping column is best. If not, the campaign name must encode the distinction consistently enough to parse every refresh.

  2. The spend is material enough to change decisions. If one tactic is only a tiny share of total spend, splitting it out may add noise without improving the model.

  3. The breakouts reflect real planning choices. If your team actually manages budgets separately by platform or tactic, the model should usually preserve that distinction.

For paid social, a platform-level split is often the cleanest first step because Meta and TikTok can have very different creative formats, audience behavior, and budget dynamics. For Amazon, tactic-level splits are most useful when they separate meaningfully different intents — for example, lower-funnel Sponsored Products versus more upper-funnel video or display formats.

Two guardrails matter here:

  • Do not create breakouts just because one tactic looks more efficient in one read. A very low cost per incremental result can simply mean that tactic is capturing lower-funnel demand, not that all budget should move there.

  • Keep the split durable. If the distinction only exists in a one-off spreadsheet cleanup and not in the recurring source data, the breakout will break on the next refresh.

A practical workflow is to start with the smallest split that matches how the business makes decisions, confirm that the historical data supports it, and then expand further only if the additional granularity is consistent and material. If you are unsure, ask your Growth Advisor to compare the proposed breakout against share of spend, time-in-market, and campaign naming consistency before changing the model structure.


When to break out CTV retargeting by platform in a readout

A common question is: "We are launching CTV retargeting across multiple platforms — can we separate the readout into YouTube CTV Retargeting, LinkedIn CTV Retargeting, Adobe CTV Retargeting, and Roku CTV Retargeting?"

Usually yes — but only if the split will be durable, material, and decision-useful.

That kind of breakout is usually worth adding when all four of these are true:

  1. The platform distinction is stable in the source data. Each campaign should have a reliable platform field or a consistent naming convention such as YT_CTV_Retargeting, LI_CTV_Retargeting, Adobe_CTV_Retargeting, or Roku_CTV_Retargeting.

  2. The budgets are material enough to matter. If each platform is carrying meaningful spend — for example, tens of thousands of dollars per month rather than a tiny test cell — a separate breakout is more likely to support a useful readout.

  3. The platforms represent real planning choices. If your team would actually shift budget between YouTube, LinkedIn, Adobe, and Roku based on the result, the readout should usually preserve that distinction.

  4. The definition can persist across refreshes. The split should live in a durable grouping field or a documented mapping rule, not only in a one-off spreadsheet cleanup for a single month.

If one or more of those checks fails, the safer fallback is usually to keep the readout at a broader CTV Retargeting level until the taxonomy is cleaner or the spend has more history behind it.

As a practical rule, platform-level CTV retargeting breakouts are strongest when they are mutually exclusive (every row lands in exactly one platform bucket), collectively exhaustive (all relevant CTV retargeting spend is captured), and aligned to how budget decisions are actually made. If that is true, the breakout can make the readout much more actionable without adding unnecessary modeling noise.


How to bucket awareness vs. lower-funnel campaigns from naming alone

A very common question during onboarding is: "Can we reliably separate awareness activity from lower-funnel activity just from the campaign names?" Usually yes — but only if the naming convention encodes the campaign objective clearly enough that the split is durable over time.

As a practical rule, start by looking for the part of the name that tells you what job the campaign is trying to do, not just what asset type it uses. A video campaign is not automatically upper funnel, and an app campaign is not automatically lower funnel. The decisive clue is usually the objective or lifecycle tag.

If the name includes...

Usually bucket as...

Why

reach, awareness, video_view, view

Awareness / upper funnel

These usually signal campaigns optimized for exposure rather than immediate conversion.

reengagement, retargeting, remarketing, conversion, app

Lower funnel

These tags usually indicate users who already know the brand or campaigns optimized toward action.

eligible, preapproved, broad

Context-dependent

These describe audience or targeting, not funnel stage by themselves. Pair them with the objective tag.

For example, a campaign named tabby_card_uae_eligible_video_reach_eng would usually be treated as awareness because reach is the clearest objective signal. By contrast, tabby_app_android_reengagement_uae_broad_tabby_day_en would usually be treated as lower funnel because reengagement is the decisive signal, even though both campaigns may contain video creative.

If you are struggling to draw the line, use these three checks:

  1. Optimization goal: Is the campaign trying to maximize reach/views, or drive conversions / reactivation?

  2. Audience relationship: Is this broad new-user prospecting, or is it aimed at users who already know the product?

  3. Budget decision: Would your team actually move money between these buckets as separate strategic levers?

If the naming convention does not make those answers obvious, do not force the split from names alone. Add an explicit grouping column or funnel-stage field instead. That's safer than building an awareness vs. lower-funnel taxonomy on ambiguous words that different teams or agencies may use differently.


How to handle OOH costs and bucket proposals

OOH data often arrives differently from paid social or search. Instead of tidy campaign-level rows, you may have one list with flight costs and another with the proposed buckets or markets those flights should map into. That can still work well in Paramark, but only if the mapping is stable and documented.

If you want OOH broken out in your MMM, start with four checks:

  1. Pick the bucket logic first. Decide whether the meaningful split is by market, vendor, format, product line, or another planning dimension. The best bucket is the one your team would actually use to make budget decisions later.

  2. Make sure every cost line maps to exactly one bucket. If one sheet contains OOH costs and another contains the bucket proposal, create a clear one-to-one mapping before the next refresh so the same flight is not double-counted or left uncategorized.

  3. Preserve the time window. OOH is commonly shared as a flight with start and end dates plus total cost, rather than daily campaign rows. That is fine, but the dates and totals need to stay intact so the spend lands in the right period.

  4. Keep the rule in a durable source. If the bucketing only lives in a one-off spreadsheet cleanup, it is easy for the logic to drift or get overwritten on the next update. The safest setup is a recurring source file or catalog entry that makes the OOH mapping explicit each refresh.

A good sniff test is simple: if someone new looked at the OOH cost sheet and the bucket sheet next month, would they be able to tell how every row should be grouped without asking for tribal knowledge? If not, the structure is still too fragile. Tightening that mapping early makes OOH much easier to refresh and much less likely to create confusing jumps in channel totals later.


When a new platform is added and its funnel-stage taxonomy needs to line up with existing campaign groupings

A common onboarding update is: "We just added a new platform such as TikTok to the campaign dataset, and we need to make sure its campaign taxonomy fits the way Paramark already groups the rest of our channels."

In that situation, the most important step is to make the platform label and the funnel-stage label explicit and consistent before the next refresh. If your new TikTok rows are meant to represent lower-funnel activity such as BOFU, while older campaigns from another period or initiative are tagged TOFU, those labels should be mapped deliberately rather than inferred informally from tribal knowledge.

A safe workflow is to check five things:

  1. Platform is explicit: the row should clearly identify TikTok (or the relevant platform) in a dedicated platform field or a stable campaign-name token.

  2. Funnel stage is defined consistently: decide how labels such as TOFU, MOFU, BOFU, Prospecting, Retargeting, or Conversion map into your actual MMM grouping structure.

  3. Historical exceptions are documented: if an older campaign family follows a different taxonomy than the new campaigns, capture that mapping in the grouping column or documented campaign taxonomy so historical spend does not get stranded in the wrong bucket.

  4. Business intent matches the label: do not assume every TikTok campaign is upper funnel or every video campaign is awareness. Use the actual campaign objective and audience strategy to decide whether it belongs in awareness, mid-funnel, or lower-funnel reporting.

  5. The mapping will persist across refreshes: if the classification only lives in a one-off clarification on Slack, the same issue will return later. The cleanest home is an explicit grouping field or a maintained taxonomy document.

As a practical example, if September TikTok campaigns for US Core HR are all intended to be BOFU, while February Mastermind campaigns should remain TOFU, that distinction should be reflected directly in the grouping logic rather than handled manually each time the data is refreshed. That keeps historical and current spend aligned to the same source of truth and prevents new platform data from being blended into the wrong funnel bucket.

If your team expects this kind of platform-specific taxonomy change to happen more than once, it is usually a sign that you should maintain a dedicated grouping column or taxonomy table rather than rely on campaign names alone.


When a new ad account should become its own MMM line item

Another common request is: "We already have one line item for an existing platform, and now a new ad account on another platform is coming through. Should that become its own line item too?" For example, if a team already reports Meta Web separately and a new TikTok web acquisition account is launching, it can make sense to create a dedicated TikTok Web line item rather than leave that spend blended into a broader paid social bucket.

That breakout is usually worth creating when four things are true:

  1. The account maps to a real planning distinction. The new ad account represents a channel or buying motion the team expects to evaluate separately, not just a duplicate account created for billing or administrative reasons.

  2. The identifier is stable in the source data. There is a durable account name, account ID, grouping label, or platform-specific field that will keep routing the spend into the same bucket on every refresh.

  3. The data will be material enough to read. The spend is expected to be large enough and active long enough to support a useful standalone read rather than a noisy fragment.

  4. The mapping lives somewhere durable. The split should be captured in a maintained grouping column, taxonomy table, or documented source mapping rather than a one-off Slack note.

A practical workflow is to confirm the exact account label before launch, map it explicitly to the intended MMM line item, and keep that mapping consistent from the first spend onward. If the business would actually compare or reallocate budget between Meta Web and TikTok Web, that is a strong sign the separate line items are decision-useful and should be preserved in the grouping logic.

If the new account is only temporary, tiny, or not meaningfully distinct from an existing bucket, it is usually better to keep it rolled up until the spend history is more mature. The goal is not to maximize the number of lines in the model. The goal is to create breakouts that are durable, interpretable, and tied to real budget decisions.


When a one-off model needs temporary split-outs from campaign names

A common request during an MMM refresh is: "For this one-off model, can we split out a temporary bucket based on campaign-name rules?" For example, a team may want a temporary bucket such as MetaApp BAU for campaigns whose names contain ios or android and also contain ongoing, or a Brand Marketing bucket for campaigns whose names contain brandmarketing.

That can be a sensible short-term modeling choice, but only if the split reflects a real, decision-useful distinction and the matching logic is stable enough to apply consistently across the lookback window.

Before creating a one-off split, check four things:

  1. The naming tokens are durable. If ios, android, ongoing, or brandmarketing have been used consistently over time, campaign-name logic can work. If those tags appeared only recently or were used inconsistently, the bucket may be incomplete or misleading.

  2. The split is mutually exclusive and collectively exhaustive. Make sure each row lands in one intended bucket only once, and leave a broader fallback bucket in place for anything unmatched.

  3. The bucket is material enough to matter. Temporary split-outs should still have enough spend and variation to produce a usable signal. If the resulting bucket is tiny or only active briefly, the extra granularity may add noise rather than insight.

  4. The business would actually act on the result. A one-off breakout is strongest when it supports a real decision such as whether to keep app BAU separate from the broader Meta bucket or whether brand-marketing campaigns should continue to be planned independently.

A good practical workflow is to define the temporary rule explicitly, test that it captures the intended campaigns cleanly, and carry that same logic through the historical period used by the model. If the split keeps proving useful across refreshes, move it into a maintained grouping field or documented taxonomy instead of leaving it as an informal one-off rule.

The broader principle is simple: a one-off split can be helpful, but it should still behave like a real taxonomy — clear, durable, and tied to a decision. If it only exists to answer a momentary curiosity, it usually belongs in ad hoc reporting rather than in the MMM structure itself.


When LinkedIn CTV or TOFU looks unexpectedly low in your warehouse data

A common troubleshooting question is: "Our LinkedIn CTV or TOFU numbers look too low in Snowflake or in a refresh. Are those campaigns actually flowing through, or is the categorization logic missing them?"

Start by separating two checks that can look similar in reporting:

  1. Coverage: confirm the relevant LinkedIn campaigns are present in the source table at all.

  2. Classification: confirm those rows are being assigned to the intended bucket, such as CTV or TOFU.

If the working logic is something like platform = LinkedIn and campaign_type in (CTV, TOFU), validate both parts directly. A low count can come from the platform filter, the campaign-type labels, or both. The most common failure mode is not that LinkedIn data stopped flowing, but that campaign names or taxonomy changed and the classification rule no longer matches the way the campaigns are currently labeled.

Before changing model structure, check these five things:

  1. Platform field values: verify the rows are actually labeled LinkedIn in the source data rather than a variant such as Linked In, LI, or a connector-specific value.

  2. Campaign-type taxonomy: confirm the intended campaigns really use the exact values CTV and TOFU rather than a nearby synonym such as Prospecting, Awareness, Video, or an agency-specific shorthand.

  3. Naming drift: check whether the agency or channel owner changed naming conventions in August or another recent period without updating the documented grouping logic.

  4. Null or fallback buckets: inspect whether the missing spend is landing in a broader catch-all group, an unexpected funnel-stage bucket, or a null mapping instead of disappearing entirely.

  5. Warehouse reconciliation: compare the affected subset back to the source-of-truth export or ad platform totals to determine whether this is an ingestion gap or only a categorization issue.

If the campaigns are present but misclassified, the safest long-term fix is usually to tighten the taxonomy rather than rely on more guesswork from campaign names. An explicit grouping column or maintained mapping table is more durable than parsing campaign names alone, especially when an agency controls naming.

As a practical rule: first confirm the rows exist, then confirm the rule logic, then update the durable mapping source. That sequence helps you avoid treating a taxonomy problem like a broken data pipeline.


How to create a unified retargeting bucket across Search and Social

A common readout request is: "We want one unified retargeting line that combines Search and Social retargeting so we can evaluate the total lower-funnel program together."

That can work well, but only if the naming and mapping logic are consistent enough that every intended campaign lands in the same bucket across both channels.

Before creating a unified retargeting bucket, check these five things:

  1. Define the bucket explicitly. Decide whether Retargeting means only classic site-visitor remarketing, or whether it also includes cart abandoners, CRM audiences, branded re-engagement, app reactivation, and other lower-funnel audiences.

  2. Use stable tags across platforms. Search and Social teams often use different labels for the same concept, such as Retargeting, Remarketing, Reengagement, RMKT, or BOFU. If those are all intended to map to one bucket, document that mapping directly instead of assuming everyone will infer it from context.

  3. Keep platform and funnel stage separate. The platform field should still tell you whether spend came from Google, Meta, LinkedIn, TikTok, or another source, even if the reporting layer rolls them up into one unified retargeting line.

  4. Prefer an explicit grouping column over naming alone. The safest setup is a dedicated grouping field with a durable value such as Unified Retargeting. That avoids relying on slightly different campaign-name conventions across agencies, regions, or ad platforms.

  5. Confirm the bucket is decision-useful. A unified bucket is strongest when the business truly wants to evaluate total retargeting investment together before deciding whether to shift budget back between Search and Social.

If you are relying on campaign names, a simple convention such as [Platform]_[AudienceType]_[Objective]_[Region] can work as long as the retargeting signal is unambiguous. For example, Google_Retargeting_Search_US and Meta_Retargeting_Conversion_US can both map cleanly into the same unified bucket while still preserving platform detail upstream.

A practical workflow is to keep the source data granular, preserve the original platform, and then apply a documented mapping rule that rolls all intended Search and Social retargeting campaigns into one shared readout bucket. That gives you a unified performance view without losing the ability to split the channels back apart later for deeper analysis or reallocation decisions.

If the naming is inconsistent today, do not force the bucket from campaign names alone. First document the exact labels and aliases each team uses, then move that logic into a maintained grouping field or taxonomy table so the unified retargeting bucket survives future refreshes.


4. Business decisions

Getting the technical structure right is the easier half. The harder half is deciding what your groupings should actually represent — which breakouts make sense for your business, and which ones will just add noise.

Funnel stage breakouts

Should Meta Prospecting and Meta Retargeting be separate channels in your model, or should they be collapsed into a single Meta line?

Breaking them out gives you separate efficiency curves for each and lets the model recommend moving budget between funnel stages, not just between platforms. That's genuinely useful if you have the spend volume to support it and if the two have meaningfully different economics.

Collapsing them into a single line simplifies the model and avoids the risk of thin data on either side. For early-stage programs or channels where retargeting is a small percentage of total spend, a single line often produces more reliable results.

A useful rule of thumb: if a funnel stage represents less than 10–15% of the channel's total spend, and you don't actively manage it as a distinct strategy, it's probably not worth a separate breakout. Your Growth Advisor can help you assess this for each channel before the model runs.

Volume thresholds

Every breakout in your model adds a parameter that has to be estimated from data. The more breakouts you have, the more data each one needs to produce a reliable estimate.

There's no universal threshold, because it depends on the volatility of your spend and the length of your history. But as a rough guide: a channel or breakout that contributes less than 3–5% of your total measured spend, consistently, is a candidate for collapsing. The model will still account for that spend — it just won't produce a standalone efficiency estimate for it.

The right time to reassess is at each MMM refresh. As you scale into a new channel or pull back from one, your grouping structure should evolve with it.

Major strategy shifts

When something significant changes in your media strategy — you enter a new market, launch a new channel, dramatically shift your brand-to-non-brand ratio, or transition to a new agency — that shift should be visible in your campaign groupings.

The most common mistake is leaving old campaigns in the same grouping as new ones even though the underlying strategy has changed. The model will average across the old and new behavior, which obscures both. If your Meta strategy in Q1 was retargeting-heavy and in Q3 is pure prospecting, those should be tracked separately for at least the first few model cycles.

Practically: when you make a major strategic change, create new campaigns rather than repurposing old ones, and update your grouping column to reflect the change. Your Growth Advisor can help you think through how to handle the transition in your data share so the model captures it cleanly.


Getting started

If you're setting up campaign groupings for the first time, the fastest path forward is:

  1. Share a sample of your campaign data with your Growth Advisor — even a screenshot of your Google or Meta campaigns list is a useful starting point.

  2. Work through the business decisions: which breakouts make sense, whether you need funnel stage splits, whether any channels are below the volume threshold.

  3. Agree on a naming convention for new campaigns and add a grouping column for existing ones.

  4. Document the convention and share it with anyone who creates campaigns on your accounts.

The easiest time to do this is before your first MMM or at the start of a new model refresh cycle. If you're already running and your groupings have inconsistencies, your Growth Advisor can review your current campaign structure and identify any gaps before they affect your results.

Campaign groupings are a small investment with an outsized return. They make your MMM more accurate, speed up each refresh cycle, and ensure that as your marketing program grows, your data keeps up with it.


Want to learn more about onboarding? Check out other Paramark onboarding articles here