'Remove UTM Parameters from URL

I use UTM parameters to track incoming links in Google Analytics.

Let's say my URL looks like this

https://www.domain.tld/shop?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale

I want to clean the URL. The desired result is

https://www.domain.tld/shop

On the web I found the following snippet

(function() {
    var win = window;
    var removeUtms = function(){
        var location = win.location;
        if (location.search.indexOf('utm_') != -1 && history.replaceState) {
            history.replaceState({}, '', window.location.toString().replace(/(\&|\?)utm([_a-z0-9=]+)/g, ""));
        }
    };
    ga('send', 'pageview', { 'hitCallback': removeUtms });
})();

At the moment my Google Analytics Template in my CMS looks like this

<?php
    /**
     * To use this script, please fill in your Google Analytics ID below
     */
    $GoogleAnalyticsId = 'UA-bla-bla';
    /**
     * DO NOT EDIT ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING!
     */
    if ($GoogleAnalyticsId != 'UA-XXXXX-X' && !BE_USER_LOGGED_IN && sha1(session_id() . (!Config::get('disableIpCheck') ? Environment::get('ip') : '') . 'BE_USER_AUTH') != Input::cookie('BE_USER_AUTH')): ?>
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
      ga('create', '<?php echo $GoogleAnalyticsId; ?>', 'auto');
      <?php if ($GLOBALS['TL_CONFIG']['privacyAnonymizeGA']): ?>
        ga('set', 'anonymizeIp', true);
      <?php endif; ?>
      ga('send', 'pageview');
    </script>
<?php endif; ?>

...and I have no idea how to bring those codes together.

Maybe there is even a better solution to my problem?



Solution 1:[1]

If you want to remove all query data from the url you could split the url string on the ? sign as suggested here: Remove querystring from URL

Solution 2:[2]

Copy urls into url.txt

sed 's/?utm[^ ]*//g' url.txt

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 FMK
Solution 2 Syscall