自サイトから別ドメインへのサイトへアンカーリンク付きのリンクを張っていたのですが、GTMのGoogle Analyticsタグでクロスドメイントラッキングをしたところアンカーリンクが正しく動かなくなってしまったので、原因と対処法について書きたいと思います。

アンカーリンクが動かなくなった原因

アンカーリンクは以下のようなハッシュタグを使ったリンクになります。これで通常はリンク先の#で指定したIDのタグの位置に移動した状態で遷移できます。

http:/Domain/Path#anchor

一方GAのクロスドメイントラッキングはリンクURLの後ろにパラメータを付けることで、セッションを別ドメインに持ち回ります。

http:/Domain/Path#anchor?_ga=2.21514299.1203210182.1541027853-1154139142.1541027853

通常のリンクであれば問題ないのですが、アンカーリンクの場合、上記の形だと正しく認識されなくなり、リンク先ページの一番上に遷移してしまいます。

※以下のような順でつけてくれれば問題ないのですが・・・

http:/Domain/Path?_ga=xxx#anchor

対処法

今のところアンカーリンクかクロスドメイントラッキングのどちらかを捨てるしかないかと思います。

対策1,2はクロスドメイントラッキングを諦める、対策3はアンカーリンクを諦める、対策4は両方諦めない前提で書いています。

対策1. 対象のリンクをクロスドメイントラッキング対象にしない

クロスドメイントラッキングは対象のドメインを指定できるため、これでアンカーリンク先ドメインを対象外とします。

2. Window.openでリンクを開く

GTMの設定権限がない場合、強引ですがアプリ側でクロスドメイントラッキング対象外にする方法があります。

アンカータグではなく、jsのWindow.openでリンクを開くことでGTMがクロスドメイントラッキングのパラメータをつけるのを防ぐことができます。

3. アンカーリンクを諦める

クロスドメイントラッキングがどうしても必要ならアンカーリンクを諦めて外しましょう。

4. サードパーティcookieを使ったクロスドメイントラッキング方式にする

クエリパラメータでなくサードパーティクッキーを使ったクロスドメイントラッキングの仕組みであれば、影響ない方式になります。

但し、GAはファーストパーティCookieを使う前提のため、別の分析ツールに切り替える必要があります。

また、サードパーティCookie方式は排除される方向で世の中進んでいるため、ブラウザによっては動かないなど、余りオススメはできません。