これは
angulartics-google-tag-manager
https://github.com/angulartics/angulartics-google-tag-manager
の使いにくい点の回避方法です。
tag manager単体ではangularのroutingに使っているページURLが取れない
なのでこれを入れたいけれどuserIdに関して仕様が合わなくて使いにくい
という事で施した対処です。
userIdではなくuIdを利用する
userIdは動的に勝手にセットしちゃうんだけど、うちのサイトでははじめのページがロードされたタイミングでuser_idはわかっているしclient側でuserIdを意識しない設計なので、ページはじめにロードした時にセットしたdataLayerにセットした値を使いたい。
<script>
dataLayer = [{
'uId': '{{Sentry::getUser()->id}}'
}];
</script>
変数作る
userId:データレイヤー変数のuId
タグに指定している変数を差し替え
「angulartics user id」で指定しているところを「userId」に差し替え
変数消す
importで自動で作成される「angulartics user id」を消す