Partez de https://example.com/p?q=a%20b&utm_source=old&flag&utm_source=older#buy. Saisissez linkedin, paid_social, launch et hero/card.

URL finale attendue

Le résultat est https://example.com/p?q=a%20b&flag&utm_source=linkedin&utm_medium=paid_social&utm_campaign=launch&utm_content=hero%2Fcard#buy. q conserve %20, flag reste sans égal, la barre de content devient %2F et #buy reste à la fin.

Preuves attendues

Deux segments étrangers sont conservés, les deux utm_source minuscules sont remplacés et quatre paires ajoutées. Un UTM_SOURCE de casse différente resterait étranger et visible, car la correspondance est exacte. Contrôlez ce nom manuellement au lieu de supposer une correction silencieuse.

Reproduisez et contrôlez le résultat

Chargez l’exemple contrôlé dans UTMLink ou saisissez exactement les valeurs indiquées. Créez le lien puis comparez caractère par caractère chaque segment conservé, paire de campagne et fragment avec la ligne attendue. Les compteurs expliquent la transformation sans envoyer l’adresse : conservés désigne les segments étrangers, remplacés toutes les occurrences UTM propriétaires en minuscules supprimées, et ajoutés les champs finaux non vides. Modifiez une valeur facultative, recommencez et vérifiez que l’ancien résultat disparaît avant le nouveau. Effacez ensuite le formulaire et rechargez : aucun historique ne doit revenir puisque cette version ne stocke ni saisies ni liens produits.