GoogleタグマネージャをWordpressに導入し、タグマネージャからアナリティクスで計測をするよう設定しています。
自分がログインをして編集をしていると、自分自身のアクセスがアナリティクスのページビューとして計測されていき、純粋な数値が分からなくなるため、ログインしている状態ではカウントされないようにしたく、方法を検討しました。
Googleタグマネージャーをログイン時は無効にする方法
タグマネージャのスニペットタグをWordpressにどのように導入しているかにもよりますが、今回は条件として、functions.phpにフックでタグマネージャのスニペットタグを設置している場合を想定しています。
GoogleタグマネージャのWordpressへの導入方法前提
下記のような方法でタグマネージャを出力している場合についてです。
「GTM-XXXXXXX」はタグマネージャーのIDに読み替えてください。
いろんな方法があるかと思いますが、検討したのは下記の方法です。
- functions.phpで条件分岐を行いログイン状態(またはユーザー)によって出力を制御する
- タグマネージャーにWordpressからログイン情報をデータレイヤー変数で送り制御する
1の場合は、タグマネージャのスニペットタグ自体を表示させない方法です。
2の場合は、上記ソースにユーザー情報をデータレイヤー変数に入れてタグマネージャ側で制御する方法です。
今回は、1のfunctions.phpでの制御方法を書いてみたいと思います。
この方法の良い点は、Wordpress側のカスタマイズで完結できる点です。
2の方法については別記事で書いています。
上記ソースにそれぞれ条件分岐を1文いれるだけの簡単改修です。
Googleタグマネージャーをログイン時は無効にするコード編集
正しい表現が分からないのですが、「無効」というよりかは、スニペットタグ自体を表示しなくなります。
「GTM-XXXXXXX」はタグマネージャーのIDに読み替えてください。
if(current_user_can('administrator'))
return;
をそれぞれのスニペットタグの出力より先に入れることで、この条件がtrueの場合はreturnで、return以下の命令を実行しません。
つまりはタグ部分のコードは実行されず無視されることになります。
current_user_can()とは
current_user_can()は、Wordpressの関数で、
現在のユーザーが権限を持つ、またはその権限を持つ権限グループに属しているかどうか
関数リファレンス/current user can
を返す関数です。
引数には権限、または権限グループ名を指定して利用します。
上記ソースでは、引数に管理者権限のスラッグである「’administrator’」を指定しています。
WordPressのユーザー権限とスラッグ一覧
権限のスラッグは5個あるようです。
current_user_can()で条件分岐する際に下記のスラッグを引数に利用することでその権限を持っているかチェックができます。
権限 | スラッグ |
---|---|
管理者 | administrator |
編集者 | editor |
投稿者 | author |
寄稿者 | contributor |
購読者 | subscriber |
- Super Admin – somebody with access to the site network administration features and all other features. See the Create a Network article.
- Administrator (slug: ‘administrator’) – somebody who has access to all the administration features within a single site.
- Editor (slug: ‘editor’) – somebody who can publish and manage posts including the posts of other users.
- Author (slug: ‘author’) – somebody who can publish and manage their own posts.
- Contributor (slug: ‘contributor’) – somebody who can write and manage their own posts but cannot publish them.
- Subscriber (slug: ‘subscriber’) – somebody who can only manage their profile.
つまり、管理者権限でログインしている時はタグマネージャーのスニペットタグを出力しないことになります。
権限によって、ではなく、全てのログインユーザーに対応させる場合は、「is_user_logged_in()」が良いかと思います。
if(is_user_logged_in())
return;
is_user_logged_in()の場合は管理者が一人のWordpressサイトなら良いのですが、閲覧ユーザーを設けている場合などは、閲覧ユーザーも計測されないことになります。
スニペットタグを表示しないことに絞って記載をしましたが、上記のような条件で分岐させると、様々な制御ができます。
タグマネージャーを導入していなくて、アナリティクスのタグを出し分けたりもできますので色々使える関数かと思います。
以上、「WordPressに導入したGTMからのアナリティクス計測をログイン時は除外する方法」のご紹介でした。
コメントを残す