YTM(Yahooタグマネージャー)やGTM(Googleタグマネージャー)では、タグを配信したいページを指定し、そのページに対して配信するタグを紐付けていきます。
その際に、タグマネージャーでは基本的に
- ワイルドカード
- 正規表現
2つの手法でページの設定が行えます。
どちらの方法が良いのでしょうか?出来ることは同じでしょうか?
目次
ワイルドカードと正規表現の違い
ワイルドカードと正規表現は似て非なるものです。
どちらも「文字列の一部をパターン化して表現する」という部分は同じです。
しかし、その表現の幅に大きな差があります。
ワイルドカードのパターン文字列は2種類。
- 「?」任意の1文字。
- 「*」任意の0文字以上の文字列。
です。
それに対し、正規表現の表現方法は多岐にわたります。
・難易度
ワイルドカード < 正規表現
・利便性
ワイルドカード > 正規表現
といった感じかと思います。
さて、それではタグマネージャーの設定にはワイルドカードと正規表現のどちらをつかうのが良いのでしょうか?
おすすめの設定方法は正規表現
私は下記の理由で正規表現の利用を奨めています。
- 実現できる表現がワイルドカードより広い
- いろんなツールで用いられている表現のため学習リターンが大きい
GTMとYTMの正規表現記述の違い
GoogleタグマネージャーとYahooタグマネージャー、どちらも正規表現に対応していますが、若干記述方法が異なります。
Googleタグマネージャー | Yahooタグマネージャー | |
正規表現 | 通常通り記述 | {}で囲んで記述 |
Googleタグマネージャーは「正規表現に一致」などのオプション指定をした上でのページ選択になりますが、Yahooタグマネージャーでは、自由入力欄に「ワイルドカード」もしくは「正規表現」を記述するという自由な形式になっています。
そのため、「{」と「}」で囲むことで正規表現で記述したことを宣言しています。
正規表現で最低限覚えたいルール
正規表現には特殊な意味を持つ「メタ文字」というものが存在します。
代表的でよく利用するメタ文字を紹介します。
.(ドット)
任意の1文字という意味です。
どんな文字にでも適合します。
*(アスタリスク)
0回以上の繰り返しという意味です。
よく「.*」という用例が見受けられますが、これは「なんらかの文字が0回以上繰り返される」という意味です。
[]
カッコ内の任意の文字という意味です。
|(パイプ)
パイプという記号になり、この記号の左右のものをつなぐことが出来るという意味です。
() (カッコ)
グループ化を行うという意味です。
置換をすることが無いタグマネ上ではあまり利用するケースはありませんが、可読性向上にも利用できます。
^(チルダ)
先頭一致という意味です。
チルダの後ろに指定した文字から開始する文字列に適合します。
例)「^webmake\.info.*」とすることで、「webmake.info」から始まる文字列を指定することが出来ます。
$
後方一致という意味です。
$の前のに指定した文字で終わる文字列に適合します。
例)「^webmake\.info/.*\.jpg$」とすると、「webmake.info」の中のjpgファイルを指定することが出来ます。
\(バックスラッシュ)
エスケープ文字というものになります。
この文字は初心者が最もはまりやすい項目です。
これまでに上げたメタ文字ですが、通常の表記にもよく用いられる文字が存在します。
しかし、普通に記述してしまうとメタ文字扱いされてしまい、正しく指定出来ないことがあります。
そこで、メタ文字に利用されている文字を通常通りの文字として扱うために「エスケープ」を行います。
例)
- × example.com
- ○ example\.com
上記のように通常通り記述してしまうと、ドットがメタ文字として扱われるため
- examplexcom
- example.com
- exampleacom
などドット以外の文字に何でも反映されてしまうようになります。
正規表現はサルでも分かる正規表現入門というサイト様がわかりやすいです。
参考:http://www.mnet.ne.jp/~nakama/
それぞれのサンプル
example.comというドメインに対し、タグマネを設置している前提になります。
ページ指定 | ワイルドカード | 正規表現 |
example.com のすべてのページ |
example.com** | {^example\.com.*} |
example.com のすべてのページ (サブドメインも含む) |
example.com** | {.*example\.com.*} |
example.com/index.html のページのみ(パラメタの有無どちらでも) |
example.com/index.html | {^example\.com/index\.html.*} |
example.com/blog/ 以降のディレクトリすべて |
example.com/blog/** | {^example\.com/blog/.*} |
簡単な例ですが数点ご紹介しました。
見て感じた方もいらっしゃるかもしれませんが、ほとんど「.」「*」のメタ文字でまかなえます。
これらの条件に対し、「配信しないURL」も同様に組み立てて配信したいページを限定していく形となります。
最初は難しいと思う正規表現ですが、タグマネージャーに利用するという限られたシチュエーションだと覚えることもそう多くなく、実用できるのではないでしょうか。
ワイルドカードでの指定について
正規表現よりシンプルでとっつきやすいワイルドカード。
- タグマネージャーを管理する全員が正規表現をマスター出来ない。
- そこまで本気でタグマネージャーを使わない。
という場合は検討してもよいと思います。
YTMのタグマネージャーについて詳しくはでぶててさんのブログに紹介されておりますので、こちらも合わせてご覧ください。
最後に
ワイルドカードと正規表現を比較し、”個人的には”正規表現をおすすめしました。
しかし、もっとも大切なのは「統一すること」です。
一つのタグマネージャー内に、ワイルドカードと正規表現が混在するようなことがあれば、思わぬ設定ミスが生まれます。
正規表現を理解できない人がチーム内に居て、習得がどうしても難しく、ワイルドカードでも当分問題ないのであればワイルドカードでも良いでしょう。
手段が目的になってしまってはなりません。
しっかりと「なぜこの方法を選択したのか」「しなければならないのか」など制約とメリットを考えて取捨選択を行いましょう。