先日、ログイン状態によって、GoogleタグマネージャのスニペットタグをWordpressの各ページに出力しない設定方法をご紹介しました。
ご紹介した方法は、functions.phpで、ログインしている状態であれば、タグマネージャのスニペットタグを出力しないという関数を設置しただけの簡単改修でした。
Wordpress側で制御するだけなので、手間もかからず、ソースをコピペするだけで実現できます。
今回ご紹介する方法は、タグマネージャーに対して、Wordpress側からログイン状態を代入したデータレイヤー変数を設定し、タグマネージャにその変数の値によって、該当の計測から除外設定をする形になります。
それぞれの運用面での違いですが、
- データレイヤーを使用する方法
- タグ設定それぞれで使い分けることができる。例えば、「ページビュー計測用のタグはログインの有無にかかわらず全てのページで配信する、だけど外部リンククリック計測はログイン状態である場合は計測しない」といったタグによる使い分けができます。
これからGTMを使用して様々な計測をしたい!という場合にこちらのタイプの方が柔軟性が高いです。
テストはログインしていようとしていまいと、タグが動作しているかのチェックが可能です。
例えば「ログインしている場合はアナリティクスにデータを投げない」といったトリガーを設定し、ログインしている場合、GTMのイベント自体はプレビュー機能で確認できますが、アナリティクスにはデータは飛んでいきません。 - functions.phpでタグマネージャー自体を無効にする方法
- ログイン状態である場合はタグマネージャのスニペットタグが設置されていない状態になるため、データレイヤーを用いた方法のようにタグによって挙動を変えることができません。
テストを行う際は、ログイン状態にないブラウザでチェックを行うか、ログアウトしてからチェックを行う必要があります。
単純にページビューを計測するだけといった簡易な場合に向いている方法です。
そもそもページビューの計測だけで良いのであれば、Googleタグマネージャを使用せずとも、はじめからアナリティクスを使用すればいいので、需要としてはデータレイヤーを使用する方法の方が多そうです。
ということで、前置きが長くなりましたが、データレイヤー変数を利用してWordpressログイン時はGoogleタグマネージャからのアナリティクス計測を除外する方法をご説明します。
(わかりやすく、「アナリティクス計測」「ログイン」と状況をピンポイントにしていますが、データレイヤー変数を扱うことで色々な情報を計測に用いることができたり、記録できたりします。基本のキとしてご覧ください。)
functions.phpでデータレイヤー変数を定義
タグマネージャにデータレイヤー変数を設定する場合、Wordpressの場合はプラグインを使用した方がおそらくは早いかと思います。
いろんな変数をセットする項目があり便利です。
様々なWordpressのデータを利用して(ユーザー情報やカテゴリやタグなど)ゴリゴリと計測したい場合はプラグインの利用をお勧めします。
ただし、Wordpressからのデータレイヤー出力部分をプラグインが担ってくれても、タグマネージャへの設定は自分で行う必要があります。
この記事では、サイトから送られたデータレイヤー変数をタグマネージャで受け取ってあれこれする超基本的な流れをご紹介しています。
まずは、functions.phpでデータレイヤー変数を設定する方法です。
上記ソースはfunctions.phpでGoogleタグマネージャのスニペットタグを設置する場合の一例です。
(<noscript>タグは本来body直下におくべきものですが、Wordpressの標準ではbody直下のフックがないため、wp_footerでbody閉じタグ直前に挿入しています。)
ソースの3~4行目でWordpressのログイン状態を取得しています。
wp_get_current_user()は、WP_Userオブジェクトを返す関数です。
WP_Userオブジェクトのユーザー権限がセットされているrolesプロパティの値をデータレイヤー変数に入れようとしています。
今回はユーザー権限を例にしていますが、ユーザーIDだったり、ユーザー名だったりをデータレイヤー変数にしてGTMで利用することもできます。
上記を実行すると、出力結果は下記のようになります。
の部分が、データレイヤー部分です。
これより下は、GTMのスニペットタグです。
'wp_user_role' : 'administrator'
の部分がデータレイヤー変数になります。wp_user_roleという変数名に、ログインユーザーの権限「administrator」がセットされています。
このadministratorの部分はログインしているユーザーの権限によって変わります。
ログインしていない状態である場合のデータレイヤーの出力結果は
'wp_user_role' : ''
となります。
このあと、GTMのトリガー設定でこの値を利用することになるのですが、
wp_user_role変数が空であれば実行する
wp_user_role変数がadministrator以外なら実行する
といった感じで条件を指定することができます。
ソースを表示してみて上記の出力ができていることが確認できたら、Googleタグマネージャのトリガー設定をしてみます。
なお、手順は、下記の設定が完了しているものとして記載しています。
- Googleタグマネージャのアカウント作成とスニペットタグの設置が完了している
- タグマネージャからアナリティクスのページビュー計測の設定がされている
それでは手順です。
データレイヤー変数を定義する
まずは、サイトにセットしたGTMに送るデータレイヤーをGTM側から値を利用できるようにするためには、変数としてセットする必要があります。
左のメニューの「変数」をクリックし、変数一覧からユーザー定義ブロックの新規ボタンをクリックして変数を作ります。
変数設定画面が表示されます。
何もないところをクリックします。
変数タイプを選択するメニューが表示されますので、「ページ変数」の中の「データレイヤーの変数」をクリックします。
上部の変数の管理名は好きなもので覚えやすいもので問題ありません。
わたしはややこしいので、データレイヤーの変数名と同じものを入力しています。
データレイヤーの変数名は、サイトに設定した変数名と同じである必要がありますので、今回の例でいうと、「wp_user_role」となります。
サイトに設定した変数名と異なるものを指定してしまった場合は値が取れませんので注意が必要です。
入力したら、右上の「保存」ボタンを押して保存しておきます。
以上で変数の設定は完了です。
次に、トリガーの設定をします。
トリガーを作る
ページビューを計測するためのトリガーを作成します。
このトリガーには、データレイヤー変数wp_user_roleの値を元にいちびのページビューに対してのみトリガーを配信するような設定にします。
まずは左メニューの「トリガー」をクリックして、トリガーの新規作成を行います。
トリガー一覧の「新規」ボタンをクリックします。
トリガー設定画面が表示されますので、何もないところをクリックします。
トリガータイプの選択メニューが表示されますので、ページビューをクリックします。
トリガー設定画面にトリガーの種類が入りました。
その下の「トリガーの発生場所」を「一部のページビュー」にします。
すると、条件の設定画面が表示されますので、必要な情報を設定します。
今回の例でいくと、一番左の変数のセレクトメニューは、先ほど変数登録した「wp_user_role」を選択します。
次の条件ですが、色々な考え方がありますが、「正規表現に一致しない」「^administrator$」としました。
「等しくない」「administrator」でも良いかと思います。
条件を入力したら、トリガー名を入力して、右上の「保存」ボタンを押して保存します。
トリガー名は覚えやすい名前、または何をするためのトリガーなのかがわかるように好きな名前をつけます。
ここまできたらあとはページビュー計測用のタグのトリガーを変更してあげるだけです。
作成したトリガーに差し替える
既にあるページビュー計測用のタグのトリガーを、作成したトリガーに変更します。
ページビュー計測用タグを表示させて、トリガー部分の右上の鉛筆マークをクリックします。
マウスを載せないと出てこないので、右上あたりにマウスカーソルを持って行ってみてください。
クリックすると、既に設定してあるトリガーの上に「+」プラスマークが出ますので、クリックします。
クリックすると、トリガーの選択画面が出ますので、先ほど作成したトリガーをクリックします。
クリックすると、下記のようにトリガーが二つ設定されている状態です。
もともと設定してあった方のトリガーは不要ですので、トリガー名の横にある「ー」マイナスマークで削除します。
これでトリガーの差し替えは完了です。
右上の保存ボタンを押して保存します。
タグ一覧でトリガー名が変更されているのがわかります。
あとは、タグをプレビューで確認し、テストを実施します。
ログインしている状態で計測されないようになっているか、ログインしていない状態でページビューが計測されているかをそれぞれチェックし、思った通りの動作であれば、「公開」ボタンで公開しましょう。
プレビュー時、デバッグペインのPageViewのデータレイヤーを確認すると、きちんとデータレイヤー変数が設定されているのがわかります。
以上で、完了です。
コメントを残す