Firefox 120からトラッキングコードが削除可能に
Firefox 120からコピーしたリンクのURLのトラッキングコードが削除可能になりました。
使い方はリンクの右クリックメニューにある「サイト追跡を除いたリンクをコピー」を選択するだけです。
一見すると便利な機能に見えますが、Googleアナリティクスのパラメーター(utm_sourceなど)は削除されず、何のパラメーターが削除されるのかがわからないという問題があります。
また、削除したいパラメーターを自分でカスタマイズできないです。
トラッキングコードを削除するブックマークレットを作成
前述の問題は自身でトラッキングコードを削除するブックマークレットを作成すれば解決します。
ブックマークレットとはブラウザのブックマークバーに保存できるJavaScriptプログラムです。
例えば以下のブックマークレットは実行するとalertで「Hello」と表示されます。
試しに「Helloと表示するブックマークレット」をブラウザのブックマークバーに保存して実行してみて下さい。
javascript:(() => { alert('Hello'); })();
クリップボードに保存されているテキストを置換する
JavaScriptにはクリップボードのテキストを読み込む「Clipboard.readText()」と、テキストを書き込む「Clipboard.writeText()」があるので、こちらを利用します。
やり方は以下のようにしてクリップボードのトラッキングコードをreplaceメソッドで除去したあとクリップボードに保存し直すだけです。
navigator.clipboard.readText()
.then(url => {
const paramRegex = /([?&])(utm_[^=]+|fbclid|gclid|_hsenc|p[df]_rd_[a-z]{1,2}|content-id)=[^&]+/g
const replaceUrl = url.replace(paramRegex, '');
const cleanUrl = replaceUrl.replace(/(?<=\/)&/, '?').replace(/[?&]$/, '');
navigator.clipboard.writeText(cleanUrl);
})
.catch(err => console.error(err));
これをjavascript:で始まる1行のブックマークレットに変換すると以下のようになります。
javascript:navigator.clipboard.readText().then((e=>{const c=e.replace(/([?&])(utm_[^=]+|fbclid|gclid|_hsenc|p[df]_rd_[a-z]{1,2}|content-id)=[^&]+/g,"").replace(/(?<=\/)&/,"?").replace(/[?&]$/,"");navigator.clipboard.writeText(c)})).catch((e=>console.error(e)));
これを実行するとコピーしてクリップボードに保存したURLがトラッキングコードを除去した状態に保存し直されるので試して見て下さい。