Googleアナリティクス4、ユニバーサルアナリティクスにおけるWebのユーザーを識別するIDのひとつである、【クライアントID】(client_id)を取得するシンプルなjavascriptのサンプルです。
カスタムディメンションやイベントに仕込みたいという要望があるかもしれませんので、備忘録的に残します。GAが1st Party Cookieを活用し、「_ga」というcookie名を使い続ける限りは利用できるとは思います。
GAのグローバル サイトタグ API からも取得出来ますが、2022年6月時点では、GA4 X GTMを利用していた場合には、タグテンプレートを利用しないと使いづらい事象などもあり、1stParty Cookieから直接利用するケースもあるかもしれないという理由もあり、用意しています。
コード解説
・単純にCookieから「_ga」を特定
・値だけ取り出して、任意の変数「gaclid」に格納
・デフォルトではGA1.xxxという表記なので、頭6桁を削除
・テストでは、クライアントIDをアラート(alert)で表示しています。
コード
<script>
function getclid(){
gaclid = "";
newgaclid = "";
ckall = document.cookie;
ckmatch = new Array();
ckh = new Array();
//if
if(ckall != ''){
ckh = ckall.split(';');
for(i = 0;i < ckh.length;i++){
ckmatch[i] = ckh[i].split('=');
if(ckmatch[i][0].trim() === '_ga'){
gaclid = ckmatch[i][1];
};
};
//endif
//取得したclientidを整形
//デフォルトではga1.xxといった文字列がつく
newgaclid = gaclid.slice(6);
alert(newgaclid);
//
};
}
</script>
注意事項
・cookie名を「_ga」以外にしている場合は、変更をお願いします。
・cookieの扱いはもっといい方法あると思いますので、あくまで一例です。
・当然ながら、GAタグが先に起動していないと、初回訪問の場合は取得できません。
必要な場合は、コードの発火順番を工夫してください。
・Googleさんの仕様が変わった場合には修正が必要です。
公式への要望
・GTM環境でもAPIが以前のように扱いやすくなることを祈ります!