Garder les utm au changement de domaine

Garder les utm à travers les domaines

Language: Javascript

Catégorie : Utilities

Favicon de Justa
<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>
Sommaire
1
Le script

Utiliser un LLM pour résumer ou expliquer ce script

1

Le script

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>
2

Les attributes

3

Tuto

4

Template

5

Code source du script

<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>

Voir d'autres scripts de la même catégorie

Je veux lancer mon projet avec Justa

Nous contacter