In Piano Analytics, we favor a tag-first approach, and marketing campaigns require a minimum of two properties to be correctly processed: src_medium and src_campaign.
If we collect src_campaign with an empty or missing src_medium property associated with it, the source will still be considered a marketing traffic source but classified as Unclassified Campaign. The source type is only defined by the property src_medium.
Why Unclassified Campaigns Happen
Unclassified campaigns typically occur when one of the required marketing source properties is not populated at collection time, most commonly:
-
src_campaignis present butsrc_mediumis empty or missing. -
The underlying URL parameters do not provide a medium value (for example,
utm_mediumis missing), sosrc_mediumcannot be derived or mapped.
Because src_medium determines the traffic source type, a missing src_medium prevents the campaign from being categorized into a specific medium-based classification.
How to Reduce Unclassified Campaigns
Ensure your tagging includes a medium
If you rely on UTM parameters, make sure campaign links consistently include a medium value (for example, utm_medium) so that src_medium can be populated.
Use a processing rule to populate src_medium when it is missing
If you have situations where utm_medium is not reliably present, you can use a processing rule to set src_medium based on another available parameter (such as utm_source) when src_medium is empty.
A common approach is:
-
Condition: if
src_mediumis empty andutm_mediumis empty andutm_sourceis not empty -
Action: set
src_medium=utm_source -
Optional: apply a mapping table to replace
src_mediumwith a standardized value when a match is found (for example, converting partner-specific values into your internal medium taxonomy).
Important Notes
-
Processing rules are not retroactive. They only apply to events collected after the rule is created or updated. Existing data already collected as Unclassified Campaign will not be reprocessed automatically.
-
If you standardize or map values into
src_medium, ensure your mapping logic aligns with your reporting needs, sincesrc_mediumdrives the source classification.