Utilities

Garder les utm au changement de domaine

<script>
(function () {
  var domainsToDecorate = [
      'domaine.com', //ajouter ou supprimer des domaines (sans https ou autre)
    ],
    queryParams = [
      'utm_medium', //ajouter ou supprimer des paramètres que vous vouler tranférer
      'utm_source',
      'utm_campaign',
      'utm_content',
      'utm_term',
      'gclid',
      'fbclid',
      'msclkid',
    ];

  var links = document.querySelectorAll('a');

  for (var linkIndex = 0; linkIndex < links.length; linkIndex++) {
    for (var domainIndex = 0; domainIndex < domainsToDecorate.length; domainIndex++) {
      if (
        links[linkIndex].href.indexOf(domainsToDecorate[domainIndex]) > -1 &&
        links[linkIndex].href.indexOf('#') === -1
      ) {
        links[linkIndex].href = decorateUrl(links[linkIndex].href);
      }
    }
  }

  function decorateUrl(urlToDecorate) {
    urlToDecorate = urlToDecorate.indexOf('?') === -1 ? urlToDecorate + '?' : urlToDecorate + '&';
    var collectedQueryParams = [];
    for (var queryIndex = 0; queryIndex < queryParams.length; queryIndex++) {
      if (getQueryParam(queryParams[queryIndex])) {
        collectedQueryParams.push(
          queryParams[queryIndex] + '=' + getQueryParam(queryParams[queryIndex])
        );
      }
    }
    return urlToDecorate + collectedQueryParams.join('&');
  }

  function getQueryParam(name) {
    if (
      (name = new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)').exec(
        window.location.search
      ))
    )
      return decodeURIComponent(name[1]);
  }
})();
</script>

Etape 1 - Ajouter le script sur la page ou le projet Webflow

<script>
(function () {
  var domainsToDecorate = [
      'domaine.com', //ajouter ou supprimer des domaines (sans https ou autre)
    ],
    queryParams = [
      'utm_medium', //ajouter ou supprimer des paramètres que vous vouler tranférer
      'utm_source',
      'utm_campaign',
      'utm_content',
      'utm_term',
      'gclid',
      'fbclid',
      'msclkid',
    ];

  var links = document.querySelectorAll('a');

  for (var linkIndex = 0; linkIndex < links.length; linkIndex++) {
    for (var domainIndex = 0; domainIndex < domainsToDecorate.length; domainIndex++) {
      if (
        links[linkIndex].href.indexOf(domainsToDecorate[domainIndex]) > -1 &&
        links[linkIndex].href.indexOf('#') === -1
      ) {
        links[linkIndex].href = decorateUrl(links[linkIndex].href);
      }
    }
  }

  function decorateUrl(urlToDecorate) {
    urlToDecorate = urlToDecorate.indexOf('?') === -1 ? urlToDecorate + '?' : urlToDecorate + '&';
    var collectedQueryParams = [];
    for (var queryIndex = 0; queryIndex < queryParams.length; queryIndex++) {
      if (getQueryParam(queryParams[queryIndex])) {
        collectedQueryParams.push(
          queryParams[queryIndex] + '=' + getQueryParam(queryParams[queryIndex])
        );
      }
    }
    return urlToDecorate + collectedQueryParams.join('&');
  }

  function getQueryParam(name) {
    if (
      (name = new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)').exec(
        window.location.search
      ))
    )
      return decodeURIComponent(name[1]);
  }
})();
</script>
Copier

Etape 2 - Ajouter les attributes correspondants

Tuto, template & scripts

<script>
(function () {
  var domainsToDecorate = [
      'domaine.com', //ajouter ou supprimer des domaines (sans https ou autre)
    ],
    queryParams = [
      'utm_medium', //ajouter ou supprimer des paramètres que vous vouler tranférer
      'utm_source',
      'utm_campaign',
      'utm_content',
      'utm_term',
      'gclid',
      'fbclid',
      'msclkid',
    ];

  var links = document.querySelectorAll('a');

  for (var linkIndex = 0; linkIndex < links.length; linkIndex++) {
    for (var domainIndex = 0; domainIndex < domainsToDecorate.length; domainIndex++) {
      if (
        links[linkIndex].href.indexOf(domainsToDecorate[domainIndex]) > -1 &&
        links[linkIndex].href.indexOf('#') === -1
      ) {
        links[linkIndex].href = decorateUrl(links[linkIndex].href);
      }
    }
  }

  function decorateUrl(urlToDecorate) {
    urlToDecorate = urlToDecorate.indexOf('?') === -1 ? urlToDecorate + '?' : urlToDecorate + '&';
    var collectedQueryParams = [];
    for (var queryIndex = 0; queryIndex < queryParams.length; queryIndex++) {
      if (getQueryParam(queryParams[queryIndex])) {
        collectedQueryParams.push(
          queryParams[queryIndex] + '=' + getQueryParam(queryParams[queryIndex])
        );
      }
    }
    return urlToDecorate + collectedQueryParams.join('&');
  }

  function getQueryParam(name) {
    if (
      (name = new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)').exec(
        window.location.search
      ))
    )
      return decodeURIComponent(name[1]);
  }
})();
</script>
Copier

Etape 2 - Ajuster le code pour votre besoin

  • Ajouter / Changer les domaines pour lesquels lecode doit s'appliquer
  • Ajouter / Changer les paramètres d'URL qui doivent être gardés
Copié dans le presse-papiers
Logo Justa

Progressez sur Webflow

Oops! Une erreur s'est produite lors de la soumission du formulaire.