The purpose of analytics mapping is to bridge the gap between ad platforms and analytics tools (Google Analytics, Piano, Matomo, etc.), in order to enrich campaign data with site centric metrics. This includes deduplicating platform conversions (i.e. allocating each conversion to only one of the media platform).
It’s important not to use double spaces in campaign names, as they are apparently converted into single spaces by GA4.
What are tracking codes and UTMs?
Tracking codes and UTM parameters are additional pieces of tracking information appended to the end of a URL that can give Site Centric Analytics detailed information about the trafic coming to the site (what source, campaign, content ...).
How to access Analytics Mapping?
You will need a role of Editor or Admin to manage Analytics Mapping settings for a Workspace.
Click your avatar at the bottom of the page, then select Workspace Settings.
From the navigation bar, select Analytics Mapping in the Workspace section.
How to create a mapping?
In general, utm_campaign field should contain the name of the campaign. However, you might have a different setup on specific platforms, for example integrating within the utm_campaign field the name of the campaign but also more granular information such as, for Meta, Adset name or Ad name, separated by a delimiter (e.g. “__”, “|’, “::” or any other relevant string). This module can help you match Campaigns, Adgroups and Ads at a granular level, extracting relevant data from your utm_campaign field.
Select the scope that you want to map your tracking codes/ UTMs: Channel, Campaign, Adgroup (Adset), Ad
Click +Add rule on the right side of each section
How to set up rules?
Configure the rules to define how spyne should extract the values from your tracking codes/ UTMs.
Specify the channel (source) to which the rule should be applied. You can create different rules for each channel or use the same across multiple channels.
Click the button +Add step
A rule consists of two main parts, then “when” part (optional), which specifies which condition the rules applies to, and the “then” part (mandatory), which specifies what the action/ result of the rule should be.
When
This part is optional, it specifies which level name and conditions the rules apply to.
Define in which UTM field should the system look for information: utm_source, utm_campaign, utm_id, utm_medium, utm_content
Then, set up the conditions.
Split
Split a name by a specific delimiter (e.g. “__” or “|” or “-”) to extract a sub text and match it to the dimension. To do this, use ‘split by’ to provide a delimiter.
Be careful when setting up your delimiter with the UTM fields: it should be different from the delimiters you might use within your Campaign / Adgroup or Adset / Ad names. For example if you use “_” as delimiter within your campaign names, you might want to use another delimiter, such as “|” or “::” to separate the segments within your UTM field.
For exemple,
The utm_campaign for a specific Meta campaign is UK_SpringCampaign_RTG_Wave1::35-44::blue_creative. The UK_SpringCampaign_RTG_Wave1 represents the Campaign Name, 35-45 the Adset Name (35-44 years old targeting), and blue_creative the Ad Name. You want to extract the 1st segment, which is “UK_SpringCampaign_RTG_Wave1”, and identify it as Campaign Name to be able to match it with data from Meta platform.See full example 1 here
Split length
It refers to setting criteria on the number of segments resulting from a split operation. You can check if a name, when split by a specific delimiter (e.g. “_” or “|” or “-”), contains the proper number of segments according to your taxonomy standards.
Field value
Rules are applied to the field values. Several ways to identify the values that you want the system to extract.
Contains
It checks if a part of the text is found within the value.
Does not contain
It checks if the text is not found within the value.
Is in
It checks if the value matches any of the listed options.
Is not in
It checks if the value does not match any of the listed options.
Equals
It checks if the value is exactly the same as what is specified.
Matches regex
You can use advanced text extraction and value setting with a full regex integration, for more information about regex please visit : source.
For example,
There are 'Wave1', 'Wave2', 'Wave3', and 'Wave4' in the utm_campaign field: UK_SpringCampaign_RTG_Wave1, FR_SpringCampaign_RTG_Wave2, UK_SummerCampaign_RTG_Wave3, FR_WinterCampaign_RTG_Wave4.You want the rule to only be applied to utm_campaign whose name contains 'Wave'.
Text operations (modifiers)
Not case sensitive
The system ignores the distinction between uppercase and lowercase letters.
For example,
"Hello" would be considered the same as "hello"
No accents
This option removes accents or diacritical marks from characters in the text.
For example,
"é" would be converted to "e"
Trim
Trimming removes any leading or trailing whitespace characters (such as spaces or tabs) from the text. This ensures that the text doesn't have any unnecessary whitespace at the beginning or end.
For example,
“ e “ would be converted to “e”
None of them
This option indicates that none of the aforementioned text operations will be applied. The text will remain unchanged regarding case sensitivity, accents, and leading/trailing whitespace.
For example,
“ Thé “ would be converted to “ Thé “
Multiple conditions
You can combine multiple conditions with the “+ Add condition” button. Conditions can be combined as AND (both conditions must be true), OR (one of the condition must be true).
For example,
For all utm_campaign whose name contain "Marque", and have "BE", "BE-LU", "LU" in the first segment.
No condition
If you want the “then” without any condition, you can remove the “when” by clicking on the grey cross on the right.
See full example 3 here
Then
This part is mandatory, it specifies what the action / result of the rule should be.
Field value
Retrieve the value from a designated field
For exemple,
You want the desired result values to be the same values of utm_campaign.See full exemple 2 here
Split value
Divide or break down the name into segments, according to a specific delimiter you may have implemented in your taxonomy (e.g. “__” or “|” or “-”), allowing you to choose which segment to collect the values from.
For exemple,
Split utm_campaign with "--" delimiter, select the first segment, and remove "{" and "}".Split the utm_campaign to select the first segment, and use 'replace by' to remove "{" and "}" (leaving the ‘Replace’ field empty).
Multiple actions
You can add other subsequent actions, by adding new actions with the button “+ Action” . The options are below:
Lowercase
Convert the value to lowercase
For exemple,
"HELLO" would be converted to "hello"
Uppercase
Convert the value to uppercase
For exemple,
"hello" would be converted to "HELLO"
Title:
Capitalize the first letter of each word
For exemple,
"this is a test" would be converted to "This Is A Test"
Capitalize
Capitalize the first letter of the value
For exemple,
"hello" would be converted to "HELLO"
Replace
You can do one or multiple replacements
For exemple,
"FR" would be converted to "France"
Trim
Remove leading and trailing whitespace
For exemple,
" hello" would be converted to "hello"
Regex replace
Replace parts of the value using regular expressions
For exemple,
"apple pie" would be converted to "banana pie" with refex pattern "apple" and replacement: "banana"
Step-by-step examples of extracting values from tracking codes/ UTMs
Example 1
For Meta, campaign UTMs are set up to include Campaign Name, Adset Name, Ad Name, separated by a "::" delimiter, such as UK_SpringCampaign_RTG_Wave1::35-44::Blue_Creative. You want to extract the Campaign Name from utm_campaign. Note that the UTM delimiter, "::" is different from the Campaign Name delimiter, "_".
When
This step is not required in this case, you do not need to click on “Add condition”
Then
This approach is suitable when you have a properly structured taxonomy with a fixed number of parameters separated by identified characters, with UTM separator different from Campaign Name / Adset Name / Ad Name separator.
Example 2
For Google Ads, utm_campaign contains exactly Campaign Name, no additional processing is required.
Example 3
You can create rules without the "When" section. Split utm_campaign with the "--" separator, select the 2nd segment, and remove "{" and "}".
How to test rules and check the results?
Click the button Test at the top right of the page. The test results will appear above the rules section.
The "Matched" column indicates the count of values that match the rules. "Unmatched" refers to the tally of unset or empty values.
To explore further details, such as utm_source, utm_campaign, and session counts, click on the source line.
Tips: Reorder rules and steps, Add notes
Switch on the toggle “Reorder rules and steps”
Now you can reorder by moving up and down.
The rule priority is what determines which rule to apply when multiple rules could apply. You specify priority by moving individual rules up or down in the list of rules. Rules at the top of the list take priority over rules further down the list. When processing all individual Campaigns, the first rule to be encountered will be applied and following rules will be dismissed.
Add notes to provide context and share them with other users.
How to save mapping?
Click on "Save mapping" if you have made changes.
Or, click on "Discard changes" if you do not want to save the changes.




















